问题标签 [cufft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1733 浏览

cuda - 是否可以在设备函数中调用 cufft 库调用?

我在主机代码中使用 cuFFT 库调用它们工作正常,但我想从内核调用 cuFFT 库。早期版本的 CUDA 没有这种支持,但是动态并行这可能吗?

如果有任何关于如何实现这一目标的例子,那就太好了。

0 投票
1 回答
3377 浏览

cuda - using FFTW compatablity mode in cuFFT

I have a full project created using FFTW. I want to transition to using cuFFT. I understand that cuFFT has a "compatibility mode". But how exactly does this work? The cuFFT manual says:

After an application is working using the FFTW3 interface, users may want to modify their code to move data to and from the GPU and use the routines documented in the FFTW Conversion Guide for the best performance.

Does this mean I actually need to change my individual function calls? For example, call cufftPlan1d() instead of fftw_plan_dft_1d().

Do I also have to change my data types?

If I'm going to have to rewrite all of my code, what is the point of cufftSetCompatabilityMode(.)?

0 投票
2 回答
741 浏览

cuda - 关于 cuFFT 中的计划重用

这似乎是一个简单的问题,但cufft对我来说用法不是很清楚。

我的问题是:以下哪个实现是正确的

1)

2)

3)

假设和data1的所有数据大小相同。请忽略语法的正确性。我只需要一个概念性的答案。data2data3

第三种实现对我来说看起来不正确......

0 投票
1 回答
4315 浏览

cuda - 袖口 | 想不出一个简单的例子

我整天都在苦苦挣扎,试图让一个基本的 CUFFT 示例正常工作。但是我遇到了一个我无法识别的小问题。基本上我有一个带有 x 和 y 坐标的线性二维数组 vx 。然后我只计算一个向前然后向后的 CUFFT(就地),就这么简单。然后我复制回数组 vx,通过 NX*NY 对其进行标准化,然后显示。

当 vx 被定义为 cos(x) 或 sin(x) 时,它可以正常工作,但是当使用 sin(y) 或 cos(y) 时,它会返回正确的函数(sin 或 cos),但幅度只有一半(即也就是说,在 0.5 和 -0.5 之间而不是 1 和 -1) 之间振荡!请注意,使用 sin(2*y) 或 cos(2*y)(或 sin(4*y)、cos(4*y)、...)可以正常工作。任何想法?

0 投票
1 回答
307 浏览

cuda - 评估 1d cuFFT 的执行时间

代码片段

测量 cuFFT 创建计划所需的时间和执行时间。

如何仅测量执行时间而不包括创建计划所需的时间?

0 投票
2 回答
1150 浏览

c++ - cuFFT 的 NaN 问题

我正在使用 cuFFT 为 C++ 和 Cuda 中的学校作业编写频率过滤应用程序,但我无法让它工作。您可以在此处找到整个 Visual Studio 2010 解决方案。(需要过剩。)

这是我认为相关的部分:(fourierUtils.cu/194)

与我看到的官方示例相比,我看不到任何实际差异,但是当我使用 Nsight 对其进行调试时,我的内核接收到的所有 cufftComplex 值都是 NaN,输入图像和结果图像之间的唯一区别是结果底部有一个黑条,无论我使用哪种过滤蒙版和参数。所有 Cuda 和 cuFFT 调用都返回成功,内核调用后也没有报错。

我做错了什么?

我尝试用复杂的数组替换 img 和 dev_img 并使用 C2C 转换并就地进行,但它只改变了结果图像上黑条的大小。

感谢您的帮助。

编辑: 是一个不需要 glut 的简化版本,也应该在 linux 上编译。

0 投票
1 回答
1577 浏览

c++ - CUFFT:当输入是一个音高数组时如何计算 fft

我试图找到一个动态分配的数组的 fft。输入数组使用 . 从主机复制到设备cudaMemcpy2D。然后获取 fft (cufftExecR2C) 并将结果从设备复制回主机。

所以我最初的问题是如何使用 fft 中的音高信息。然后我在这里找到了答案 - CUFFT:如何计算倾斜指针的 fft?

但不幸的是,它不起作用。我得到的结果是垃圾值。下面给出的是我的代码。

我认为问题出在cufftPlanMany. 我该如何解决这个问题?

0 投票
1 回答
184 浏览

cuda - 文件中的袖带错误

我收到错误:

文件中的袖带错误

我正在使用这个文件来加载 FFT 并将它们传递给另一个文件。

我在线收到错误:

0 投票
0 回答
256 浏览

cuda - 为什么 CUDA 5.5 中的 CUFFT 规划时间比 CUDA 4 中的大

作为我研究工作的一部分,我需要测量不同 CUDA 版本(即特别是 CUDA 4 和 CUDA 5.5)中 CUFFT 库的规划时间。让我们看看一维FFT大小为4096的结果之一,如下图,

CUDA 5.5 和 GeForede GTX 770

FFT 大小:4096

计划时间:96322.7 us(微秒)

加载数据:36.6 us(微秒)

执行时间:135.9 us(微秒)

获取数据:42.5 us(微秒)

CUDA 4 和 GeForce GTX 560

FFT 大小:4096

规划时间:102.7 us(微秒)

加载数据:26.4 us(微秒)

执行时间:72.0 us(微秒)

获取数据:27.3 us(微秒)

看到CUDA 5.5 和 GeForede GTX 770上的 CUFFT 计划时间比CUDA 4 和 GeForce GTX 560上的计划时间慢了将近 900 倍,我真的很震惊。

相反,它应该在CUDA 5.5 和 GeForede GTX 770中更快,因为以下两个原因,1)CUDA 5.5 是最新版本,通常最新版本更快,2)GPU GTX 770 的规格比 GTX 更好560。

我的问题是,为什么计划时间会有这种差异?

有关更多详细信息,请参阅下面的代码,关于我如何使用 cuda 事件测量时间,

看到您的评论,我将不胜感激。提前致谢。

0 投票
1 回答
1283 浏览

cuda - 加快二维相关性

看起来我的应用程序开始是(i)FFT 有界的,它对平均大小约为 500x200(宽度和高度总是均匀)的矩形进行了大量的 2D 相关。场景和往常一样 - 执行两个 FFT(每个字段一个),将复杂字段相乘,然后执行一个 iFFT。

因此,在 CPU(Intel Q6600,带有 JTransforms 库)上,根据分析器,FFT 转换占用大约 70% 的时间,在 GPU(GTX670,cuFFT 库)上 - 大约 50%(因此,CUDA 的性能有所提高,但没有我想要的是)。我意识到,可能是 GPU 没有完全饱和(带宽有限)的情况,但从其他情况来看 - 批量计算会显着增加应用程序的复杂性。

问题:

  1. 我可以做些什么来减少至少几次在 FFT 上花费的时间?
  2. 我应该尝试 FFTW 库吗(目前我不确定它是否会比 JTransforms 带来显着的收益)?
  3. 是否有任何专用硬件可以插入 PC 进行 FFT 转换?