CUDA の削減は、私を完全に困惑させました! まず、Mark Harris によるこのチュートリアルと Mike Giles によるこのチュートリアルの両方が宣言を利用しています。キーワードは、宣言が行われるときに C で使用されますが、割り当ては「別の場所」で行われます (たとえば、別の C ファイル コンテキストなど)。ここの関連性は何ですか?使用しない理由:extern __shared__ temp[]
extern
extern
__shared__ float temp[N/2];
例えば?temp
または、グローバル変数であることを宣言しないのはなぜですか。
#define N 1024
__shared__ float temp[N/2];
__global__ void sum(float *sum, float *data){ ... }
int main(){
...
sum<<<M,L>>>(sum, data);
}
まだ別の質問がありますか? 合計カーネルを呼び出すために、ブロックごとにいくつのブロックとスレッドを使用する必要がありますか? この例を試しました(これに基づいて)。
注: デバイスに関する情報は、こちら で確認できます。