2016-09-27 2 views
0

The documentation für cudaHostAlloc() sagt, dass mit cudaHostAllocMapped Flag es zugewiesenen Speicher auf dem Host und "Zuordnung der Zuordnung in den CUDA-Adressraum zugeordnet". Bedeutet dies, dass ein Spiegelpuffer auch auf dem Gerät zugewiesen ist? Entweder während cudaHostAlloc() oder cudaHostGetDevicePointer() anrufen. Oder kommuniziert das Gerät mit dem Host-Speicher bei jedem Zugriff auf den Zeiger, der von cudaHostGetDevicePointer() zurückgegeben wird?Ordnet cudaHostAllocMapped auch einen Puffer auf dem Gerät zu?

Diese Frage unterscheidet sich von When to use cudaHostRegister() and cudaHostAlloc()? What is the meaning of "Pinned or page-locked" memory? Which are the equivalent in OpenCL?, weil ich nicht frage, was die APIs sind, wann sie zu verwenden sind oder was gepinnten Speicher ist. Ich frage speziell, ob ein Spiegelpuffer auf der GPU zugewiesen ist oder nicht.

+0

Mögliche Duplikate von [Wann verwenden Sie cudaHostRegister() und cudaHostAlloc()? Was bedeutet "angehefteter oder gesperrter" Speicher? Welches ist das Äquivalent in OpenCL?] (Http://stackoverflow.com/questions/39454465/when-to-use-cudahostregister-and-cudahostalloc-what-is-the-meaning-of-pinn) – Leos313

+0

@ Leos313, dort ist nichts in dieser Frage oder Antworten über den Spiegelpuffer. Ich wusste bereits die Antworten für diese Frage. Ich interessiere mich für die Details, wie GPU auf CPU-Speicher zugreift. –

+2

Kein Speicher ist auf dem Gerät reserviert, alle Zugriffe gehen zum Host-Speicher. [Diese Dokumentation] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#mapped-memory) ist möglicherweise besser auf Ihre Bedürfnisse zugeschnitten. – tera

Antwort

3

Kein "Mirror" -Puffer ist zugewiesen.

Wenn der Gerätecode einen Zeiger verwendet, der auf den zugeordneten Hostspeicher verweist, generiert ein Gerät, das diesen Zeiger liest oder schreibt, PCIE-Verkehr, um die Daten zum/vom Hostspeicher zu übertragen, um das Lesen oder Schreiben zu bedienen.

Verwandte Themen