NVlabs / NVBit

200 stars 18 forks source link

Problem to use mem_trace for Optix SDK examples #13

Closed brad-mengchi closed 3 years ago

brad-mengchi commented 4 years ago

Hello,

I try to use mem_trace for Optix SDK examples(optixHello, optixRaycasting), however, I found the program hangs after optixLaunch() API on CUDA_SYNC_CHECK(cudaDeviceSynchronize inside).

Then I try to change mem_trace and find out if I comment out "channel_dev.push(&ma, sizeof(mem_access_t));" inside instrument_mem(), the program will not hang.

So does NVbit ChannelDev not work for optix apps?

Thanks!

ovilla commented 3 years ago

Tried this example since I got to test Optix version 7.0 for bug #28 and all seems to work with NVBit version 1.5.

An important observation is that optixHello in particular does not launch "User visible" kernels but only "NVIDIA Internal" kernels which by design are not exposed in NVBit. Paraphs this was confusing earlier versions of NVBit?

However, the current NVBit v1.5 mem_trace.so works fine with optixHello (i.e. does not produce any output since only "NVIDIA Internal" kernels are launched) and works as expected with optixCurvers (i.e. prints some memory access patterns for each launched kernel).

Closing this issue for now. Please reopen with more information if issue is still there.