我读到一些处理音频的DSP卡,可以计算非常快的傅立叶变换和一些其他涉及到声音处理和其他功能的函数。有一些科学问题(不是很多),比如量子力学,涉及傅立叶变换计算。我想知道DSP是否可以用来加速这种方式的计算,就像GPU在其他一些情况下所做的那样,而且你是否知道成功的例子。
谢谢
发布于 2011-04-14 22:46:23
在DSP芯片上,任何线性运算都更容易、更快。它们的体系结构允许您在单个时钟周期内执行线性运算(取两个数字,将每个数字乘以一个常量,然后将结果相加)。这就是为什么在DSP芯片上可以如此快速地计算FFT的原因之一。这也是许多其他线性运算可以通过使用它们来加速的原因。关于这类处理器的性能和代码优化,我想我有三个主要观点。
1)可能不太相关,但我还是想提一下。为了充分利用DSP处理器的体系结构,你必须用汇编语言编写代码。我非常确定,普通的C代码不会被编译器完全优化来做你想做的事情。从字面上看,你必须指定每个寄存器,等等。然而,这是值得的。同样,您也可以使用circular buffers和其他特定于DSP的东西。循环缓冲区对于计算FFT和基于FFT的(循环)卷积也非常有用。
2)快速傅立叶变换可以在许多问题的解决方案中找到,例如heat flow (傅立叶本人实际上早在19世纪就提出了解决方案),机械振荡的分析(或任何线性振荡器,包括量子物理学中的振荡器),脑波分析,地震活动,行星运动和许多其他事情。任何涉及convolution的数学问题都可以通过傅里叶变换轻松解决,无论是模拟的还是离散的。
3)对于上面列出的一些应用,包括音频处理,除了FFT之外的其他变换不断被发明、发现并应用于处理,诸如Mel-Cepstrum (例如,MPEG编解码器)、wavelet transform (例如,JPEG2000编解码器)、discrete cosine transform (例如,JPEG编解码器)和许多其他。然而,在量子物理学中,傅立叶变换是角动量方程中固有的。它的出现是自然而然的,不仅仅是为了分析或便于计算。出于这个原因,我不一定会将在音频处理中使用傅立叶变换的原因与量子力学放在同一类别中。对于信号处理,它是一种工具;对于量子物理学,它是现象的本质。
发布于 2011-04-21 01:40:51
在主流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。
https://stackoverflow.com/questions/5632443
复制相似问题