CUDA FFT计划重复使用多个重叠的' CUDA Stream推出

时间:2015-03-04 13:33:03

标签: cuda cufft cuda-streams

我正在尝试使用与GPU计算重叠的异步内存传输来提高代码的性能。

以前我有一个代码,我创建了一个FFT计划,然后多次使用它。在这种情况下,根据这个earlier post投入创建CUDA FFT计划所花费的时间可以忽略不计。它可能非常重要。

现在我转移到流,我正在做的是“多次”创建“相同”计划,然后设置CUDA FFT流。根据你们中的一些人在other post给出的答案,这是浪费的。但是,还有其他办法吗?

注意:我正在实时获取数据,因此启动“批量”CUDA FFT是不可能的。我正在做的是通过完整的脉冲传输来创建和发布新的CUDA流。

注2:我也在考虑使用“CUDA Streams / FFT Plans”的“池”,但我认为这不是一个优雅,明智的解决方案,任何想法?

在分配CUDA流之前,是否有办法“复制”“存在的”fft计划?

谢谢你们!/加尔斯?希望在圣何塞见到你们。 =)

奥马

1 个答案:

答案 0 :(得分:1)

  

我正在做的是通过完整的脉冲传输来创建和发布新的CUDA流。

重新使用流,而不是每次都创建新流。然后,您可以提前重新使用为该流创建的计划,而您无需重新创建"相同的"在飞行中计划。

也许这就是你的溪流方法的意思。你的批评是它不优雅"或者"明智的"。我不知道这意味着什么。流水线算法中的流重用是一种常见的策略,如果没有其他原因,除了避免cudaStreamCreate开销(无论它可能是大,小)。

袖口计划has a stream associated with it。没有流关联,您无法复制计划。计划是一个不透明的容器。