2017-11-28 14 views
3

Ich greife auf eine Datei auf einem Datenträger mit Memory Mapped I/O (mmap Aufruf unter Linux).Verwenden von Memory-Mapped-Datei mit OpenCL

Ist es möglich, diesen virtuellen Speicherpuffer mit CL_MEM_USE_HOST_PTR an OpenCL zu übergeben (nur zum Lesen). Und könnte dies zu Leistungsgewinnen führen?

Ich möchte vermeiden, eine ganze Datei in den Host-Speicher zu kopieren und stattdessen den OpenCL-Kernel steuern, welche Teile der Datei vom Betriebssystem geladen/gepuffert werden.

Antwort

0

Ich denke, das sollte funktionieren - Sie sollten nicht mit Fehlern, Abstürzen oder falschen Ergebnissen enden; Ob es Leistungsverbesserungen bringt oder nicht, hängt wahrscheinlich von der Hardware, der Treiber/CL-Implementierung und den Zugriffsmustern ab. Ich wäre nicht überrascht, wenn es in vielen Fällen keinen großen Unterschied machen würde. Ich könnte mir vorstellen, dass der GPU-Treiber alle Seiten vorverfault und verdrahtet, um sie dem Adressraum der GPU zuzuordnen.