triSYCL  by triSYCL

Research project for SYCL experimentation and feedback to Khronos

created 11 years ago
444 stars

Top 68.7% on sourcepulse

GitHubView on GitHub
Project Summary

triSYCL is a research project exploring the SYCL standard for heterogeneous computing, primarily targeting AMD's AI Engine (AIE) CGRA architecture and providing feedback to the Khronos Group. It offers a C++ single-source programming model for CPUs, GPUs, and FPGAs, though it is incomplete and not intended for general end-users, with more robust alternatives like DPC++ and hipSYCL available.

How It Works

This implementation leverages C++23 features, with OpenMP or TBB for CPU parallelism. It uses Boost.Compute for OpenCL interoperability and an experimental, now-obsolete LLVM/Clang version for device compilation, targeting SPIR devices. Recent efforts focus on C++ extensions for AMD AIE CGRA, with ACAP++ (C++17/20) and AIE++ (C++23/26) providing programming models for CPU emulation and AIE devices, requiring a special compiler from a related project.

Quick Start & Requirements

  • Installation is primarily as a template library; examples can be built. Refer to doc/testing.rst for building examples.
  • Dependencies include C++23 support, OpenMP or TBB, and Boost.Compute. Device compilation requires an experimental LLVM/Clang version and a special compiler from triSYCL/sycl.
  • Setup for AIE targets involves specific toolchains and compilers.

Highlighted Details

  • Experimental support for AMD FPGA and Versal ACAP AIE CGRA programming.
  • Contributions to SYCL specifications (1.2, 1.2.1, 2.2, 2020) and OpenCL C++ kernel language.
  • Research into C++ extensions for heterogeneous platforms.
  • CI build status badge available via GitHub Actions.

Maintenance & Community

The project has seen development efforts funded by AMD and Xilinx. Technical lead is Ronan Keryell. Internship opportunities related to the project have been available.

Licensing & Compatibility

The license is the same as LLVM/Clang. Compatibility for commercial use or closed-source linking is not explicitly detailed but implied by the LLVM/Clang license.

Limitations & Caveats

This implementation is described as very incomplete and not for general end-users. The device compiler is obsolete, and AMD toolchain integration is experimental and unsupported by AMD product teams. Current AIE targets are limited to first-generation devices (AIE/AIE1).

Health Check
Last commit

9 months ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
0
Star History
7 stars in the last 90 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Georgios Konstantopoulos Georgios Konstantopoulos(CTO, General Partner at Paradigm), and
7 more.

ThunderKittens by HazyResearch

0.7%
3k
CUDA kernel framework for fast deep learning primitives
created 1 year ago
updated 4 days ago
Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Georgios Konstantopoulos Georgios Konstantopoulos(CTO, General Partner at Paradigm), and
2 more.

gpu.cpp by AnswerDotAI

0.2%
4k
C++ library for portable GPU computation using WebGPU
created 1 year ago
updated 2 weeks ago
Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Nat Friedman Nat Friedman(Former CEO of GitHub), and
32 more.

llama.cpp by ggml-org

0.4%
84k
C/C++ library for local LLM inference
created 2 years ago
updated 18 hours ago
Feedback? Help us improve.