WAVE
A universal GPU instruction set architecture.
WAVE gives GPU kernels a common instruction set and binary format. Its compiler accepts Python, Rust, C++, and TypeScript kernel source. Backends translate WAVE binaries to Metal, PTX, HIP, and SYCL for Apple, NVIDIA, AMD, and Intel GPUs.
Execution
Section titled “Execution”Kernel source → WAVE compiler → .wbin → vendor backend → GPU └→ emulatorThe instruction set defines arithmetic, memory access, synchronization, control flow, and communication between lanes. Wave width and hardware resources remain explicit parameters. The emulator executes the same binaries for functional testing.
Start here
Section titled “Start here”- Installation: build the toolchain and install an SDK.
- Quick start: compile and run vector addition.
- Architecture: follow a kernel through the compiler and backends.
- Specification: read the execution rules and binary encoding.
- Hardware verification: see the hardware checks and benchmark methods.
WAVE is licensed under Apache 2.0. The research paper describes the architectural analysis behind the ISA.