【发布时间】:2016-10-14 06:46:05
【问题描述】:
我想知道快速傅里叶变换 (FFT) 执行了多少 FLOPS。
那么,如果我有一个由N 浮点数组成的1 维数组,并且我想计算这组数字的FFT,那么需要执行多少个FLOPS?
我知道这取决于使用的算法,但是最快的算法呢?
我也知道 FFT 的缩放是N*log(N) 的数量级,但这不能回答我的问题。
【问题讨论】:
-
除非您使用的硬件非常有限,否则您不太可能从这些数据中推断出您可以执行多大的 FFT。
-
(对于任何给定的输入和(机器级)实现,它将执行许多 FloatingPointOperations - FLO?对于一个给定的机器(&-设置和边界条件(想想 热节流) >)),这将需要一些分配或挂钟秒数,以便计算出 FLOPS。)(与 F.Haglund 相呼应:预计 大量 内存层次结构效应。)
-
FFT 执行时间主要由内存延迟决定,因为它执行的内存访问是跨步的。在典型的处理器上,数学是最简单的部分,访问内存是个问题。
-
@doug65536 仅适用于足够大的 FFT 变换。例如,64^3 3D FFT 适合缓存。