GPU-programmeren

Welke uitspraak is in het algemeen juist over het geheugen aan de CPU-zijde en dat aan de GPU-zijde bij een programma dat een discrete GPU gebruikt?

  1. AHet zijn gescheiden geheugens, dus vóór de berekening wordt data naar de GPU gekopieerd en daarna het resultaat terug naar de CPU
  2. BHet is hetzelfde geheugen, dus kopiëren is nooit nodig
  3. CDe GPU kan het resultaat van een berekening niet opslaan
Antwoord en toelichting tonen

Antwoord: A. Het zijn gescheiden geheugens, dus vóór de berekening wordt data naar de GPU gekopieerd en daarna het resultaat terug naar de CPU

Een discrete GPU heeft op de kaart eigen geheugen zoals GDDR of HBM, dat via bijvoorbeeld PCI Express met het geheugen van de CPU is verbonden. De basisgang is daarom dat data uit het CPU-geheugen eerst naar het GPU-geheugen wordt gekopieerd, de kernel wordt gestart en na afloop het resultaat naar het CPU-geheugen wordt teruggekopieerd. De tijd van dit kopiëren bepaalt vaak de totale prestaties.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Bij lichte bewerkingen zoals het één keer optellen van array-elementen kan het sturen van data naar de GPU trager zijn dan rekenen op de CPU. Wat is de belangrijkste reden?
  2. Welke reden waarom overdracht naar de GPU sneller gaat nadat het CPU-geheugen is vastgepind (page-locked), is juist?
  3. Wat is het belangrijkste doel van het gebruik van meerdere CUDA-streams?
  4. Een programma dat duizenden keren achter elkaar zeer kleine kernels start is traag. Welke verbetermethode is het meest passend?
  5. Welke uitspraak over CUDA unified memory is juist?

Vergelijkingen bij dit onderwerp