私のGPUは、コンピューティング機能のバージョンが2.xのNVIDIA GeForce GT440です。 NVIDIAの公式CUDA_C_Programming_Guideは、しかしリミット2.OpenGLとCUDAの不一致最大スレッド数
リミット1にOpenGLのコンピュータシェーダのうちの2つをマルチプロセッサ= 1536
あたりの常駐スレッドの最大数をブロック= 1024
あたりのスレッドの最大数を指摘します実装限界1536
リミット3 GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONSあります
私の質問は
です。1.なぜ限界1が限界2と制限3に等しくないのですか?
2.実際のスレッド/ブロック(呼び出し/ワークグループ)は1024か1536か?
"2"は実行中のスレッドで、ハードウェアに依存していません(したがって、2つのブロックを同時に計算できます)。 –
ブロックあたりの実際のスレッド数はCUDAで1024です。これは、1536番号とは別のハードウェア制限です。マルチプロセッサでは複数のブロックを常駐させることができるため、マルチプロセッサは単一のブロックからのスレッドより多くのスレッドをサポートできます。 GL制限がLimit 2に接続されていることは明らかです。制限1と2の違いについては、ここで多くの質問で議論されます。 –
CUDAのブロックあたりのスレッドの最大数は1024です。ただし、OpenGLでの計算ワークグループ呼び出しの最大値は1536です。これらは異なるようです。しかし、私はCUDA **ブロック**はOpenGL ** Work Group **に相当し、2つのmaximun値は同じであるべきだと思います。私は正しい? –