从头学习PTX

时间:2013-07-09 13:30:20

标签: cuda nvidia ptx

我想开始学习PTX,我应该从哪里开始?有这么好的书/资源吗?

如果这可能有帮助,我已经知道x86 / x64 ASM(或多或少)

1 个答案:

答案 0 :(得分:12)

熟悉其他汇编语言会很有帮助。

最终参考是PTX guide。虽然它是指令集的参考手册,但它具有相当的可读性,前7章左右的章节从相对基本的并行线程执行介绍开始描述所有概念。

您可能还对较短的文档感兴趣:

  

/usr/local/cuda/doc/pdf/Inline_PTX_Assembly.pdf

(在标准的Linux安装上。在Windows上,只搜索“Inline_PTX_Assembly.pdf”PTX ISA 3.2文档也在那里)

本文档讨论了足够多的PTX,以便您可以尝试使用小片段而无需构建完整的内核,如果您不想这样做。

您还应该了解可能有用的nvcc options,例如-ptx生成ptx代码,-G以消除大多数优化(这可能会使生成的ptx难以生成理解)和-src-in-ptx将你的内核源代码行与生成的ptx交错,以帮助你理解。

最后,请注意PTX实际上并不是机器运行的,尽管它接近它。 PTX是一个中间代码,它将通过一个额外的编译步骤来创建SASS代码,这是实际的机器代码。您也可以使用cuobjdump实用程序(cuobjdump -sass mycode)检查SASS代码,但SASS与PTX的文档级别不同。所以你应该先了解一下PTX。