Я измерил пропускную способность при выполнении ядра делает сложение между двумя векторами:CUDA: векторы сложения и векторов размер
__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 итераций выполнения ядра.
Пропускная способность намного лучше, когда мой vectors'length является +1000000 1000.
Почему?
Спасибо.
Графический процессор может скрывать задержку памяти, когда у него больше работы. –