GPU-programmeren

Welk kenmerk van werk dat op een GPU snel kan worden verwerkt is het meest passend?

  1. AEen sequentiële berekening in één keten, waarbij het vorige resultaat voor de volgende wordt gebruikt
  2. BDezelfde berekening die onafhankelijk op elk element van een grote hoeveelheid data wordt uitgevoerd
  3. CEen berekening met weinig data en zeer veel voorwaardelijke sprongen
Antwoord en toelichting tonen

Antwoord: B. Dezelfde berekening die onafhankelijk op elk element van een grote hoeveelheid data wordt uitgevoerd

Een GPU verdeelt dezelfde bewerking over duizenden threads die parallel draaien, en komt dus goed tot zijn recht bij werk waarbij veel elementen onafhankelijk van elkaar kunnen worden berekend (data-parallellisme), zoals de verwerking van elke pixel van een beeld, matrixvermenigvuldiging en vectorbewerkingen. Bij sequentiële berekeningen die van het vorige resultaat afhangen, of bij berekeningen met weinig data en veel sprongen, valt er weinig te paralleliseren en is de CPU vaak sneller.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Welke bewerking wordt op een GPU waarschijnlijk inefficiënt uitgevoerd?
  2. Welke uitspraak over wat in GPU-programmering zoals CUDA een 'kernel' wordt genoemd, is juist?
  3. Welke combinatie van de hiërarchie van CUDA-threads is juist (van groot naar klein)?
  4. In een CUDA-kernel wordt met bovenstaande formule het nummer i van elke thread bepaald. Wat is i voor de thread met blockIdx.x=2, blockDim.x=256 en threadIdx.x=5?
  5. Een array van 1000 elementen moet worden verwerkt met 256 threads per block en één element per thread. Welk aantal blocks dat moet worden gestart is juist?

Vergelijkingen bij dit onderwerp