Wat is SIMT?

Single instruction, multiple threads. Het programma wordt per thread geschreven, maar de hardware bundelt threads in warps (bij NVIDIA 32) en voert ze met dezelfde instructie uit.

Japanse benaming: SIMT

“SIMT” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. GPU-programmeren.

Vakgebied: GPU-programmeren

Nu oefenen: vragen over SIMT

Welke uitspraak over het verschil tussen de SIMT-methode (single instruction, multiple threads) van de GPU en SIMD-instructies van de CPU is juist?

  1. ASIMT voert meerdere instructies tegelijk uit op één data-element en SIMD voert één instructie uit op één data-element
  2. BSIMT en SIMD zijn volledig hetzelfde en verschillen alleen in naam
  3. CBij SIMT kan elke thread als een onafhankelijk programma worden geschreven en handelt de hardware ook sprongen af, terwijl bij SIMD de programmeur of compiler expliciet vectorinstructies met vaste breedte gebruikt
Antwoord en toelichting tonen

Antwoord: C. Bij SIMT kan elke thread als een onafhankelijk programma worden geschreven en handelt de hardware ook sprongen af, terwijl bij SIMD de programmeur of compiler expliciet vectorinstructies met vaste breedte gebruikt

Bij SIMD van de CPU wordt één instructie toegepast op een vectorregister met bijvoorbeeld 4 of 8 data-elementen, dus het programma wordt geschreven met aandacht voor de vectorbreedte. Bij SIMT van de GPU schrijft de programmeur de bewerking van één thread gewoon uit, en bundelt de hardware die in groepen van 32 en voert ze met dezelfde instructie uit. Threads mogen individueel vertakken, en de hardware voert de gesplitste paden na elkaar uit, maar dan daalt de efficiëntie.

“SIMT” in de toelichting

Vragen met “SIMT” (2)

  1. Welke uitspraak over het verschil tussen de SIMT-methode (single instruction, multiple threads) van de GPU en SIMD-instructies van de CPU is juist?
  2. Hoe heet bij NVIDIA-GPU's de eenheid waarin 32 threads tot één bundel worden gevormd die dezelfde instructie tegelijk uitvoert?

Verwante termen

GPU SIMD Numerieke apertuur (NA) Bankconflict Constant memory CUDA Gemengde precisie (mixed precision) GPU-kernel Grid-stride loop Latentieverberging (latency hiding)

Naar de woordenlijst