flashrt/fp8-gemm
FlashRT native CUDA FP8 GEMV/GEMM kernels for low-latency transformer and diffuser linear layers.
The block-128 scaled API supports Ada sm_89 and Blackwell sm_120a.
The per-tensor API supports Blackwell sm_110a (Jetson AGX Thor) and
sm_120a. SM110 uses the production FlashRT Sq/T1/Wide CUTLASS family and has
been swept across PI0.5, GROOT, Cosmos Edge, and LingBot VLA projection shapes.
Functions
fp8_linear_bf16(input, weight, alpha=1.0, out=None, variant=0)fp8_linear_residual_bf16(input, weight, residual, alpha=1.0, variant=0)fp8_linear_bias_bf16(input, weight, bias, alpha=1.0, out=None)fp8_linear_bias_residual_bf16(input, weight, bias, residual, alpha=1.0)fp8_linear_bias_gelu_bf16(input, weight, bias, alpha=1.0, out=None)fp8_blockwise_linear_bf16(input, weight, input_scale, weight_scale, out=None)select_fp8_linear_tile(m, n, k, variant=0)
On SM110, keep variant=0 for the tuned public dispatcher. Variants 1, 2,
and 3 force Sq, T1, and Wide respectively for diagnostics.
SM110 also provides BF16 bias, in-place bias+residual, and tanh-GELU+bias
epilogues for SigLIP-style projection and MLP shapes. The validated large-M
plain GEMM band is M=65..1024.
See the repository README for shape contracts, validation status, and examples.