cudaArray* cu_array;
cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat);
cudaMallocArray( &cu_array, &channelDesc, width, height);
cudaMemcpyToArray( cu_array, 0, 0, h_data,size,cudaMemcpyHostToDevice);
texRef.addressMode[0] = cudaAddressModeClamp;
texRef.addressMode[1] = cudaAddressModeClamp;
texRef.filterMode = cudaFilterModeLinear;
texRef.normalized = false;
cudaBindTextureToArray( texRef, cu_array, channelDesc);
使用cudaMallocArray申请cuda数组cu_array(之后用于纹理绑定)时,
奇怪的是如果cu_array的height较大 (未超过 unsigned int 长度,array总大小为90M) 运行时屏幕闪一下,最后没有结果
如果将cu_array 使用较小的height,数组反复赋值程序可以获得正确结果(较大数组避免反复host-device数据传输)。
程序开始在9600GSO上运行 384M显存 后又在Quadro FX 5600(1.5G显存)运行 均不行
请教各位大侠 不知是啥原因