CUDA编程:内核kernel

版权声明:本文为博主原创文章,未经作者允许请勿转载。 https://blog.csdn.net/heiheiya https://blog.csdn.net/heiheiya/article/details/82017280

内核使用__global__声明符定义,使用<<<...>>>执行配置语法指定执行某一指定内核的线程数。每一个执行内核的线程拥有一个独一无二的线程ID,通过内置的变量threadIdx访问。

下面的例子是将两个长度为N的向量A和B相加,并将结果存入向量C中。

__global__ void VecAdd(float* A, float* B, float* C)
{
    int i = threadIdx.x;
    C[i] = A[i] + B[i];
}

int main()
{
    ...
    VecAdd<<<1, N>>>(A, B, C);
    ...
}

每个线程都会执行一次VecAdd,完成一对向量元素的加法。

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/82017280