PTX の学習を開始したいのですが、どこから始めればよいですか? これを行うための良い本/リソースはありますか?
これが役立つ場合は、x86/x64 ASM (多かれ少なかれ) を既に知っています。
他のアセンブリ言語に精通していると役立ちます。
決定的なリファレンスはPTX ガイドです。命令セットのリファレンス マニュアルとして機能しますが、かなり読みやすく、最初の 7 章ほどは並列スレッド実行の比較的基本的な紹介から始まり、すべての概念を説明しています。
短いドキュメントにも興味があるかもしれません:
/usr/local/cuda/doc/pdf/Inline_PTX_Assembly.pdf
(標準の Linux インストールの場合。Windows では、「Inline_PTX_Assembly.pdf」を検索するだけです。PTX ISA 3.2 ドキュメントもそこにあります)
このドキュメントでは、PTX について十分に説明しているため、そうしたくない場合は、完全なカーネルを構築することなく小さなスニペットを試すことができます。
また、ptx コードの生成、ほとんどの最適化 (生成されたptxを理解しにくくする可能性があります) の除去、カーネル ソース コードの行と生成されたptx、さらに理解を助けるために。-ptx
-G
-src-in-ptx
最後に、PTX は実際にはマシンが実行するものではありませんが、それに近いことに注意してください。PTX は中間コードであり、追加のコンパイル手順を経て、実際のマシン コードである SASS コードを作成します。cuobjdump
ユーティリティ ( )を使用して SASS コードを調べることもできますが、cuobjdump -sass mycode
SASS には PTX と同じレベルのドキュメントがありません。そのため、PTX を理解することから始める必要があります。