首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么读PTX?

我怎么读PTX?
EN

Stack Overflow用户
提问于 2013-06-01 18:04:11
回答 1查看 2.4K关注 0票数 3

我的工作能力3.5,CUDA 5和VS 2010 (显然Windows)。

我有兴趣阅读编译后的代码,以更好地理解C代码更改的含义。

  • 在VS中我需要什么样的配置来编译代码以提高可读性(将编译设置为PTX足够了吗?)
  • 我需要什么工具来反向工程生成的PTX才能读取它?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 18:14:53

通常,要创建特定.cu文件的ptx版本,命令如下:

代码语言:javascript
复制
nvcc -ptx mycode.cu

它将生成一个mycode.ptx文件,其中包含与您使用的文件相对应的ptx代码。使用-src-in-ptx选项也可能具有指导意义:

代码语言:javascript
复制
nvcc -ptx -src-in-ptx mycode.cu

这将在源代码行与它们对应的ptx行之间穿插。

要理解ptx,从文档开始

请注意,编译器可能会生成与源代码不太相符的ptx代码,或者由于优化而引起混淆。您可能希望(也许是为了了解)也使用-G开关编译一些测试用例,以查看非优化版本的比较。

由于windows环境可能因机器而异,所以我认为,如果只查看特定版本的msvc++用于调用nvcc的路径(编译它时查看来自某个项目的控制台输出),并在上面给出的命令前面加上该路径,会更容易一些。我不确定直接将其构建到Visual中有多大用处,除非您有从ptx编译到可执行文件的特殊需要。在某种程度上,也有一些与ptx相关的样本码

另外,为了完整起见,ptx实际上不是设备执行的内容(但通常是非常接近的)。它是一种中间代码,可以由nvcc或位于GPU驱动程序中的编译器的一部分重新定向到家庭中的设备。要查看设备执行的实际代码,我们使用的是可执行文件而不是源代码,用于提取机器组装代码的工具是:

代码语言:javascript
复制
cuobjdump -sass mycode.exe

如果需要的话,在适当的路径前加上类似的警告。我会从ptx开始。我觉得你想做的就够了。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16875652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档