fftn on GPU array
12 次查看(过去 30 天)
显示 更早的评论
In my code, somewhere, I generate a gpuArray matrix with a size of 331x331x331x32, (single float) and I want to get an fftn from the array in a for loop. I have a 24GB TITAN RTX GPU, and before getting each fftn, I have 10 GB free on the GPU. But, when I run the code, it can calculate it without problem, but for the second loop, it returns:
An invalid FFT plan was used on the GPU.
If I pause the code and rerun the fftn, it works fine, but again, I get the error for the next loop, and the same story goes for the next loops!
I also tried the reset(gpuDevice(1)) before each for loop and noticed when I have this pice before each iteration, I will get the error, and if I run it twice, the problem will be solved! Would you please explain to me why I have this problem?
0 个评论
采纳的回答
Matt J
2021-3-28
编辑:Matt J
2021-3-28
before getting each fftn, I have 10 GB free on the GPU
But wit the array dimensions you've mentioned the result will consume more than 17 GB in double floating point.
331^3*64*8/2^30
You could try using single floats, but it will be a tight squeeze.
6 个评论
Matt J
2021-3-29
Incidentally, you might find whosGPU useful
for an approximate idea of how much memory is consumed by your gpuArray variables on the GPU.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 GPU Computing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!