問題タブ [ptx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - c++filt は、PTX ファイル内のマングルされた名前の一部に対して十分に積極的ではありません
コンパイル済みの PTX を c++filt でフィルタリングしていますが、一部の名前/ラベルのみが取り除かれ、一部がそのまま残ります。たとえば、次のようになります。
は次のように分解されます。
少なくともこれではなく:
私は、c++filt が CUDA PTX を明示的にサポートしていないことを認識しています。ただし、デマングルされていない名前は、例のデマングルされている名前とは単に追加_param_0
など_param_1
の接尾辞が異なることに注意してください (これらの名前のプレフィックスをどのようにデマングルする必要があるかという問題もありますが、それについては忘れましょう)。
- c++filt をパラメーター名/ラベルにも適用するように強制することはできますか? より一般的には、PTX ファイル内のマングルされたすべての C++ 名に対して?
- すでに持っている「フォーマット」に加えて、CUDA「フォーマット」を認識して c++filt を拡張することは可能/簡単
[-s|--format {none,auto,gnu,lucid,arm,hp,edg,gnu-v3,java,gnat,dlang}]
ですか? - この場合、c++filt を使用できない、または使用に適応できない場合、デマングリングを行うにはどうすればよいですか?
cuda - PTX をプログラムで読み込むと、CUDA 機能 5.0 を備えたデバイスに対して実行するとエラー 209 が返される
GPU デバイスとの相互作用を計測するための基礎として、CUDA SDK の ptxjit サンプルを使用しようとしています。
インストルメンテーション コードを正常にコンパイルし、デバイスを制御して、CUDA 機能 2.0 を備えた Geforce GT440 で PTX モジュールをロードして実行することができました。
CUDA 機能 5.0 を持つ Geforce 830M を搭載した (バンブルビーを使用してディスクリート GPU を制御するラップトップ) システムで同じインストルメンテーション コードをコンパイルすると、コードはコンパイルされますが、209 (CUDA_ERROR_NO_BINARY_FOR_GPU) が返されます。
カーネルを CUDA 機能 5.0 と互換性があるようにコンパイルしようとしましたが、成功せず、同じエラーが発生しました。
何か案は?
assembly - CUDA PTX には clz があるのに ctz がなく、CUDA ヘッダーに "fake ffs" があるのに fls がないのはなぜですか?
PTX は、最終的には個々のマイクロアーキテクチャの SASS アセンブリ言語に C/C++ GPU コードをコンパイルするための中間表現です。したがって、特定の nVIDIA GPU マイクロアーキテクチャの実際の命令セットにある特定の穴/ガフ/まぐれ/特異性によって妨げられることは想定されていません。
現在、PTX には、レジスタ内の先行ゼロの数をカウントするための命令がありますclz
。それでもctz
、後続ゼロの数をカウントする対応する命令がありません。これらの操作は「対称的」であり、特にその抽象的で特定のハードウェアで利用可能なものにバインドされていない場合、命令セットで両方が表示されるか、まったく表示されないことが確実に予想されます。一般的な CPU アーキテクチャには、長年にわたって両方がありました。
奇妙なことに、CUDAヘッダーdevice_functions.h
は関数を宣言します
この機能:
- count-trailing-zeros とほぼ同じセマンティクスを持ちます - すべてゼロの入力のみが異なります。
- 単一の PTX 命令に変換されるのではなく、ビットごとの否定と
clz
. - 対応する可能性のあるものもありませ
__fls
ん - 最後のセットを見つけてください。
それで、それはなぜですか?明らかな命令が PTX になく、ヘッダーに存在する命令とほぼ同じ「偽のビルトイン」が存在するのはなぜですか?