2012-07-27 4 views

답변

5

매핑 된 호스트 할당으로 thrust :: host_vector를 사용할 수 없다고 확신합니다. 고정 된 메모리 할당자가 있지만 매핑 된 메모리를 사용할 수 있다고 생각하지 않습니다.

    cudaHostAlloc
  1. 할당 매핑, 고정 호스트 메모리가 cudaHostGetDevicePointer
  2. 를 사용하여 제로 카피 메모리 장치 포인터를 가져옵니다 해당 장치 포인터에 thrust::device_pointer_cast를 사용하여 thrust::device_ptr 만들기 : 당신이해야 할 것은이 같은 것입니다을 통과 직접 컴파일

당신은 어느 thrust::device_ptr를 사용하여 thrust::device_vector을 할 수 있습니다 (자세한 내용은 here를 참조)은 반복자를 허용하는 모든 알고리즘에 적용됩니다.

+0

고마워요! 하지만 어떻게 thrust :: device_ptr을 사용하여 thrust :: device_vector를 만들 수 있습니까? – Alex

+1

iterator 범위에서'thrust :: device_vector'를 생성 할 수 있습니다. 따라서'thrust :: device_vector v (p, p + n)'과 같이 가리키는'device_ptr''p'에서 벡터'v'가 생성됩니다 n 요소의 할당. – talonmies

+1

하지만 새로운 device_vector를 생성하고 device_ptr p에서 벡터로 메모리를 복사합니다. 그렇지 않습니까? – Alex