Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在每次使用nvprof调用CUDA内核函数时收集事件值?_Cuda_Nvprof - Fatal编程技术网

如何在每次使用nvprof调用CUDA内核函数时收集事件值?

如何在每次使用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评测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== 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),并按时间顺序对它们进行排序。在事件/度量评测模式下,显示每个内核调用的事件/度量可以解决此问题