Vcc – The Vulkan Clang Compiler

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • DirectXShaderCompiler

    This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

  • Also Microsoft DirectX Shader Compiler[1] for HLSL. In fact, effort is ongoing to upstream HLSL support into Clang.[2][3][4]

    To answer your other question—why LLVM instead of GCC:

    - First-class support for non-Unix/Linux platforms. LLVM can be built on Windows and Visual Studio without ever needing a single GNU tool besides git[5]. Clang even has a MSVC-compatible interface that allows MSVC developers to switch to Clang without needing to change their command-line invocation[6].

    - Written in C++ from the ground up, with a modular, first-class SSA IR-based interface.

    - Permissive Apache 2.0 licence. As much as this might exasperate the open-source community, it allows for significantly faster iteration; things tend to be upstreamed when private/corporate developers realise it is hard to maintain separate forks.

    All this allows LLVM to have a pretty mature infrastructure; some very large companies have contributed to its development.

    [1]: https://github.com/microsoft/DirectXShaderCompiler

    [2]: https://clang.llvm.org/docs/HLSL/HLSLDocs.html

    [3]: https://github.com/microsoft/DirectXShaderCompiler/wiki/Cont...

    [4]: https://discourse.llvm.org/t/rfc-adding-hlsl-and-directx-sup...

    [5]: https://llvm.org/docs/GettingStartedVS.html

    [6]: https://clang.llvm.org/docs/UsersManual.html#clang-cl

  • shady

    Research shading language IR

  • Sounds cool, but this requires yet another language to learn[0]. As someone who only has limited knowledge in this space, could someone tell me how comparable is the compute functionality of rust-gpu[1], where I can just write rust?

    [0] https://github.com/Hugobros3/shady#language-syntax

    [1] https://github.com/EmbarkStudios/rust-gpu

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rust-gpu

    🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

  • Sounds cool, but this requires yet another language to learn[0]. As someone who only has limited knowledge in this space, could someone tell me how comparable is the compute functionality of rust-gpu[1], where I can just write rust?

    [0] https://github.com/Hugobros3/shady#language-syntax

    [1] https://github.com/EmbarkStudios/rust-gpu

  • onnxruntime

    ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

  • - slang[2] has the potential, but the meta programming part is not as strong as C++, existing libraries cannot be used.

    The above conclusion is drawn from my work https://github.com/microsoft/onnxruntime/tree/dev/opencl, purely nightmare to work with thoes drivers and jit compilers. Hopefully Vcc can take compute shader more seriously.

    [1]: https://www.circle-lang.org/

  • llvm

    Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects. (by intel)

  • Intel's modern compilers (icx, icpx) are clang-based. There is an open-source version [1], and the closed-source version is built atop of this with extra closed-source special sauce.

    AOCC and ROCm are also based on LLVM/clang.

    [1] https://github.com/intel/llvm

  • clspv

    Clspv is a compiler for OpenCL C to Vulkan compute shaders

  • See https://github.com/google/clspv for an OpenCL implementation on Vulkan Compute. There are plenty of quirks involved because the two standards use different varieties of SPIR-V ("kernels" vs. "shaders") and provide different guarantees (Vulkan Compute doesn't care much about numerical accuracy). The Mesa folks are also looking into this as part of their RustiCL (a modern OpenCL implementation) and Zink (implementing OpenGL and perhaps OpenCL itself on Vulkan) projects.

  • Cgml

    GPU-targeted vendor-agnostic AI library for Windows, and Mistral model implementation.

  • > the API was high-friction due to the shader language, and the glue between shader and CPU

    Direct3D 11 compute shaders share these things with Vulkan, yet D3D11 is relatively easy to use. For example, see that library which implements ML-targeted compute shaders for C# with minimal friction: https://github.com/Const-me/Cgml The backend implemented in C++ is rather simple, just binds resources and dispatches these shaders.

    I think the main usability issue with Vulkan is API design. Vulkan was only designed with AAA game engines in mind. The developers of these game engines have borderline unlimited budgets, and their requirements are very different from ordinary folks who want to leverage GPU hardware.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • chipStar

    chipStar is a tool for compiling and running HIP/CUDA on SPIR-V via OpenCL or Level Zero APIs.

  • chipStar (formerly CHIP-SPV) might also be worth checking out: https://github.com/CHIP-SPV/chipStar

    It compiles CUDA/HIP C++ to SPIR-V that can run on top of OpenCL or Level Zero. (It does require OpenCL's compute flavored SPIR-V, instead of graphics flavored SPIR-V as seen in OpenGL or Vulkan. I also think it requires some OpenCL extensions that are currently exclusive to Intel NEO, but should on paper be coming to Mesa's rusticl implementation too.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • CBMC: C bounded model checker. (2021)

    3 projects | news.ycombinator.com | 4 May 2024
  • Burn: Deep Learning Framework built using Rust

    1 project | news.ycombinator.com | 24 Apr 2024
  • FLaNK AI-April 22, 2024

    28 projects | dev.to | 22 Apr 2024
  • Burn Deep Learning Framework Release 0.12.0 Improved API and PyTorch Integration

    1 project | news.ycombinator.com | 31 Jan 2024
  • Supercharge Web AI Model Testing: WebGPU, WebGL, and Headless Chrome

    2 projects | news.ycombinator.com | 16 Jan 2024