內核使用__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,完成一對向量元素的加法。