2012-11-19 3 views
4

이미 Pycuda를 사용하여 GPU에있는 배열을 텍스처에 바인딩하는 방법이 있습니까?PyCuda의 cudaBindTextureToArray

이미 CPU에있는 배열을 텍스처에 바인딩하는 cuda.bind_array_to_texref(cuda.make_multichannel_2d_array(...), texref)이 있지만 배열이 이미 장치에 있으면 cudaBindTextureToArray을 PyCuda에서 찾을 수 없습니다. 예를 들어, 일 :

myArray = [1, 2, 3] 
myArray_d = gpu.to_gpu(myArray) # then performs some computations on it, and then 
cuda.bind_texture_to_array(myArray_d, texref) 
+0

'pycuda.driver.TextureReference.set_array()'는 당신이 원하는 것이 아닙니까? – talonmies

+0

대단히 감사합니다! :) (당신은 그것을 답으로 추가 할 수 있고 유효성을 검사 할 것입니다.) – WhitAngl

+0

set_array에 전달 된 배열은 GPU의 배열입니다. – WhitAngl

답변

3

당신이 텍스처 레퍼런스 GPU 메모리에있는 기존 CUDA 배열을 바인딩 할 경우, pycuda.driver.TextureReference.set_array() 당신이 원하는 아마. PyCUDA는 드라이버 API를 기반으로하므로, 찾고있는 호출은 실제로 cudaBindTextureToArray이 아닌 cuTexRefSetArray입니다.