我测量了执行内核在两个向量之间进行加法时的带宽:
__global__ void add(float *a, float *b, float *c, int n)
{
int tid = blockIdx.x*blockDim.x + threadIdx.x;
while (tid < n)
{
c[tid] = a[tid] + b [tid];
tid += blockDim.x * gridDim.x;
}
}
我首先启动内核一次,以便将其加载到设备上,然后,我测量内核执行的 10 次迭代。
当我的向量长度为 1000000 比 1000 时,带宽要好得多。
为什么 ?
谢谢。