gpt4 book ai didi

c++ - CUDA:获取 3D 表面的子集

转载 作者:行者123 更新时间:2023-11-28 08:03:21 25 4
gpt4 key购买 nike

我想渲染 3d 表面的一些切片。

cudaArray* surfArray;
cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsigned);
cudaExtent surfSize = make_cudaExtent(640,480,2);
cudaMalloc3DArray(&surfArray,&channelDesc,surfSize,cudaArraySurfaceLoadStore);

因此,我尝试通过 MemcpyArrayToArray() 和偏移量获取子集。

cudaGraphicsSubResourceGetMappedArray(&cu_rgbArray,tex_rgb,0,0);
cudaMemcpyArrayToArray(cu_rgbArray,0,0,surfArray,0,0,640*480*sizeof(uchar4),cudaMemcpyDeviceToDevice);

cudaGraphicsSubResourceGetMappedArray(&cu_depthArray,tex_depth,0,0);
cudaMemcpyArrayToArray(cu_depthArray,0,0,surfArray,640,480,640*480*sizeof(uchar4),cudaMemcpyDeviceToDevice);

然而,当第一个 memcpy 成功时,第二个失败。(如果偏移量为 0,0,它会成功)。

有没有想过如何在没有额外内核的情况下解决这个问题?

最佳答案

我认为您应该使用 cudaMemcpy3D,而不是 cudaMemcpyArrayToArray

关于c++ - CUDA:获取 3D 表面的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com