GPU-programmeren
Welke uitspraak over de relatie tussen blocks en SM's (streaming multiprocessors) in CUDA is juist?
- ADe threads van één block worden verspreid over alle SM's uitgevoerd
- BHet aantal SM's en het aantal blocks moeten altijd gelijk zijn
- CElk block wordt aan één SM toegewezen en daar tot het einde uitgevoerd, en op één SM kunnen meerdere blocks tegelijk staan
Antwoord en toelichting tonen
Antwoord: C. Elk block wordt aan één SM toegewezen en daar tot het einde uitgevoerd, en op één SM kunnen meerdere blocks tegelijk staan
Een GPU heeft veel SM's en wijst de blocks van een kernel achtereenvolgens toe aan vrije SM's. Eén block wordt op één SM uitgevoerd, dus de threads in het block gebruiken het shared memory van die SM en kunnen synchroniseren. Als het aantal blocks ruim groter is dan het aantal SM's, krijgen ook bij verschillende GPU-groottes alle SM's werk, en wordt aan een SM die klaar is het volgende block toegewezen.