【发布时间】:2015-07-09 06:10:21
【问题描述】:
我是 cuda 编程的新手。我在理解 cuda 代码方面几乎没有问题。我正在通过这个链接浏览 cuda 教程:cuda - tutorial
基本上,他们试图将数组传递给函数并将7 分配给该数组的每个索引。在 C 中,我们通常会使用 for 循环来完成
for(int index = 0; index < num_elements; ++index)
{
array[index] = 7;
}
在 CUDA 中,教程说它是这样完成的:
__global__ void kernel(int *array)
{
int index = blockIdx.x * blockDim.x + threadIdx.x;
array[index] = 7;
}
它说int index = blockIdx.x * blockDim.x + threadIdx.x; 行类似于用c 编写的for 循环,只是for 是顺序的,而在cuda 中它是并行完成的。我不明白这个int index = blockIdx.x * blockDim.x + threadIdx.x;是如何进行并行处理的@有人可以解释一下吗?
【问题讨论】:
标签: c cuda parallel-processing