【发布时间】:2021-12-24 10:18:54
【问题描述】:
我是 CUDA 编程的新手。 我很好奇如果元素的数量大于线程的数量会发生什么?
在这个简单的 vector_add 示例中
__global__
void add(int n, float *x, float *y)
{
int i = blockIdx.x * blockDim.x + threadIdx.x;
if (i < n)
y[i] = x[i] + y[i];
}
假设数组元素的数量是 10,000,000。我们使用 64 个块和每个块 256 个线程来调用这个函数:
int n = 1e8;
int grid_size = 64;
int block_sie = 256;
那么,只分配了 64*256 = 16384 个线程,剩下的数组元素怎么办?
【问题讨论】: