Cuda 卡夫特·唐';我看不出我的内核做了什么

Cuda 卡夫特·唐';我看不出我的内核做了什么,cuda,Cuda,我在使用cuFFT时遇到了一个非常奇怪的问题。我试图用一个应用汉宁窗口的内核来准备输入数据。一切似乎都很好。这里的问题是:cuFFT在不应用hanning窗口的情况下运行数据。我不明白为什么 我尝试了以下方法: 测试1: -我运行内核来应用窗口 -将数据返回主机并检查值:一切正常。窗口已应用 -将值复制回设备 -运行fft:运气不好,它会吃掉非窗口数据 测试2: -我不使用内核,我用CPU应用窗口 -我运行fft:它工作。它吃掉窗口化的数据 对此有什么合理的解释吗? 这里有什么缓存吗 注意:我在

我在使用cuFFT时遇到了一个非常奇怪的问题。我试图用一个应用汉宁窗口的内核来准备输入数据。一切似乎都很好。这里的问题是:cuFFT在不应用hanning窗口的情况下运行数据。我不明白为什么

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

测试2: -我不使用内核,我用CPU应用窗口 -我运行fft:它工作。它吃掉窗口化的数据

对此有什么合理的解释吗? 这里有什么缓存吗


注意:我在内核和cuFFT中使用了相同的设备内存指针,似乎我只对数据的前512个样本运行了内核applyWindow。这就解释了为什么它什么也没做。使用正确的设置运行内核可以在整个缓冲区上完成这项工作

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