Qu'est-ce que SIMD ?

Abréviation de Single Instruction, Multiple Data. Mode où une seule instruction applique la même opération à plusieurs données à la fois. Accélère le traitement d'images et les calculs d'IA.

Nom japonais: SIMD

« SIMD » apparaît dans 7 questions d'entraînement réparties sur 5 thèmes, dont Compilateurs, Programmation GPU, CPU et architecture.

Domaine: CPU et architecture

S'entraîner : questions sur SIMD

Quelle est la différence entre le mode SIMT (instruction unique, threads multiples) des GPU et les instructions SIMD des CPU ?

  1. ALe SIMT applique simultanément plusieurs instructions à une donnée, le SIMD une instruction à une donnée
  2. BSIMT et SIMD sont strictement identiques, seul le nom diffère
  3. 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.

« SIMD » dans les explications

Questions mentionnant « SIMD » (7)

  1. Quelle est la principale raison pour laquelle la boucle ci-dessus est difficile à vectoriser avec des instructions SIMD ?
  2. Quelle est la différence entre le mode SIMT (instruction unique, threads multiples) des GPU et les instructions SIMD des CPU ?
  3. Quel mode de traitement applique simultanément une même opération à plusieurs données au moyen d'une seule instruction ?
  4. Quelle description de l'arithmétique saturée utilisée en traitement du signal est correcte ?
  5. Quel type d'instructions la vectorisation automatique du compilateur utilise-t-elle ?
  6. Pourquoi le traitement ci-dessus, qui additionne uniquement les coordonnées x, devient-il généralement plus rapide une fois réécrit sous forme de structure de tableaux (chaque composante dans un tableau séparé) ?
  7. Pour traiter sur GPU des données de particules ayant des positions x, y et z, quelle disposition est avantageuse du point de vue de l'accès mémoire coalescé ?

Comparatifs incluant ce terme

Termes associés

Vectorisation GPU SIMT Arithmétique saturée Interruption Architecture de von Neumann Architecture du jeu d'instructions (ISA) Cohérence de cache DMA (accès direct à la mémoire) DVFS (ajustement dynamique de la tension et de la fréquence)

Retour au glossaire