0

ユーザーが を渡してthreads_per_blockカーネルを呼び出すコードがあるとします。次に、入力が有効かどうかを確認します (たとえば、計算能力 CC <2.0 の場合は <=512、CC >=2.0 の場合は 1024)。

nvcc -arch=sm_13CC2.0 を搭載したコンピューターにグラフィックス カードを搭載しているときに、ユーザーがパスしたときにコードをコンパイルするとどうなるのだろうかthreads_per_block == 1024? これは:

  • 有効な入力 - 私が使用しているカードには CC2.0 があるため、または...
  • CC1.3用にコンパイルしたので無効?

それともnvcc -arch=sm_13、少なくとも CC1.3 は必要ですが、より高い CC で実行すると、それらのより高い機能を使用できるということですか?

4

1 に答える 1

1

nvccマニュアルから:

-アーチ

このオプションで指定されるアーキテクチャは、ptxステージまでのコンパイルチェーンで想定されるアーキテクチャです...

これは、コンパイラが使用できるPTX機能(特別な命令など)を指定することを意味します。ブロックあたりのスレッドの最大数はPTXISAによって指定されていないため、このコンパイラーパラメーターは解決しようとしている問題とは関係ありません。

thread_per_blockが有効かどうかを確認する最良の方法は、カーネルを起動してエラーが発生するかどうかを確認することです。

于 2011-05-18T15:14:01.390 に答える