Leçon 10 : Warps et SIMT : l'unité de 32 threads
Le matériel du GPU ne planifie pas les threads un par un, mais en groupes fixes de 32 threads appelés warp. Les 32 threads d'un warp exécutent la même instruction au même moment, en lockstep — c'est le cœur du modèle SIMT (Single Instruction, Multiple Threads). La taille du warp est de 32 sur toutes
Pense à des rameurs dans des bateaux de 32. Tous ceux d'un même bateau tirent la rame au même instant, au même rythme. Tu ne peux pas changer la taille du bateau à 30 ou 40 — c'est toujours 32. Ta place dans le bateau, c'est le lane, et le numéro du bateau, c'est le warp.
- warp
- Un groupe de 32 threads que le matériel planifie et exécute ensemble en lockstep. La taille du warp est fixée à 32.
- SIMT
- Single Instruction, Multiple Threads — les 32 threads d'un warp exécutent la même instruction au même instant.
- lane
- La position d'un thread dans son warp : lane = threadIdx.x % 32, une valeur de 0 à 31.
- warpId
- L'id du warp auquel appartient un thread dans le block : warpId = threadIdx.x / 32 (division entière).