我正在使用Capabilities 3.5,CUDA 5和VS 2010(显然是Windows).
我有兴趣阅读已编译的代码,以更好地理解我的C代码更改的含义.
通常,要创建特定.cu文件的ptx版本,该命令为:
nvcc -ptx mycode.cu
Run Code Online (Sandbox Code Playgroud)
这将生成一个mycode.ptx
文件,其中包含与您使用的文件对应的ptx代码.使用该-src-in-ptx
选项也许是有益的:
nvcc -ptx -src-in-ptx mycode.cu
Run Code Online (Sandbox Code Playgroud)
这将散布源代码行与它们对应的ptx行.
要理解ptx,请从文档开始
请注意,编译器可能会生成与源代码不对应的ptx代码,或者由于优化而导致混乱.您可能希望(也许是为了获得洞察力)使用-G
交换机编译一些测试用例,以查看非优化版本如何比较.
由于Windows环境可能因机器而异,我认为如果只查看特定版本msvc++
用于调用的路径nvcc
(在编译时查看其中一个项目的控制台输出)并添加命令,则会更容易我在上面给出了这条道路.我不确定尝试直接将其构建到Visual Studio中有多大用处,除非您特别需要从 ptx 编译为可执行文件.还有一些 示例代码以某种方式与ptx有关.
另请注意,为了完整性,ptx实际上并不是设备执行的内容(但通常非常接近).它是一个中间代码,可以通过nvcc
也位于GPU驱动程序中的编译器或部分编译器重新定位到系列中的设备.要查看设备执行的实际代码,我们使用可执行文件而不是源代码,并且提取机器组装代码的工具是:
cuobjdump -sass mycode.exe
Run Code Online (Sandbox Code Playgroud)
如果需要,可以采用类似的警告来预先设置适当的路径.我会从ptx开始.我想你想做什么,就够了.
归档时间: |
|
查看次数: |
1428 次 |
最近记录: |