GPU-Programmierung
Warum wird die Übertragung schneller, wenn CPU-Speicher fixiert (Page-Locked) und dann auf die GPU übertragen wird?
- AWeil das Betriebssystem die Seite weder verschiebt noch auslagert, sodass die GPU per DMA direkt lesen und schreiben kann, keine Zwischenkopie nötig ist und auch asynchrone Übertragung möglich ist
- BWeil die Daten durch das Fixieren komprimiert werden
- CWeil sich durch das Fixieren die PCI-Express-Generation erhöht
Antwort und Erläuterung anzeigen
Antwort: A. Weil das Betriebssystem die Seite weder verschiebt noch auslagert, sodass die GPU per DMA direkt lesen und schreiben kann, keine Zwischenkopie nötig ist und auch asynchrone Übertragung möglich ist
Normalen Speicher kann das Betriebssystem jederzeit auf andere physische Seiten verschieben oder auf den Speicher auslagern, sodass es gefährlich wäre, wenn die GPU per DMA unmittelbar darauf liest und schreibt. Deshalb wird üblicherweise zunächst in einen vorübergehend fixierten Bereich kopiert und dann übertragen. Wird von Anfang an fixierter Speicher verwendet, entfällt diese zusätzliche Kopie, und die Übertragung kann asynchron und überlappend mit der Verarbeitung der CPU erfolgen.