、私は「int型私= blockIdx.x * blockDim.x + threadIdxの意味を理解することはできません、これに新鮮な男だ階層CUDA Cプログラミングガイド:スレッドとブロックのインデックス計算はどのように機能しますか? CUDA_C_Programming_Guide、第2章では
__global__ void MatAdd(float A[N][N],float B[N][N],float C[N][N])
{
int i=blockId.x*blockDim.x+threadIdx.x;
int j=blockId.y*blockDim.y+threadIdx.y;
if(i<N&&j<N)
C[i][j]=A[i][j]+B[i][j];
}
int main()
{
....
dim3 threadPerBlock(16,16);
dim3 numBlock(N/threadPerBlcok.x,N/threadPerBlock.y);
MatAdd<<<numBlocks,threadPerBlock>>>(A,B,C);
....
}
スレッド.x "。なぜこれができますか? 誰かが私にそれを説明できますか? ありがとうございました。 たとえば、 "i"と "j"を使用してブロック(1,1)のスレッド(1,1)を確認する方法はありますか?
コードは投稿自体の中に属します。コードの画像を投稿しないでください。 – StoryTeller
画像ブロックとスレッドの位置関係が表示されました –
画像1が読み込まれませんでした。今度は画像2です。 – StoryTeller