4

我想开始学习 PTX,我应该从哪里开始?有什么好书/资源可以做到这一点吗?

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

4

1 回答 1

14

熟悉其他一些汇编语言会有所帮助。

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

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

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

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

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

您还应该注意可能有用的nvcc 选项-ptx,例如生成 ptx 代码,-G以消除大多数优化(这会使生成的 ptx 难以理解),并且-src-in-ptx会将您的内核源代码行与生成的ptx,以进一步帮助您理解。

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

于 2013-07-09T13:45:25.480 回答