cuda 数组元素个数大于线程数目

关键是更新tid
tid += blockDim.x * gridDim.x;  (加上所有线程的数量,以便对其他数组元素接着更新)

  1. __global__ void add(int *d_arr, int *d_brr, int *d_crr, int arrLength) {  
  2.     int tid = blockDim.x * blockIdx.x + threadIdx.x;
  3.     if(tid <arrLength) {  
  4.         d_crr[tid] = d_arr[tid] + d_brr[tid];  
  5.         tid += blockDim.x * gridDim.x;  
  6.     }  

你可能感兴趣的:(CUDA)