Skip to content

feat: add GPU compute benchmark and GSplat benchmark example#8600

Merged
mvaligursky merged 18 commits intomainfrom
mv-compute-benchmark
Apr 16, 2026
Merged

feat: add GPU compute benchmark and GSplat benchmark example#8600
mvaligursky merged 18 commits intomainfrom
mv-compute-benchmark

Conversation

@mvaligursky
Copy link
Copy Markdown
Contributor

Add a standalone GPU compute benchmark that runs during WebGPU device initialization and a benchmark example for comparing GSplat renderer performance across backends.

Changes:

  • Add WebgpuComputeBenchmark class that measures compute throughput (shared memory + barriers + atomics) using raw WebGPU timestamp queries during device creation
  • Run benchmark in WebgpuGraphicsDevice.createDevice() and store result as computePerfIndex on the device (milliseconds, or -1 if timestamp queries unavailable)
  • Add gaussian-splatting/benchmark example that sequentially tests WebGL2 CPU Sort, WebGPU CPU Sort, WebGPU GPU Sort, and WebGPU Compute renderers
  • Example collects CPU frame times, GPU frame times, and per-pass GPU timing breakdowns over 50 measured frames
  • Results displayed on screen with GPU info and download button for detailed report including per-pass timings

Performance:

  • Benchmark adds ~0.02ms to WebGPU device initialization on Apple M4
  • computePerfIndex will be used by GSplat auto-selection (GSPLAT_RENDERER_AUTO) in a follow-up PR to choose between compute and vertex/fragment renderers based on GPU capability

Add a standalone GPU compute benchmark that runs during WebGPU device
initialization and a benchmark example for comparing GSplat renderer
performance across backends.

- Add WebgpuComputeBenchmark class measuring compute throughput (shared
  memory, barriers, atomics) using raw WebGPU timestamp queries
- Run benchmark in WebgpuGraphicsDevice.createDevice() and store result
  as computePerfIndex on the device
- Add gaussian-splatting/benchmark example that sequentially tests
  WebGL2 CPU Sort, WebGPU CPU Sort, WebGPU GPU Sort, and WebGPU Compute
  renderers with CPU/GPU frame time collection and per-pass breakdowns
- Results displayed on screen with download button for detailed report
Martin Valigursky added 2 commits April 16, 2026 09:32
@mvaligursky mvaligursky merged commit e282934 into main Apr 16, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-compute-benchmark branch April 16, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant