Jak ustawić wartość typu wektor na pamięć przypiętą w cuda

Mam pytania dotyczące tworzenia pamięci przypiętej.

Teraz używam CUDA do radzenia sobie z dużymi rozmiarami danych.

Aby skrócić czas pracy, stwierdzam, że konieczne jest nałożenie kopii pamięci i uruchomienie jądra.

Po przeszukiwaniu niektórych tekstów i stron internetowych, nakładaniu się kopii pamięci i uruchomieniu jądra, zauważam, że konieczne jest przydzielenie pamięci hosta za pomocą cudaMallocHost, który przydzieli pamięć hosta do pamięci przypiętej.
W przypadku używania liczby całkowitej lub typu tablicowego na hoście, łatwo było utworzyć pamięć przypiętą.

Takie jak to...

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

Ale w moim przypadku pamięć wyjściowa hosta jest ustawiona przez typ vertor.

I nie mogę nigdzie znaleźć sposobu, aby zmienić wektor-pamięć-hosta na pamięć przypiętą za pomocą cudaMallocHost.

Pomóż mi lub daj radę, aby rozwiązać ten problem. Dziękuję za przeczytanie mojego słabego angielskiego. Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion