cuFFT不知道我的内核做了什么

时间:2017-04-25 21:06:22

标签: cuda

使用cuFFT我有一个非常奇怪的问题。我尝试使用应用Hanning窗口的内核来准备输入数据。一切似乎都很好。这里的问题:cuFFT运行数据没有应用hanning窗口。我不明白为什么。

我尝试了以下内容: 测试1: - 我运行内核来应用窗口 - 将数据返回给主机并检查值:一切正常。窗口已应用 - 将值复制回设备 - 运行fft:没有运气,它吃非窗口数据!

TEST2: - 我没有使用内核,我用CPU应用窗口 - 我运行fft:它有效。它吃了窗口数据

对此有任何合理的解释吗? 这里是否涉及某种缓存?

注意:我在内核和cuFFT中使用相同的设备内存指针

1 个答案:

答案 0 :(得分:-2)

似乎我只在我的数据的前512个样本上运行了我的内核 applyWindow 。这解释了为什么它什么也没做。使用正确的设置运行内核在整个缓冲区上完成了工作。

int nbBlock = inputSizeInSamples / deviceProp.maxThreadsPerBlock;
applyWindow <<<nbBlock, deviceProp.maxThreadsPerBlock >>>( ... )