Reference documentation and usage guidance for Thermite, a generic Rust SIMD library with companion crates for special functions, autodiff, compensated arithmetic, SDF, and geometry. Helps developers write SIMD kernels generic over vector types and run them on any backend.
Thermite SIMD is a library for high-performance portable SIMD (Single Instruction, Multiple Data) programming, primarily via SoA (Structure of Arrays) data structures and algorithms. It provides low-level and high-level abstractions for SIMD programming, allowing developers to write efficient code that can run on various hardware architectures without sacrificing performance.
Thermite provides highly optimized feature-rich backends for x86-v2 (SSE4.2), x86-v3 (AVX2+FMA), with planned support for x86-v1 (SSE2), x86-v4 (AVX-512), ARM (NEON), WASM (WebAssembly SIMD), and RISC-V (V extension). Thermite also includes a portable scalar fallback implementation for platforms without SIMD support.
In addition, Thermite provides a highly optimized vectorized math library with many special math functions and algorithms, specialized for SIMD execution. This allows developers to perform complex mathematical computations efficiently using SIMD instructions.
Thermite's design is split into a few layers:
Register traits define the low-level SIMD register types and operations, providing a common interface for different hardware backends.Vector data type that wraps a Register and provides access to its behavior in a high-level way via the GenericVector traitsGenericVector traits, that define a strong set of constraints and extensive set of behaviors for any vector-like type.*Math traits, for FloatVector vectors, defines a wide variety of math functions, each with adjustable behaviors via a compile-time policy system.thermite-special for even more special math functions, thermite-complex for vectorized complex numbers, and more!Thermite provides a C-ABI FFI library for batch-processing large chunks of data using SIMD-accelerated backends, determined at runtime.
#[thermite::dispatch]Rust has a problem with #[target_feature(enable = "...")] in that if a function is ever NOT inlined, it "forgets" about the target features. This is a severe problem for programs that intend to be built with basic a SSE2-level executable, but want to include support for more modern architecture via dynamic dispatch. Either everything needs to be inlined, always, leading to massive code bloat, or it totally breaks down with deoptimization.
Enter #[thermite::dispatch], which rewrites functions to propagate target features, automatically, and statically, meaning it is effectively zero-cost after dead-code optimizations. The dispatch macro is used for all *Math traits, so they remain optimized and lightweight.
Thermite was originally conceived while working on Raygon renderer, when it was decided we needed a state of the art high-performance SIMD library focused on SoA algorithms. Libraries at the time (and even now) were either too low-level, lacking in features, or not optimized for modern hardware. The goal was to create a library that would allow developers to write efficient SIMD code without having to worry about the underlying hardware details.
However, my first prototype of Thermite was flawed, too many leaky abstractions, and back in 2020 the Rust language/compiler itself was too limited to support the necessary abstractions. In 2025, I felt renewed interest in the project, and with the advancements in Rust's type system and compiler optimizations, I was able to redesign Thermite from the ground up, resulting in a much more efficient and user-friendly library.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub raygon-renderer/thermite --plugin thermiteNVIDIA CUDA C/C++ skill - Runtime API, cuBLAS, cuFFT, cuSPARSE, cuRAND, cuSolver, Thrust, and Cooperative Groups for GPU-accelerated computing
GPU kernel knowledge-base, benchmarking, profiling, and optimization-loop skills for CUDA, Triton, CuTe DSL, CUTLASS, PyTorch, and Nsight Compute workflows.
AI-powered hardware development platform — design, verify, synthesize, and deploy working RTL with natural language. 18 agents, 25 skills, 8 IP blocks.
Graphics engineering agents providing expertise in GPU programming, shaders, and rendering
Comprehensive C/C++ programming reference covering modern C11-C23, C++11-C++23, system programming, CUDA GPU computing, debugging tools, Rust interop, and advanced topics
Skills for NVIDIAs ecosystem spans GPU acceleration, CUDA, AI agents, inference, robotics, Physical AI, Omniverse, and simulation. This plugin helps you understand the pieces, choose a path, validate your setup, and build practical NVIDIA-powered workflows.