GPU-programmeren
Welke uitspraak over de werking van __syncthreads() in CUDA is juist?
- AAlle threads van de GPU wachten op elkaar, ook over blocks heen
- BAlle threads van hetzelfde block wachten op elkaar tot ze dit punt hebben bereikt, zodat eerdere schrijfacties naar shared memory zichtbaar zijn
- CDe klokken van CPU en GPU worden gelijkgezet
Antwoord en toelichting tonen
Antwoord: B. Alle threads van hetzelfde block wachten op elkaar tot ze dit punt hebben bereikt, zodat eerdere schrijfacties naar shared memory zichtbaar zijn
Bij verwerking met shared memory moet de schrijfactie van een thread zijn voltooid voordat een andere thread de geschreven waarde leest. __syncthreads() laat alle threads van het block wachten tot ze allemaal hier zijn aangekomen, en garandeert zo bijvoorbeeld de volgorde dat eerst iedereen de data in shared memory heeft geladen en daarna met rekenen wordt begonnen. Alleen threads van hetzelfde block kunnen op elkaar wachten.