1

我读到几个处理音频的 DSP 卡,可以计算非常快速的傅立叶变换和一些其他涉及声音处理和其他功能的功能。有一些科学问题(不是很多),比如量子力学,涉及傅里叶变换计算。我想知道是否可以使用 DSP 以这种方式加速计算,就像 GPU 在其他一些情况下所做的那样,以及您是否知道成功的示例。

谢谢

4

2 回答 2

4

在 DSP 芯片上进行任何线性运算都更容易、更快捷。他们的架构允许您在单个时钟周期内执行线性运算(取两个数字,将每个数字乘以一个常数,然后将结果相加)。这是在 DSP 芯片上可以如此快速地计算 FFT 的原因之一。这也是许多其他线性运算可以通过使用来加速的原因。关于此类处理器的性能和代码优化,我想我要提出三个要点。

1)也许不太相关,但我还是想提一下。为了充分利用 DSP 处理器的架构,您必须在汇编中编写代码。我很确定编译器不会完全优化常规 C 代码来执行您想要的操作。您实际上必须指定每个寄存器等。但是,它确实得到了回报。同样,您可以使用循环缓冲区和其他特定于 DSP 的东西。循环缓冲区对于计算 FFT 和基于 FFT 的(循环)卷积也非常有用。

2) FFT 可以在许多问题的解决方案中找到,例如热流(傅立叶本人实际上早在 1800 年代就提出了解决方案)、机械振荡分析(或任何线性振荡器,包括量子物理学中的振荡器) ,脑电波 (EEG)、地震活动、行星运动和许多其他事物的分析。任何涉及卷积的数学问题都可以通过模拟或离散傅里叶变换轻松解决。

3) 对于上面列出的一些应用,包括音频处理,除了 FFT 之外的其他变换也在不断地被发明、发现和应用于处理,例如Mel-Cepstrum(例如 MPEG 编解码器)、小波变换(例如 JPEG2000 编解码器),离散余弦变换(例如 JPEG 编解码器)等。然而,在量子物理学中,傅里叶变换是角动量方程所固有的。它自然而然地出现,而不仅仅是为了分析或计算的目的。出于这个原因,我不一定会将在音频处理和量子力学中使用傅立叶变换的原因归为同一类。对于信号处理,它是一种工具;对于量子物理学来说,这是现象的本质。

于 2011-04-14T14:46:22.980 回答
0

在主流 CPU 中的 GPU 和 SIMD 指令集之前,这是获得某些应用程序性能的唯一方法。在 20 世纪后期,我在一家制造 PCI 卡的公司工作,以便在 PCI 插槽中放置额外的处理器。其中一些是使用TI C64x DSP的 DSP 卡,另一些是提供 Altivec 的 PowerPC 卡。卡上的处理器通常没有操作系统来提供比主机更可预测的实时调度。客户会购买带有大型 PCI 背板的工业 PC,并连接多张卡。我们还将制造 PMC、CompactPCI 和 VME 等外形尺寸的卡,以适应更恶劣的环境。

人们将开发代码以在这些卡上运行,并托管通过 PCI 总线与附加卡通信的应用程序。这些平台开发起来并不容易,而用于 GPU 计算的现代库要容易得多。

如今,这种情况已经很少见了。通用 CPU 和 GPU 的性价比要好得多,而用于科学计算的 DSP 正在消失。当前的 DSP 制造商倾向于针对低功耗嵌入式应用或对成本敏感的大容量设备(如数码相机)。将GPUFFTW与这些Analog Devices 基准进行比较。DSP 峰值为 3.2GFlops,Nvidia 8800 达到 29GFlops。

于 2011-04-20T17:40:51.060 回答