Wat is GPU-kernel?

Functie die door veel threads tegelijk op de GPU wordt uitgevoerd. Wordt gestart vanuit het programma aan de CPU-kant en elke thread kiest met zijn eigen nummer de data waarvoor hij verantwoordelijk is. Iets anders dan de kernel van een OS.

Japanse benaming: GPUカーネル

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

Vakgebied: GPU-programmeren

Nu oefenen: vragen over GPU-kernel

Wat kan er gebeuren in een GPU-kernel als het registergebruik per thread te hoog is?

  1. AEr komen automatisch meer registers bij, waardoor de prestaties altijd verbeteren
  2. BHet rekenresultaat is altijd verkeerd
  3. CHet totale aantal registers van een SM staat vast, dus het aantal threads dat tegelijk kan worden geladen daalt en geheugenlatentie is moeilijker te verbergen
Antwoord en toelichting tonen

Antwoord: C. Het totale aantal registers van een SM staat vast, dus het aantal threads dat tegelijk kan worden geladen daalt en geheugenlatentie is moeilijker te verbergen

Een GPU wisselt van warp in een oogwenk doordat de registers van alle uitgevoerde threads op de chip worden bewaard. Daarom daalt het aantal threads dat tegelijk op een SM kan worden geladen als één thread veel registers gebruikt. Wat niet past, wordt naar het geheugen verplaatst (spill), wat ook trager kan zijn. Soms wordt in de compilerinstellingen een bovengrens voor registers opgegeven om evenwicht met het aantal threads te vinden.

Vragen met “GPU-kernel” (1)

  1. Wat kan er gebeuren in een GPU-kernel als het registergebruik per thread te hoog is?

Verwante termen

GPU Streaming multiprocessor (SM) Spill Bankconflict Constant memory CUDA Gemengde precisie (mixed precision) Grid-stride loop Latentieverberging (latency hiding) Memory coalescing

Naar de woordenlijst