Wie man in cuda einen Vektor-Typ-Wert für den fixierten Speicher erzeugt

Ich habe Fragen zum Erstellen von fixierten Erinnerungen.

Jetzt benutze ich CUDA, um mit großen Datenmengen umzugehen.

Um die Laufzeit zu verkürzen, ist es notwendig, die Speicherkopie und den Kernelstart zu überlappen.

Nach dem Durchsuchen einiger Texte und Webseiten, dem Überlappen von Speicherkopien und dem Starten des Kernels, stelle ich fest, dass es notwendig ist, Hostspeicher mithilfe von cudaMallocHost zuzuweisen, das dem angehefteten Speicher Hostspeicher zuweist.
Im Fall der Verwendung eines Integer- oder Array-Typs auf dem Host war es einfach, einen fixierten Speicher zu erstellen.

Genau wie dieser...

cudaStream_t* streams = (cudaStream_t*)malloc(MAX_num_stream * sizeof(cudaStream_t));
for(i=0; i<MAX_num_stream; i++)
    cudaStreamCreate(&(streams[i]));

cudaMallocHost(&departure, its_size);

for(n=1; ... ; n++){
   cudaMemcpyAsync( ... streams[n]);
   kernel <<< ... , ... , ... , streams[n] >>> (...);
}

In meinem Fall wird der Host-Abfahrtsspeicher jedoch nach Vertortyp festgelegt.

Und ich kann nirgendwo einen Weg finden, um mit cudaMallocHost Vektor-Typ-Host-Speicher in fixierten Speicher umzuwandeln.

Helfen Sie mir oder geben Sie einen Rat, um dieses Problem zu lösen. Vielen Dank, dass Sie mein schlechtes Englisch gelesen haben. Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage