Leçon 14 : Coalescing de la mémoire globale — le concept
La mémoire globale (la DRAM du device) est la mémoire la plus grande mais aussi la plus lente du GPU, et le matériel la lit par transactions d'un bloc d'adresses contigu — typiquement 128 octets à la fois. Quand les 32 threads d'un warp accèdent à des adresses consécutives, par exemple a[i] avec i =
Imagine un arrosoir qui arrose 32 jeunes plants. Si les plants sont alignés serrés, un seul arrosage les mouille tous. Si chaque plant est à 32 pas du suivant, il te faut 32 allers-retours séparés à l'arrosoir pour les mêmes 32 plants — la même eau, 32 fois plus de travail.
- coalescing
- Quand des threads consécutifs d'un warp accèdent à des adresses consécutives, de sorte que le matériel les sert tous en une seule transaction mémoire.
- transaction mémoire
- Un bloc d'adresses contigu (typiquement 128 octets) que le matériel lit ou écrit en une seule opération sur la mémoire globale.
- stride
- La distance entre les adresses de deux threads voisins. Un stride de 1 est contigu (coalesced) ; un grand stride disperse les accès.
- bande passante
- La quantité d'octets utiles déplacés vers ou depuis la mémoire par unité de temps. Un accès dispersé la gaspille parce que chaque transaction ramène des octets inutiles.