mirror of
https://github.com/wolfpld/tracy.git
synced 2026-08-25 04:28:22 +00:00
Replace the synthetic APICallInfo hack with proper correlation via CUPTI_ACTIVITY_KIND_GRAPH_TRACE. When cuGraphLaunch fires an API callback, its correlationId is stored in cudaCallSiteInfo. The GRAPH_TRACE activity record carries the same correlationId plus the graphId, which lets us build a graphId→APICallInfo map. Kernel/memcpy/ memset activities then look up this map via their graphId field. Key changes: - Add cuGraphLaunch/cuGraphLaunch_ptsz to cbidDriverTrackers so the API callback machinery captures the CPU call site - Enable CUPTI_ACTIVITY_KIND_GRAPH_TRACE and handle it in DoProcessDeviceEvent to populate cudaGraphCurrentLaunch[graphId] - Add cudaGraphCurrentLaunch map to PersistentState - Two-pass buffer processing in OnBufferCompleted so GRAPH_TRACE records (which complete last on GPU) are processed before the kernel/memcpy/memset records that depend on them - Replace graphId=0 fallback in kernel/memcpy/memset with proper cudaGraphCurrentLaunch lookup; fall through to matchError if the graphId is not found - Update repro to include TracyCUDA headers and properly test GPU zone correlation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
1.0 KiB
Makefile
38 lines
1.0 KiB
Makefile
TRACY_PUBLIC := ../../public
|
|
NVCC := nvcc
|
|
CXX := g++
|
|
CUPTI_INC := /usr/local/cuda/include
|
|
CUPTI_LIB := /usr/local/cuda/lib64
|
|
|
|
TRACY_SRCS := $(TRACY_PUBLIC)/TracyClient.cpp
|
|
INCLUDES := -I$(TRACY_PUBLIC) -I$(CUPTI_INC)
|
|
LIBS := -L$(CUPTI_LIB) -lcuda -lcupti -lpthread -ldl
|
|
|
|
CXXFLAGS_REL := -O2 -DTRACY_ENABLE
|
|
CXXFLAGS_DBG := -g -O0 -DTRACY_ENABLE
|
|
NVCCFLAGS_REL := -O2 -DTRACY_ENABLE
|
|
NVCCFLAGS_DBG := -g -O0 -DTRACY_ENABLE
|
|
|
|
.PHONY: all debug clean
|
|
|
|
all: repro
|
|
|
|
debug: repro_debug
|
|
|
|
# Release build
|
|
repro: repro.cu tracy_client.o
|
|
$(NVCC) $(NVCCFLAGS_REL) $(INCLUDES) -o $@ $< tracy_client.o $(LIBS)
|
|
|
|
tracy_client.o: $(TRACY_SRCS)
|
|
$(CXX) $(CXXFLAGS_REL) $(INCLUDES) -c -o $@ $<
|
|
|
|
# Debug build (asserts enabled, no NDEBUG)
|
|
repro_debug: repro.cu tracy_client_debug.o
|
|
$(NVCC) $(NVCCFLAGS_DBG) $(INCLUDES) -o $@ $< tracy_client_debug.o $(LIBS)
|
|
|
|
tracy_client_debug.o: $(TRACY_SRCS)
|
|
$(CXX) $(CXXFLAGS_DBG) $(INCLUDES) -c -o $@ $<
|
|
|
|
clean:
|
|
rm -f repro repro_debug tracy_client.o tracy_client_debug.o
|