核函数 :
需要用 _ _ global_ _ 符号声明调用时需要用 <<<grid, block>>> 来指定 kernel 要执行的线程数量 cuda 中每一个线程都要执行核函数,并且每个线程都会分配一个唯一的线程号 thread ID,这个 ID 值可以通过核函数的内置变量 threadidx 获得cuda 核函数
kernel_function<<<num_blocks, num_threads>>>(param1, param2, ...)num_blocks : 线程块的数量 num_threads : 执行内核函数的线程数量
举个栗子:
some_kernel_func<<<2, 64>>>(a, b, c)这将会调用 some_kernel_func 这个 gp× 64 次
然后具体核函数:
__global__ void some_kernel_func(int * const a, const int * const b,const int * constc) { const unsigned int thread_idx = (blockIdx.x * blockDim.x) + threadIdx.x; a[thread_idx] = b[thread_idx] * c[thread_idx]; }