I ported h3.c to Linux ARM64 with a native CUDA backend behind the existing h3_gpu.h API (CLI, checkpoint formats and the Metal path unchanged; backend selected at build time).
Measured on an NVIDIA GB10 (DGX Spark, CUDA 13.0), max-quality preset (1024x576, 107 frames, 50 steps/layers):
- full render: 33:37 -> 18:56 wall clock (1.78x)
- video VAE decode: 1113 s -> 248 s via a tiled F32 attention kernel (4.49x)
- DiT attention: cuDNN SDPA BF16 (~84x on the long shape) with custom tiled fallback
- parity gates: CPU oracles (max_abs <= 2e-5), Compute Sanitizer clean, matched renders SSIM >= 0.999 on the short gate
The branch is ~6.8k lines across 3 commits (portable host/tokenizer, CUDA backend, integration + optimizations). Happy to open a PR if this is of interest, and to split or rework anything.
I ported h3.c to Linux ARM64 with a native CUDA backend behind the existing
h3_gpu.hAPI (CLI, checkpoint formats and the Metal path unchanged; backend selected at build time).Measured on an NVIDIA GB10 (DGX Spark, CUDA 13.0), max-quality preset (1024x576, 107 frames, 50 steps/layers):
The branch is ~6.8k lines across 3 commits (portable host/tokenizer, CUDA backend, integration + optimizations). Happy to open a PR if this is of interest, and to split or rework anything.