Programmation GPU
Que peut-il se produire si un noyau GPU utilise trop de registres par thread ?
- ALes registres augmentent automatiquement et les performances s'améliorent toujours
- BLe résultat du calcul est toujours faux
- CLe nombre total de registres du SM étant fixe, le nombre de threads chargés simultanément diminue et la latence mémoire est plus difficile à masquer
Afficher la réponse et l'explication
Réponse : C. Le nombre total de registres du SM étant fixe, le nombre de threads chargés simultanément diminue et la latence mémoire est plus difficile à masquer
Le GPU conserve sur puce les registres de tous les threads en cours d'exécution, ce qui permet de basculer instantanément entre warps. Si chaque thread utilise beaucoup de registres, le nombre de threads chargés simultanément sur le SM diminue. Les registres manquants sont évacués en mémoire (spill), ce qui peut ralentir l'exécution. On fixe parfois une limite de registres via les options du compilateur pour équilibrer avec le nombre de threads.