Kann ich thrust :: host_vector verwenden oder muss ich cudaHostAlloc für die Nullkopie mit Thrust verwenden?

StackOverflow https://stackoverflow.com//questions/11692326

  •  12-12-2019
  •  | 
  •  

Frage

Ich möchte Nullkopie auf zugeordnetem Speicher verwenden, indem ich cudaHostGetDevicePointer.Kann ich verwenden thrust::host_vector oder ich muss benutzen cudaHostAlloc(...,cudaHostAllocMapped)? Oder ist es irgendwie einfacher mit Schub zu tun?

War es hilfreich?

Lösung

Ich bin mir ziemlich sicher, dass es immer noch nicht möglich ist, einen thrust :: host_vector als zugeordnete Hostzuweisung zu verwenden.Es gibt einen angehefteten Speicherzuordner, aber ich glaube nicht, dass zugeordneter Speicher verfügbar ist.Was Sie tun müssen, ist so etwas wie das:

  1. Zugeordneter zugeordneter, angehefteter Hostspeicher mit cudaHostAlloc
  2. Holen Sie sich den Gerätezeiger für den Nullkopie-Speicher mit cudaHostGetDevicePointer
  3. Erstellen Sie eine thrust::device_ptr wobei thrust::device_pointer_cast auf diesem Gerät Zeiger (siehe hier für weitere Informationen)

Sie können entweder eine machen thrust::device_vector mit dem thrust::device_ptr oder direkt an der thrust::device_ptr für alle Algorithmen, die einen Iterator akzeptieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top