我正在尝试查看在Mac的AMD GPU上运行的OpenCL内核的汇编代码。
基于这个OpenCL online compilation: get assembly from cl::program or cl::kernel这样的问题,我对我的clBuildProgram调用使用了--save-temps,如下所示。
err = clBuildProgram(程序,num_devices,deviceList,“ -save-temps”,NULL,NULL);
但是,此操作失败,错误代码为-43,它转换为CL_INVALID_BUILD_OPTIONS。基于https://www.khronos.org/registry/OpenCL/sdk/1.0/docs/man/xhtml/clBuildProgram.html,看来规范不支持该选项。
CodeXL着色器/内核分析器之类的工具没有适用于Mac的安装选项。
还有其他方法可以查看OSX上用于AMD GPU的OpenCL内核的汇编代码吗?
答案 0 :(得分:0)
您可以使用clGetProgramInfo
调用CL_PROGRAM_BINARIES
来获取平台的“二进制文件”。它是特定于设备/平台的,并且可以将机器代码包装在某些包装器结构中。