GPU线程
void some_func(int *a,int *b,int *c)
{
for(int i = 0;i<128;++i)
a[i] = b[i] * c[i];
}
这段代码很简单,在CUDA中,我们可以将这段代码直接转换成用128个线程,每个线程都执行下面这段代码:
a[i] = b[i] * c[i];
在CUDA中,可以通过创建一个内核函数的方式,将循环并行化。所谓的内核函数,就是一个只能在GPU上执行,而不能直接在CPU上执行的函数。
按照CUDA的编程模式,CPU主要处理它所擅长的串行代码,GPU主要执行密集计算的代码块。
从概念上看,GPU的内核函数和循环体是一样的,只不过将循环的结构移除了。下面这段代码就是一个内核函数
__global__ void some_kernel_func(int * const a,const int *const</