Cómo hacer un vector de tipo-valor para la memoria fijada en cuda

Tengo preguntas sobre cómo hacer memoria anclada.

Ahora estoy usando CUDA para tratar con gran tamaño de datos.

Para reducir el tiempo de ejecución, entiendo que es necesario hacer que la copia de memoria y el inicio del kernel se superpongan.

Después de buscar en algunos textos y páginas web, para superponer la copia de memoria y el inicio del kernel, me doy cuenta de que es necesario asignar la memoria del host usando cudaMallocHost, que asignará la memoria del host a la memoria anclada.
En el caso de utilizar un tipo de entero o matriz en el host, fue fácil crear una memoria anclada.

Al igual que esto ...

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] >>> (...);
}

Pero en mi caso, la memoria de salida de mi host se establece por tipo de vertor.

Y no puedo encontrar en ningún lugar la forma de convertir la memoria de host de tipo vectorial en memoria fija mediante el uso de cudaMallocHost.

Ayúdame o dame algún consejo para resolver este problema. Gracias por leer mi pobre inglés. Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta