1

私はcudaプログラミングが初めてです。私は持っているケプラーGPUに取り組んでいます

3.2 compute_capability 
1024  max_threads_per_block 
1 Multiprocessor 
2048 max._threads per_Multiprocessor 
2147483647 grid size

これは、カーネルに 2048 しか割り当てられないということですか? では、その大きなグリッド サイズをどうするか?

私のアプリケーションには、大量の行列計算が含まれています。

4

1 に答える 1

3

CUDA プログラミングについてさらに学ぶ必要があります。

カーネル (つまりグリッド) には 1024 または 2048 を超えるスレッドを含めることができます。

1024 の制限は、ブロックごとの制限です。2048という数字は、初心者ならあまり気にしなくてもいい数字です。

カーネルの起動で:

mykernel<<<A,B>>>(...);

パラメータはブロックあたりのBスレッド数です。1024 に制限されています。

Aパラメータは、グリッドごとのブロックです。2^31-1 に制限されています (Kepler GPU の x 次元の場合)。したがって、cc3.x デバイスでは、理論的には (2^31-1)*1024 スレッドを 1 次元グリッドで起動できます。

于 2015-04-30T14:32:34.147 に答える