我一个16X21X21的三维数组存储在一维数组中,然后传递到cudaArray3D,然后将它和三维纹理绑定,最后从三维纹理中读取数据。比如说:text【2】【3】【4】 我将它在cpu的值设置维2+3+4=9,然后将它存储在一位数组22121+321+4这个索引位置,然后读取纹理的时候tex3d(texf,2,3,4)。发现这个纹理值和22121+321+4这个纹理的值9不一样,这是怎么回事呀?
cuda的三维矩阵有转置的,维度方向变了。x,y,z轴打乱次序了。你重新对对看能不能对出来,如果能对出来就是这个问题
我记得二维好像纹理是列优先的,三维可能也是这样
[
tex3d(texf,4,3,2)就对了。