GPU-programmeren

Welke reden waarom overdracht naar de GPU sneller gaat nadat het CPU-geheugen is vastgepind (page-locked), is juist?

  1. AOmdat het besturingssysteem die pagina niet verplaatst of verwijdert, kan de GPU rechtstreeks met DMA lezen en schrijven, is een tussenkopie niet nodig en is ook asynchrone overdracht mogelijk
  2. BOmdat de data bij het vastpinnen wordt gecomprimeerd
  3. COmdat bij het vastpinnen de generatie van PCI Express stijgt
Antwoord en toelichting tonen

Antwoord: A. Omdat het besturingssysteem die pagina niet verplaatst of verwijdert, kan de GPU rechtstreeks met DMA lezen en schrijven, is een tussenkopie niet nodig en is ook asynchrone overdracht mogelijk

Gewoon geheugen kan door het besturingssysteem altijd naar een andere fysieke pagina worden verplaatst of naar opslag worden verwijderd, dus het is gevaarlijk als DMA van de GPU er zomaar in leest of schrijft. Daarom wordt gewoonlijk eerst naar een tijdelijk vastgepind gebied gekopieerd en daarna overgedragen. Met geheugen dat vanaf het begin is vastgepind, vervalt deze extra kopie en kan de overdracht ook asynchroon, overlappend met CPU-verwerking, plaatsvinden.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Wat is het belangrijkste doel van het gebruik van meerdere CUDA-streams?
  2. Een programma dat duizenden keren achter elkaar zeer kleine kernels start is traag. Welke verbetermethode is het meest passend?
  3. Welke uitspraak over CUDA unified memory is juist?
  4. Wat bepaalt hoofdzakelijk de prestaties wanneer op een GPU twee grote arrays elementgewijs worden opgeteld (c[i] = a[i] + b[i])?
  5. Wat is de meest passende reden waarom bij veel GPU's voor consumentengames de rekenprestatie in dubbele precisie (FP64) veel lager is dan in enkele precisie (FP32) (bijvoorbeeld tientallen keren)?

Vergelijkingen bij dit onderwerp