All notable changes are listed here. The format follows Keep a Changelog and the project follows Semantic Versioning.
1.0.0 - 2026-11-12
First stable release. Everything below is new in 1.0; the public API of every package is recorded in its PublicAPI.Shipped.txt, and
names (package ids, namespaces, ONEGPU_* variables, the onegpu JavaScript module) are listed in docs/environment.md.
Device layer
RecursiveAI.OneGpu:GpuDevice, adapters andGpuCapabilitiesas data (subgroup sizes and operations, float16, bfloat16, int8 and integer dot product, cooperative-matrix shapes, device limits), typedGpuBuffer<T>, uploads, non-blockingReadAsyncreadback, compute pipelines checked against the shader's reflection, command encoders with dispatch, indirect dispatch, pass timestamps andComputePassCount/DispatchCount, memory statistics, typed errors that name the capability, what was expected and what the device has. Surfaces, textures, graphics pipelines and render passes for renderers.- Backends: Vulkan 1.3 (own memory allocator, timeline-semaphore readback, validation routing per device), Metal on Apple silicon (typed
objc_msgSend, shared compute encoders), WebGPU in the browser ([JSImport], several devices per page).GpuBackendspicks one;ONEGPU_BACKENDoverrides. - No native binaries of ours. The core and the kernels have no interop. All packages are trimmable and Native AOT compatible.
Kernels
- GEMM in float32, float16, bfloat16 (cooperative-matrix variants on Vulkan and Metal where the device has them) and int8, with fused bias and activation epilogues; fused attention with masks, causal rule, grouped heads and Apple simdgroup variants; Conv, ConvTranspose, ConvInteger, pooling and resize; RNN, GRU and LSTM; broadcasting element-wise, integer and bool operations; reductions, softmax, layer and RMS normalisation; gather, scatter, slice, concat, expand and transpose; quantize, dequantize and dynamic quantize.
- Float32 sums accumulate in blocks, so their error against a double-precision sum is roughly ten times lower than a single chain's.
GpuKernelMode.Deterministicfor GEMM, reductions, softmax and attention: a fixed order, no float atomics, bit-identical runs on one GPU and driver. Tolerances per operation and dtype are indocs/kernels.md.- Shaders are HLSL compiled at build time for SPIR-V, Metal Shading Language and WGSL, so a layout mismatch is a build error.
Tooling
- Tests run with the Khronos validation layer required and clean on Vulkan, with API and shader validation fatal on Metal, and in headless
Chrome (SwiftShader and a hardware adapter) on WebGPU.
tools/ciholds the scripts. PublicAPI.Shipped.txtper package makes any public change a build error until the file changes in the same diff.