問題タブ [ptxas]

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.

0 投票する
2 に答える
2724 参照

cuda - 複数の変数を含むカスタム アトミック関数を実装するにはどうすればよいですか?

このアトミック関数を CUDA に実装したいと思います。

アトミック関数でこれを行うことができるとは思いません。いくつかの命令のために、いくつかのグローバル メモリ loc をロックダウンする必要があります。これを PTXAS (アセンブリ) コードで実装できますか?

0 投票する
1 に答える
2531 参照

gcc - PTX 出力による NVCC 個別コンパイル

CUDA が生成するコードの種類を確認するために、オブジェクト ファイルに加えて ptx にコンパイルするのが好きです。ループの展開にはかなりの時間がかかることがあるため、→ *.cu< *.cucode>*.ptx*.cu→< code>*.o、現在行っています。

行に追加-ptxするだけnvcc *.cuで、目的の ptx 出力が得られます。

を使用ptxas -cしてコンパイルする*.ptx*.o動作しますが、実行可能リンクでエラーが発生します: Relocations in generic ELF (EM: 190).

*.ptxwithをコンパイルしようとすると、黙っnvccて失敗し、何も出力されません。

この画像は非常に役に立ちます: ここに画像の説明を入力

渡す必要があるオプションはありますptxasか?別のコンパイルでptx経由で適切にコンパイルするにはどうすればよいですか? nvccまたは、 ptx を保持するように指示できますか?

0 投票する
1 に答える
1774 参照

c++ - CUDA: --ptxas-options=-v 共有メモリと cudaFuncAttributes.sharedSizeBytes が一致しません

reqRegs構造体でandを使用しsharedSizeBytesて、cudaFuncAttributes実行時にカーネルのブロック サイズを動的に最適化しようとしています。

nvcc --ptxas-options=-v私の現在の実装では、カーネルのレジスタと共有メモリの使用状況を発見するために stdout テキストをざっと読みます。このメソッドは少しハックで、 からの出力テキストの正確な形式に依存しており、--ptxas-options=-v警告なしに変更される可能性があります。

私の問題は、--ptxas-options=-v出力で報告されsharedSizeBytesた「smem」共有メモリ値と構造体で不一致が見られることですcudaFuncAttributes。これにより、これまで使用してきた共有メモリの見積もりが間違っているか、sharedSizeBytesつまり、ランタイム ブロック サイズの最適化の目的で使用することはできません。nvcc --ptxas-options=-vこれは、そのようなカーネルの 1 つの出力です ...

cudaFuncAttributes.sharedSizeBytes...まったく同じカーネルの実行時の = 296 の値と比較。ここで何が起こっているのか知っている人はいますか?

別のカーネルを使用した別の例を次に示します。

ここcudaFuncAttributes.sharedSizeBytesで、実行時に = 340 です。

ありがとう。

0 投票する
0 に答える
143 参照

cuda - nvcc がこの単純な協同組合プログラムへのリンクを拒否するのはなぜですか?

という名前のファイルにある次の CUDA プログラムについて考えてみましょうfoo.cu

このプログラムはあまり機能しませんが、有効なプログラムです (計算能力がグリッド全体を協調グループとしてサポートするのに十分な場合)。リンクをコンパイルして実行する必要があります。しかし、私はこれを取得します:

びっくり!-l特定の-Lフラグを追加しても役に立ちません。たとえば、次のようになります。

なぜこうなった?そして、nvcc コマンドラインをどのように変更して、未解決のシンボルを見つけられるようにすればよいでしょうか?

ノート:

  • Devuan GNU/Linux 3.0 を使用しています。
  • CUDA 10.1 はディストリビューション パッケージとしてインストールされるため、そのライブラリは の下にあり/usr/lib/x86_64-linux-gnuます。
  • GeForce 1050 Ti カードを搭載した x86_64 マシン。