我想用CUDA內核來解決矩陣問題。 矩陣使用這樣的i和j索引。2變量到CUDA內核中
M[i*N+j]
Asuming,我想從M個元素複製到像M_temp任何其他變量,我應該這樣做
M_temp[i*N+j] = M[i*N+j];
嗯,我有使用塊和線程
dim3 grid = dim3(2, 1, 1);
dim3 block = dim3(10, 10, 1);
接下來的聲明
我不知道自己是否有錯,但根據之前的聲明,每塊可以有100個線程。共200線程。
在內核中我想使用索引。
__global__ void kernel(double *M)
{
int i = ???;
int j = ???;
}
我想用每塊至少100個線程,使得最大體尺寸爲:
M[100x100]
但我想用
1 block for variable i
和
1 different block for variable j.
我一直在想回合使用,
__global__ void kernel(double *M)
{
int i = threadIdx.x + blockDim.x * blockIdx.x;
int j = threadIdx.y + blockDim.x * blockIdx.x;
__syncthreads();
M_temp[i*N+j] = M[i*N+j];
}
但這種方式使用x中的所有塊。我不知道我很困惑。 請幫助我。
順便說一下,我的CPU是Geforce 610m。
謝謝