Как сделать значение типа вектора для закрепленной памяти в cuda

У меня есть вопросы по поводу закрепления памяти.

Теперь я использую CUDA для обработки больших объемов данных.

Я считаю, что для сокращения времени выполнения необходимо, чтобы копирование памяти и запуск ядра перекрывались.

После поиска некоторых текстов и веб-страниц, с перекрытием копирования памяти и запуска ядра, я замечаю, что необходимо выделить память хоста с помощью cudaMallocHost, который выделит память хоста для закрепленной памяти.
В случае использования целочисленного типа или типа массива на хосте было легко создать закрепленную память.

Именно так...

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

Но в моем случае память отправителя моего хоста определяется типом vertor.

И я нигде не могу найти способ превратить vector-type-host-memory в закрепленную память с помощью cudaMallocHost.

Помогите мне или дайте совет, чтобы решить эту проблему. Спасибо, что читаете мой плохой английский. Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос