在Fortran中使用PlanMany进行cuFFT的双精度误差

问题描述 投票:-1回答:1

继(answer of JackOLantern)之后,我正在尝试使用cufftPlanMany计算批量1D FFT。

下面的代码执行nwfs=23乘以1d FFT前向和n=256复数阵列的1D FFT后向。这是训练我处理常规cufftPlanMany。作为第二步,nwfs数组将是不同的。最后,我检查每个数组的错误。

因为数据被分配为:qazxsw poi我使用这样的函数:qazxsw poi

其中:

  • cinput_d(n,nwfs)
  • cufftPlanMany(planmany, 1, fftsize, inembed, nwfs,1, onembed, nwfs,1, CUFFT_C2C, nwfs)对每个FFT都相同
  • rank = 1无视
  • fftsize = {n}两个连续输入和输出之间的距离
  • inembed = onembed = {0}两个信号之间的距离
  • istride = ostride = nwfs要完成的fft数量
idist = odist = 1

是否有人可以告诉我为什么以下“many-FFT”有时会在双精度中失败但从不以单精度?

单精度:“测试通过”总是!双精度:“测试失败”有时!

实际上,我检查了Device to Host数据传输。这似乎不是它。

谢谢你的帮助。

cuda fortran cufft
1个回答
0
投票

感谢talonmies。这是WDDM超时检测和恢复限制。

请参阅batch = nwfs的链接

© www.soinside.com 2019 - 2024. All rights reserved.