j'ai mesuré la bande passante lors de l'exécution d'un noyau faisant une addition entre deux vecteurs:CUDA: vecteurs addition et vecteurs taille
__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;
}
}
je tout d'abord lance une fois le noyau, de sorte qu'il est chargé sur l'appareil, et à côté , Je mesure 10 itérations de l'exécution du noyau.
La bande passante est de loin mieux quand mon vectors'length est 1000000 à 1000.
Pourquoi?
Merci.
Le GPU peut masquer la latence de la mémoire lorsqu'il a plus de travail à faire. –