如何在每次使用nvprof调用CUDA内核函数时收集事件值?
使用nvprof评测CUDA程序 我已详细描述了这个问题 我再次发布问题 使用nvprof--events tex0\u cache\u sector\u查询--replay模式内核。/matrixMul 或如何在每次使用nvprof调用CUDA内核函数时收集事件值?,cuda,nvprof,Cuda,Nvprof,使用nvprof评测CUDA程序 我已详细描述了这个问题 我再次发布问题 使用nvprof--events tex0\u cache\u sector\u查询--replay模式内核。/matrixMul 或nvprof——事件tex0\u缓存\u扇区\u查询——重播模式应用程序。/matrixMul 我们可以收集事件值结果: ==40013== Profiling application: ./matrixMul ==40013== Profiling result: ==40013== Ev
nvprof——事件tex0\u缓存\u扇区\u查询——重播模式应用程序。/matrixMul
我们可以收集事件值结果:
==40013== Profiling application: ./matrixMul
==40013== Profiling result:
==40013== Event result:
"Device","Kernel","Invocations","Event Name","Min","Max","Avg","Total"
"Tesla K80 (0)","void matrixMulCUDA<int=32>(float*, float*, float*, int, int)",301,"tex0_cache_sector_queries",0,30,24,7224
==40013==分析应用程序:./matrixMul
==40013==分析结果:
==40013==事件结果:
“设备”、“内核”、“调用”、“事件名称”、“最小”、“最大”、“平均”、“总计”
“特斯拉K80(0)”,“无效矩阵ulcuda(float*,float*,float*,int,int)”,301,“tex0缓存扇区查询”,0,30,247224
以上结果是一个总结。内核函数matrixMulCUDA调用的tex0\u cache\u sector\u查询的301次调用值。它只有301次调用的min、max、avg、total值,这是一个汇总结果
我想收集每次调用matrixMulCUDA时完整的301次tex0\u cache\u sector\u查询值。另一方面,每次调用内核函数matrixMulCUDA时,我都要收集tex0\u cache\u sector\u querys事件值。如何收集它?1使用以下设备运行:
nvprof --pc-sampling-period 31 --print-gpu-trace --replay-mode application \
--export-profile application.prof --events tex0_cache_sector_queries ./matrixMul
2将application.prof导入visual profiler:
3按照图片上的索引获取每个内核函数的事件值的每次调用
4、--print gpu trace
参数:打印单个内核调用(包括CUDA memcpy/memset),并按时间顺序对它们进行排序。在事件/度量评测模式下,显示每个内核调用的事件/度量可以解决此问题