cuda内置变量
提示:以下是本篇文章正文内容,仅可供参考
一、cuda的内置变量
-
thread(线程)
一个线程可作为一个运算单元,多个thread可组成一个block(块).
threadIdx.x
:block中当前thread在x方向上的ID.
threadIdx.y
:block中当前thread在y方向上的ID. -
block(块)
一个block中可包含多个thread,多个block可组成一个grid(网格).
blockIdx.x
:grid中当前block在x方向上的ID.
blockIdx.y
:grid中当前block在y方向上的ID.
blockDim.x
:当前block中x方向上的thread数量.
blockDim.y
:当前block中y方向上的thread数量. -
grid(网格)
一个grid中可包含多个block.
gridDim.x
:当前grid中在x方向上的block数量.
gridDim.y
:当前grid中在y方向上的block数量.
二、线程同步
同一block内所有线程执行至__syncthreads()
处等待全部线程执行完毕后再继续。
代码如下(示例):
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <cuda.h>
#include <cuda_runtime.h>
#define N 8
void vfill(float* v, int n)