j'ai installé le cudaArray
, et ont lié à une texture:col texture variable cuda comme argument
texture<float, 2, cudaReadModeElementType> tex;
cudaChannelFormatDesc channelDesc =
cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat);
cudaArray *cuArray;
checkCudaErrors(cudaMallocArray(&cuArray,
&channelDesc,
width,
height));
checkCudaErrors(cudaMemcpyToArray(cuArray,
0,
0,
hData,
size,
cudaMemcpyHostToDevice));
Maintenant, je me demande, si le contenu dans le cuArray
et tex
reste le même tout le temps pendant le calcul, puis-je passer tex
et/ou cuArray
à une autre fonction afin que je n'aie pas à faire la liaison à chaque fois?
Quelque chose comme ceci:
DoJobUsingTex(float* output, float* input, int size, texture tex)
{
\\ do something here
}
https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-kepler-texture-objects-improve-performance-and-flexibility/ – talonmies
@talonmies Je ne l'ai pas essayé, mais il ressemble exactement Ce dont j'ai besoin. Pouvez-vous l'afficher en réponse pour que je puisse l'accepter? Merci beaucoup. –