我读到几个处理音频的DSP卡,可以计算非常快速的傅立叶变换以及声音处理和其他相关的一些其他功能。存在一些科学问题(不是很多),如量子力学,与傅立叶变换计算有关。我想知道DSP是否可以用来加速这种方式的计算,就像GPU在其他情况下那样,如果你知道成功的例子。
由于
答案 0 :(得分:4)
任何线性操作在DSP芯片上都更容易,更快捷。它们的架构允许您在一个时钟周期内执行线性操作(取两个数字,将每个数乘以常数并添加结果)。这是在DSP芯片上如此快速地计算FFT的原因之一。这也是许多其他线性操作可以加速使用的原因。我想我对这些处理器的性能和代码优化有三个要点。
1)也许不太相关,但我还是想提一下。为了充分利用DSP处理器的架构,您必须在Assembly中进行编码。我很确定编译器不会完全优化常规C代码来执行您想要的操作。你确实必须指定每个寄存器等。但它确实有回报。同样,您可以使用circular buffers和其他DSP特定的东西。循环缓冲区对于计算FFT和基于FFT的(循环)卷积也非常有用。
2)FFT可以在许多问题的解决方案中找到,例如heat flow(傅立叶本人实际上在19世纪提出了解决方案),机械振荡分析(或任何线性振荡器,包括量子物理中的振荡器),脑波(EEG)分析,地震活动,行星运动和许多其他事物。任何涉及convolution的数学问题都可以通过傅立叶变换,模拟或离散来轻松解决。
3)对于上面列出的一些应用,包括音频处理,FFT以外的其他变换不断被发明,发现并应用于处理,例如Mel-Cepstrum(例如MPEG编解码器),{{3 (例如JPEG2000编解码器),wavelet transform(例如JPEG编解码器)和许多其他编解码器。然而,在量子物理学中,傅里叶变换是角动量方程中固有的。它自然而然地产生,不仅仅是为了分析或易于计算。出于这个原因,我不一定把在音频处理和量子力学中使用傅里叶变换的理由归结为同一类别。对于信号处理,它是一种工具;对于量子物理学而言,这就是这种现象的本质。
答案 1 :(得分: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 benchmarks进行比较。 DSP峰值为3.2GFlops,Nvidia 8800达到29GFlops。