可以使用 nvprof 访问/读取 CUDA exec 的银行冲突计数器:
nvprof --events shared_st_bank_conflict,shared_ld_bank_conflict my_cuda_exe
但是,它不适用于使用 OpenCL 而不是 CUDA 代码的代码。
- 有没有办法
nvprof
从 OpenCL 环境中提取这些计数器,可能直接从 ptx 中提取? - 或者,有什么方法可以将使用
clGetProgramInfo
with的 nvidia OpenCL 编译器生成的 PTX 程序集转换CL_PROGRAM_BINARIES
为 CUDA 内核并使用它运行它cuModuleLoadDataEx
,从而能够使用nvprof
? - 是否有任何模拟 CPU 后端允许设置诸如银行大小等参数?
附加选项:
- 使用 opencl 到 cuda 代码的转换器,包括 CUDA 中缺少的功能,如 vloadn/vstoren、float16 和其他各种访问器。
#define
仅适用于简单内核。有没有提供它的工具?