我想拦截NVIDIA GPU上的opencl程序的PTX级别。在NVIDIA GPU上编译ptx代码?
我想象例程可能看起来像这样。首先,我编写一个opencl程序(主机和设备代码),使用NVIDIA编译器生成相应的ptx代码。然后,我通过修改PTX代码来编写我想要做的事情(请不要问我为什么不在设备C代码上这么做 - 我有一些原因)。但问题是,在修改后,如何将这个PTX代码编译为二进制代码?
我想拦截NVIDIA GPU上的opencl程序的PTX级别。在NVIDIA GPU上编译ptx代码?
我想象例程可能看起来像这样。首先,我编写一个opencl程序(主机和设备代码),使用NVIDIA编译器生成相应的ptx代码。然后,我通过修改PTX代码来编写我想要做的事情(请不要问我为什么不在设备C代码上这么做 - 我有一些原因)。但问题是,在修改后,如何将这个PTX代码编译为二进制代码?
您可以使用包含在CUDA工具包中的ptxas。它将.ptx编译为.cubin,然后可以使用驱动程序API加载该文件。
使用CUDA工具链和CUDA驱动程序API。我不相信有一种方法可以用OpenCL处理汇编代码或内联汇编指令。 – talonmies 2012-07-09 07:02:38
这适用于CUDA http://wili.cc/blog/ptx.html。可能也适用于OpenCL – nouveau 2012-07-31 10:34:53