GPU-programmeren
Welke uitspraak over het verschil tussen de SIMT-methode (single instruction, multiple threads) van de GPU en SIMD-instructies van de CPU is juist?
- ASIMT voert meerdere instructies tegelijk uit op één data-element en SIMD voert één instructie uit op één data-element
- BSIMT en SIMD zijn volledig hetzelfde en verschillen alleen in naam
- 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.