最適な構成のCUDAスレッド

1上記各SM 192は、より少ないアクティブスレッドを失っているために、読み取り後書き込みデータ依存レジスタを隠蔽するために
 
2レジスタバンク競合が最小限に抑え、ブロックあたりのスレッドの数は64の倍数を含まなければなりません
 
利用可能な計算リソースが十分に利用されるように、3ブロック番号が設定されるべきです。各ブロックは、上記SMにマッピングされるので、少なくとも同じくらいの数SMとブロック番号をさせなければなりません。
 
ブロック4は、スレッドが同期のために待機している、またはメモリデバイスを読み出す場合、適切なSMアイドルであろう場合。時間軸上で重なるように、数ブロックは通常2倍以上SMでみよう
 
ブロック5十分の数場合、ブロックあたりのスレッドの数が小さすぎるワープ・コンピューティング・リソースの浪費を避けるために、反りの大きさの整数倍に設けなければなりません。
 
彼らはタイムスライス上で動作するように、より効率的であることができるように、図6に示すように、各ブロックに複数のスレッドを割り当てます。しかし、対応するスレッドのレジスタの各々も小さいです。レジスタが小さすぎるとレジスタ流出へのアクセスは、低速のデータストレージが得られているため、それが可能です。
 
ないブロックにあまりにも多くのスレッドを割り当てられたメモリブロックは、それ以外の場合はブロックの数を減少させる際に、各スレッド7以上です。それによってSMの効率を低下させます
 
各ブロック8内のスレッドの数は、計算能力の対応するレベルの所定数に従うべきです。
 
「 - GLSL、CUDAからOpenCLのにGPGPUプログラミングテクニック」からオリジナル

ます。https://my.oschina.net/u/204616/blog/545268で再現

おすすめ

転載: blog.csdn.net/weixin_34311757/article/details/91990115