この質問は、次のリンクからも開始されます:共有メモリの最適化の混乱
上記のリンクで、talonmies の回答から、実行がスケジュールされるブロック数の最初の条件が「8」であることがわかりました。以下に示すように、3つの質問があります。
条件2と条件3のブロック数が8を超えると、同時に8ブロックしかスケジューリングできないということですか?cuda環境やGPUデバイス、アルゴリズムなどの条件は問わないのでしょうか?
もしそうなら、場合によっては共有メモリを使用しない方が良いことを意味します。では、共有メモリを使うか使わないかで、どちらが優れているかをどう判断するかを考えなければなりません。グローバルなメモリアクセス制限(メモリ帯域のボトルネック)がないかチェックするのもひとつの方法だと思います。これは、グローバル メモリ アクセス制限がなければ、「共有メモリを使用しない」を選択できることを意味します。それは良いアプローチですか?
上記の質問2に加えて、私のCUDAプログラムが扱うべきデータが膨大な場合、共有メモリ内では扱いにくいため、「共有メモリを使用しない」方が良いと考えることができます。それも良いアプローチですか?