为了了解CUDA正在生成什么样的代码,除了一个对象文件之外,我还喜欢编译到ptx。由于我的一些循环展开可能需要很长一段时间,所以我希望能够编译*.cu**→*`.ptx`**→*`.o`,而不是在*.cu**→*`.ptx`和*.cu**→*`.o`,上浪费时间。
只需将-ptx添加到nvcc *.cu行即可获得所需的ptx输出。
使用ptxas -c将*.ptx编译成*.o可以工作,但会导致可执行链接:Relocations in generic ELF (EM: 190)中的一个错误。
使用*.ptx编译nvcc的尝试以静默方式失败,没有输出任何内容。
这张图片非常有用:

有什么选择我需要传递给ptxas吗?如何正确地通过ptx编译与单独编译?或者,我可以告诉nvcc保留ptx吗?
发布于 2014-01-21 05:12:16
或者,我可以告诉nvcc保留ptx吗?
是的,您可以将nvcc告知保存所有中间文件,其中一个将是.ptx文件。
nvcc -keep ...保存所有中间文件有点麻烦,但我相信您可以想出一个脚本来整理东西,并且只保存您想要的文件。
https://stackoverflow.com/questions/21249275
复制相似问题