All Projects → triSYCL → sycl

triSYCL / sycl

Licence: other
SYCL for Vitis: Experimental fusion of triSYCL with Intel SYCL oneAPI DPC++ up-streaming effort into Clang/LLVM

Projects that are alternatives of or similar to sycl

Clang Expand
🐉 A clang tool for happy refactoring without source-code gymnastics
Stars: ✭ 182 (+127.5%)
Mutual labels:  llvm, clang
TON-Compiler
Clang compiler for Free TON Virtual Machine
Stars: ✭ 56 (-30%)
Mutual labels:  llvm, clang
Cmake Scripts
A selection of useful scripts for use in CMake projects, include code coverage, sanitizers, and dependency graph generation.
Stars: ✭ 202 (+152.5%)
Mutual labels:  llvm, clang
Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (+121.25%)
Mutual labels:  llvm, clang
EmbedSanitizer
EmbedSantizer is a runtime race detection tool which extends ThreadSanitizer to detect data races in 32-bit ARM applications.
Stars: ✭ 16 (-80%)
Mutual labels:  llvm, clang
Dstep
A tool for converting C and Objective-C headers to D modules
Stars: ✭ 177 (+121.25%)
Mutual labels:  llvm, clang
codebrowser
Woboq CodeBrowser
Stars: ✭ 985 (+1131.25%)
Mutual labels:  llvm, clang
Libcudacxx
The C++ Standard Library for your entire system.
Stars: ✭ 1,861 (+2226.25%)
Mutual labels:  llvm, cpp20
vuo
A realtime visual programming language for interactive media.
Stars: ✭ 103 (+28.75%)
Mutual labels:  llvm, clang
clangbuilder
Building Clang ♡ Utility and Environment
Stars: ✭ 101 (+26.25%)
Mutual labels:  llvm, clang
Play with llvm
A book about LLVM & Clang(中文开源书:玩转 LLVM)
Stars: ✭ 175 (+118.75%)
Mutual labels:  llvm, clang
dumb-obfuscator
Tutorial on how to write the dumbest obfuscator I could think of.
Stars: ✭ 147 (+83.75%)
Mutual labels:  llvm, clang
Cling
The cling C++ interpreter
Stars: ✭ 2,322 (+2802.5%)
Mutual labels:  llvm, clang
Constexpr Everything
Rewrite C++ code to automatically apply `constexpr` where possible
Stars: ✭ 178 (+122.5%)
Mutual labels:  llvm, clang
Clang Llvm Tutorial
clang & llvm examples, e.g. AST Interpreter, Function Pointer Analysis, Value Range Analysis, Data-Flow Analysis, Andersen Pointer Analysis, LLVM Backend...
Stars: ✭ 139 (+73.75%)
Mutual labels:  llvm, clang
Checkedc
Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, a…
Stars: ✭ 2,692 (+3265%)
Mutual labels:  llvm, clang
Proton Clang
Proton Clang toolchains builds in the form of a continuously updating Git repository. Clone with --depth=1.
Stars: ✭ 126 (+57.5%)
Mutual labels:  llvm, clang
Gllvm
Whole Program LLVM: wllvm ported to go
Stars: ✭ 126 (+57.5%)
Mutual labels:  llvm, clang
linux
Linux kernel source tree
Stars: ✭ 234 (+192.5%)
Mutual labels:  llvm, clang
flextool
C++ compile-time programming (serialization, reflection, code modification, enum to string, better enum, enum to json, extend or parse language, etc.)
Stars: ✭ 32 (-60%)
Mutual labels:  llvm, clang

SYCL for Vitis 2022.1: experimental melting pot with Intel oneAPI DPC++ SYCL and triSYCL for AMD/Xilinx FPGA

This project is about assessing the viability of unifying 2 of the current open-source implementations of the SYCL standard https://www.khronos.org/sycl to provide a strong modern single-source C++ solution for heterogeneous computing based on Clang*/LLVM*.

All this is an experimental work-in-progress open-source research project but might be interesting for anyone versed into system-wide modern C++20/C++23 and heterogeneous computing involving FPGA, GPU, DSP, other accelerators or just CPU from various vendors at the same time in the same program.

There are mostly 2 public branches:

What is SYCL

SYCL is a single-source modern C++11/.../C++20-based DSEL (Domain Specific Embedded Language) aimed at facilitating the programming of heterogeneous accelerators.

triSYCL for AMD/Xilinx FPGA with AMD/Xilinx Vitis v++

Some LLVM passes and some C++ SYCL runtime from https://github.com/triSYCL/triSYCL are merged-in with a new Clang driver and scripts to use AMD/Xilinx Vitis v++ as a back-end for AMD/Xilinx FPGA using the open-source runtime and device-driver https://github.com/Xilinx/XRT

Intel oneAPI DPC++ SYCL compiler and runtime libraries using Clang/LLVM technology

This is a fork of the Intel SYCL upstreaming effort (https://github.com/intel/llvm/tree/sycl) with some alterations made to allow SYCL compilation for AMD/Xilinx FPGA. However, the alterations made shouldn't affect previous targets supported by the Intel tool, so in theory it should be possible to use different accelerators from different vendors at the same time, including for example an Intel FPGA and an AMD/Xilinx FPGA.

SYCL Related Documentation

The Build DPC++ toolchain from the Intel oneAPI DPC++ SYCL project is a good starting point to get to grips with building the compiler and what a basic SYCL example looks like.

It also showcases the requirements to get the project and examples running with the Intel OpenCL runtime or other back-ends.

This fork of the project can be compiled the same way and used in conjunction with the normal compiler commands as demonstrated. However, the software requirements for AMD/Xilinx FPGA compilation and the compiler invocation are not the same and are documented elsewhere.

License

See LICENSE.txt for details.

Contributing

See CONTRIBUTING.md for details.

*Other names and brands may be claimed as the property of others.

oneAPI DPC++ is an open, cross-architecture language built upon the ISO C++ and Khronos SYCL* standards. DPC++ extends these standards with a number of extensions, which can be found in sycl/doc/extensions directory.

*Other names and brands may be claimed as the property of others.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].