Kann ich thrust :: host_vector verwenden oder muss ich cudaHostAlloc für die Nullkopie mit Thrust verwenden?
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?
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:
- Zugeordneter zugeordneter, angehefteter Hostspeicher mit
cudaHostAlloc
- Holen Sie sich den Gerätezeiger für den Nullkopie-Speicher mit
cudaHostGetDevicePointer
- Erstellen Sie eine
thrust::device_ptr
wobeithrust::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