VectorWare got Rust's portable SIMD library, core::simd, running on GPU hardware by mapping GPU warps directly onto SIMD vector lanes, according to a post on the company's blog.
GPU warps are the 32 thread parallel execution units on Nvidia hardware. Elementwise operations such as addition, multiplication and comparisons map directly to warp instructions, the post says, and reductions use warp shuffle instructions to combine lane values into a single scalar, while cross-lane shuffles use GPU vote and ballot primitives.
The result is code that compiles and runs identically on CPUs, including x86-64 and ARM, and on GPUs, with no GPU-specific annotations in the source, according to VectorWare. The company built an intermediate representation encoded in Rust's type system to handle cases where a program's vector width does not match the hardware's warp width.
Portable SIMD remains an unstable, nightly-only Rust feature, and performance degrades when vector width and warp width do not match, the post says.
For builders writing numeric code in Rust, this is a path to targeting GPU execution without maintaining a separate GPU-specific code path, as long as they stay on nightly Rust and keep vector widths aligned to hardware warp size.