我的工作能力3.5,CUDA 5和VS 2010 (显然Windows)。
我有兴趣阅读编译后的代码,以更好地理解C代码更改的含义。
发布于 2013-06-01 18:14:53
通常,要创建特定.cu文件的ptx版本,命令如下:
nvcc -ptx mycode.cu它将生成一个mycode.ptx文件,其中包含与您使用的文件相对应的ptx代码。使用-src-in-ptx选项也可能具有指导意义:
nvcc -ptx -src-in-ptx mycode.cu这将在源代码行与它们对应的ptx行之间穿插。
要理解ptx,从文档开始
请注意,编译器可能会生成与源代码不太相符的ptx代码,或者由于优化而引起混淆。您可能希望(也许是为了了解)也使用-G开关编译一些测试用例,以查看非优化版本的比较。
由于windows环境可能因机器而异,所以我认为,如果只查看特定版本的msvc++用于调用nvcc的路径(编译它时查看来自某个项目的控制台输出),并在上面给出的命令前面加上该路径,会更容易一些。我不确定直接将其构建到Visual中有多大用处,除非您有从ptx编译到可执行文件的特殊需要。在某种程度上,也有一些与ptx相关的样本码。
另外,为了完整起见,ptx实际上不是设备执行的内容(但通常是非常接近的)。它是一种中间代码,可以由nvcc或位于GPU驱动程序中的编译器的一部分重新定向到家庭中的设备。要查看设备执行的实际代码,我们使用的是可执行文件而不是源代码,用于提取机器组装代码的工具是:
cuobjdump -sass mycode.exe如果需要的话,在适当的路径前加上类似的警告。我会从ptx开始。我觉得你想做的就够了。
https://stackoverflow.com/questions/16875652
复制相似问题