Programmation GPU
Quelle est la différence entre le mode SIMT (instruction unique, threads multiples) des GPU et les instructions SIMD des CPU ?
- ALe SIMT applique simultanément plusieurs instructions à une donnée, le SIMD une instruction à une donnée
- BSIMT et SIMD sont strictement identiques, seul le nom diffère
- CEn SIMT, chaque thread s'écrit comme un programme indépendant et le matériel gère les branchements, alors qu'en SIMD le programmeur ou le compilateur utilise explicitement des instructions vectorielles de largeur fixe
Afficher la réponse et l'explication
Réponse : C. En SIMT, chaque thread s'écrit comme un programme indépendant et le matériel gère les branchements, alors qu'en SIMD le programmeur ou le compilateur utilise explicitement des instructions vectorielles de largeur fixe
En SIMD sur CPU, une instruction s'applique à un registre vectoriel regroupant 4 ou 8 données ; le programme est donc écrit en tenant compte de la largeur du vecteur. En SIMT sur GPU, le programmeur écrit normalement le traitement d'un seul thread, et le matériel regroupe les threads par 32 pour les exécuter avec la même instruction. Les branchements par thread sont permis : le matériel exécute successivement les chemins divergents, mais l'efficacité baisse alors.