Files
tracy/examples/CUDAGraphRepro
Basil Milanich d9a1cc06c1 Fix repro build: add -arch=native to use correct GPU architecture
NVCC 13.1 defaults to a PTX version incompatible with the installed
driver (580.105.08), causing kernels to silently fail with "provided
PTX was compiled with an unsupported toolchain". Use -arch=native so
NVCC auto-detects the target GPU (H100, sm_90) at build time.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 13:33:05 -05:00
..
2026-03-24 09:37:50 -05:00

Tracy CUDA Graph GPU Zone Repro

Demonstrates that unpatched Tracy fails to show GPU zones for kernels launched via CUDA Graphs (cudaGraphLaunch).

Root cause

When kernels are launched through CUDA Graphs, CUPTI delivers CONCURRENT_KERNEL and MEMCPY activity records but no corresponding API callback fires for the individual kernel launches. Tracy's matchActivityToAPICall() always fails, and matchError() silently drops every GPU zone.

Build and run

make
./repro

What to expect

Tracy version GPU zones shown
Unpatched 0
Patched (cuda-graph-gpu-zones.patch) ~30 (10 launches x 3 ops)

The graph structure

Each graph launch contains:

  1. vector_add kernel (c = a + b)
  2. Device-to-device memcpy
  3. vector_add kernel (c = a + c)

The graph is launched 10 times, so 30 GPU operations total.