cudaBindTextureToArray в PyCuda

Есть ли способ привязать массив, который уже находится на графическом процессоре, к текстуре с помощью PyCuda?

Уже есть 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)

person nbonneel    schedule 19.11.2012    source источник
comment
Разве pycuda.driver.TextureReference.set_array() не то, что вы хотите?   -  person talonmies    schedule 20.11.2012
comment
большое спасибо! :) (вы можете добавить это как ответ, и я проверю)   -  person nbonneel    schedule 20.11.2012
comment
массив, переданный в set_array, является массивом на графическом процессоре, верно?   -  person nbonneel    schedule 20.11.2012
comment
Да, pycuda.driver.Array. Если у вас есть линейная память, используйте set_address или set_address_2d для тональной линейной памяти.   -  person talonmies    schedule 20.11.2012


Ответы (1)


Если вы хотите привязать существующий массив CUDA в памяти графического процессора к ссылке на текстуру, то pycuda.driver.TextureReference.set_array(), вероятно, то, что вам нужно. Обратите внимание, что PyCUDA построен на API-интерфейсе драйвера, поэтому искомый вызов на самом деле cuTexRefSetArray, а не cudaBindTextureToArray.

person talonmies    schedule 19.11.2012