CUPTI discovery: all kernels launched by one cuGraphLaunch share the same correlationId as the launch call itself. GRAPH_TRACE was the wrong approach — enabling it suppresses per-kernel CONCURRENT_KERNEL records entirely, replacing them with graph-level summaries. New approach: - Drop CUPTI_ACTIVITY_KIND_GRAPH_TRACE (it conflicts with CONCURRENT_KERNEL) - Drop two-pass buffer processing (no longer needed) - On the first kernel/memcpy/memset from a graph launch, matchActivityToAPICall succeeds (consuming the cuGraphLaunch entry) and the result is cached in cudaGraphCurrentLaunch[graphId] - Subsequent operations from the same launch find the cached entry via graphId Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tracy Profiler
A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.
Tracy supports profiling CPU (Direct support is provided for C, C++, Lua, Python and Fortran integration. At the same time, third-party bindings to many other languages exist on the internet, such as Rust, Zig, C#, OCaml, Odin, etc.), GPU (All major graphic APIs: OpenGL, Vulkan, Direct3D 11/12, Metal, OpenCL, CUDA.), memory allocations, locks, context switches, automatically attribute screenshots to captured frames, and much more.
- Documentation for usage and build process instructions
- Releases containing the documentation (
tracy.pdf) and compiled Windows x64 binaries (Tracy-<version>.7z) as assets - Changelog
- Interactive demo
An Introduction to Tracy Profiler in C++ - Marcos Slomp - CppCon 2023
Introduction to Tracy Profiler v0.2
New features in Tracy Profiler v0.3
New features in Tracy Profiler v0.4
New features in Tracy Profiler v0.5
New features in Tracy Profiler v0.6
New features in Tracy Profiler v0.7
New features in Tracy Profiler v0.8



