SPIR Resources and Projects
We believe the true usefulness of OpenCL goes beyond the spec itself; it is an ecosystem of tools, documentation, and resources contributed by the community.
Get involved, submit your resources either with a pull requests on Github or email the webmaster at Khronos.org.
SPIR-V Resources
- Khronos Group SPIR-V Headers
official headers for SPIR-V, XML registry, and instructions set grammar in JSON form.
- ARM:// SPIRV-Cross, working with SPIR-V in your app
- Khronos Group SPIR-V Tools Project including an assembler, binary module parser, disassembler, and validator for SPIR-V
- Extras include integration with the vim and emacs text editors and the
less
command line tool
- Khronos Group Glslang - GLSL reference
compiler. It can generate SPIR-V.
- SPIR-V LLVM Translator contains a LLVM <-> SPIR-V converter intended to serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
- Shaderc -
libshaderc
API and glslc
command line wrapper around
Glslang. glslc
conventions
mimic GCC and Clang, for ease of integration into build systems.
- spirthon - Python Python bytecode to SPIR-V conversion;
Write shaders or kernels in Python;
Python assembler/disassembler;
SPIR-V specification in json format
- SpirvNet - C Write shaders or kernels in C#; .NET IL to SPIR-V conversion; SPIR-V interpreter; Debug shaders & kernels in C# (CPU)
- otherside - C++ SPIR-V virtual machine; Produces C like code from SPIR-V binaries; Set through generated C code in debugger; Basis for academic software rasterizer
- Shade - Xojo SPIR-V virtual machine; Test and debug SPIR-V binaries; Defines human readable format; SPIR-V binary correctness
- Python SPIR-V Tools Encode and decode SPIR-V in Python; High level human readable assembler syntax - similar to LLVM IR
- HSPIRV - Haskell EDSL SPIR-V like language embedded in Haskell; Low level abstraction; Significantly relaxed layout constraints
- Lisp Specification Lisp readable SPIR-V specification; Basis for data driven Lisp tools
- SPIR-V json specification Conversion of HTML SPIR-V specification to json format; Basis for future data driven tools
- vim-spirv is a plugin for vim providing automatic (dis)assembly and editing of
.spv
files, syntax highlighting, current ID highlighting and error highlighting
SPIR Resources
- CLANG SPIR 1.2 Generator CLANG SPIR 1.2 Generator
- PGI OpenACC 2.0 Compiler PGI Accelerator™ compilers, programmers can accelerate applications on x64+accelerator platforms by adding OpenACC compiler directives to existing high-level standard-compliant Fortran, C and C++ programs
- C++ AMP CLANG/LLVM based C++AMP 1.2 standard and transforms it into either SPIR binary devices
- Halide Halide Programming language for high-performance image processing