Ich bin Anfänger in der parallelen Programmierung. Ich habe eine Frage, die vielleicht albern erscheint, aber ich habe keine definitive Antwort bekommen, als ich sie gegoogelt habe.GPU liest von CPU oder CPU schreibt auf die GPU?
Beim GPU-Computing gibt es ein Gerät, d. H. Die GPU und der Host, also die CPU. Ich schrieb ein einfaches Hallo-Welt-Programm, das etwas Speicher auf der GPU zuweist, zwei Parameter (sagen src [] und dest []) an den Kernel übergeben, src String dh Hello World to dest String kopieren und die Zielzeichenfolge von gpu zu erhalten der Gastgeber.
Wird die Zeichenfolge "src" von der GPU gelesen oder schreibt die CPU in die GPU? Auch wenn wir die Zeichenfolge von der GPU zurückbekommen, schreibt die GPU in die CPU oder liest die CPU von der GPU?
In die Daten zurück übertragen und her kann es vier Möglichkeiten 1. CPU sein GPU - CPU schreibt GPU - GPU liest Form CPU 2. GPU CPU - GPU schreibt an die CPU - CPU liest von GPU
Kann jemand bitte erklären, welche von diesen möglich sind und welche nicht?
Welche, über verschiedene synchronisierte Controller kocht auf DMA (http://en.wikipedia.org/wiki/Direct_memory_access). – Ani
Vielen Dank. Es ist gut zu wissen, dass GPU auch die Transaktionen initiieren kann. Gibt es also einen Weg zu wissen, wer die Transaktionen mit einer der Bibliotheksroutinen in Opencl initiiert hat? oder die Routinen, mit denen ich entweder die CPU oder die GPU zwingen kann, die Transaktion durchzuführen. – Nike
Ich kenne OpenCL nicht so gut wie ich sollte; Davon abgesehen würde ich mich wundern, wenn CUDA Ihnen keine Möglichkeit geben würde, zu überprüfen, wo eine Variable im einheitlichen virtuellen Adressraum lebte. Diese Art von Information kann auch außerhalb des Anwendungsfalles von explizit verwalteten Übertragungen nützlich sein (welche neuere Versionen noch unterstützen sollten). – Patrick87