带有GPU加速的多维DSP

数字信号处理(DSP)是科学和工程计算中一种无处不在的方法。在实践中,DSP问题往往不仅仅是一维的。例如,图像数据是一个二维信号,雷达是一个三维信号。在维数增加的同时,处理数字信号的时间和/或存储复杂性也急剧增长。因此,实时解决多维DSP问题是非常困难的。现代通用图形处理单元(GPGPU)通过高度的并行计算,在矢量操作和数字操作上具有出色的吞吐量。处理数字信号,特别是多维信号,往往涉及对大量独立数据样本的一系列矢量操作,GPGPU现在被广泛用于加速多维DSP,如图像处理、视频编解码、雷达信号分析、声纳信号处理和超声扫描。从概念上讲,与中央处理器(CPU)、数字信号处理器(DSP)或其他FPGA加速器相比,GPGPU极大地降低了计算复杂性。

带有GPU加速的多维DSP的动机

处理多维信号是科学研究和/或工程计算中的一个常见问题。通常情况下,DSP问题的计算复杂性随着维数的增加而呈指数级增长。尽管如此,由于具有高度的时间和存储复杂性,实时处理多维信号是非常困难的。尽管许多快速算法(如FFT)已被提出用于一维DSP问题,但它们仍然不够高效,无法适应高维DSP问题。因此,使用数字信号处理器(DSP)仍然很难获得理想的计算结果。因此,需要更好的算法和硬件结构来加速多维DSP的计算。

现有的方法

实际上,为了加速多维DSP,在过去的几十年中已经提出和发展了一些常见的方法。

降低采样率

在多维DSP应用中,实现实时性要求的一个权宜之计是使用较低的采样率,这可以有效地减少一次要处理的样本数量,从而减少总的处理时间。然而,这可能会导致因采样定理而产生的混叠问题,并导致输出质量不佳。在某些应用中,如军事雷达和医疗图像,我们渴望得到高度精确和准确的结果。在这种情况下,使用较低的采样率来减少多维DSP领域的计算量并不总是允许的。

数字信号处理器

数字信号处理器是专门为处理矢量运算而设计的。几十年来,它们在DSP计算中被广泛使用。然而,大多数数字信号处理器只能够并行地处理一些操作。这种设计足以加速音频处理(一维信号)和图像处理(二维信号)。然而,对于多维信号的大量数据样本,这仍然不够强大,无法实时检索出计算结果。

超级计算机辅助

为了加速多维DSP的计算,在某些情况下需要使用专用的超级计算机或集群计算机,例如天气预报和军事雷达。然而,使用指定的超级计算机来简单地执行DSP操作需要相当大的资金成本和能源消耗。此外,它也不实用,不适合所有的多维DSP应用。

GPU加速

GPU最初是为加速图像处理和视频流渲染而设计的。此外,由于现代GPU有很好的能力以相对较低的成本和更好的能源效率并行进行数值计算,GPU正在成为一个受欢迎的替代方案,以取代超级计算机执行多维DSP。

带有GPU加速的多维DSP

GPGPU计算

现代GPU设计主要是基于SIMD(单指令多数据)计算范式。这种类型的GPU设备就是所谓的通用型GPU(GPGPU)。GPGPU能够通过其矢量或SIMD功能单元对多个独立的数据同时进行操作。一个现代的GPGPU可以催生成千上万的并发线程,并以批量方式处理所有线程。由于这种性质,GPGPU可以很容易地被用作DSP加速器,而许多DSP问题可以通过分而治之的算法来解决。一个大规模和复杂的DSP问题可以被分成一堆小的数字问题,并在一个时间内被全部处理,这样就可以xxx减少整体的时间复杂性。例如,两个M×M的矩阵相乘可以由GPGPU设备上的M×M并发线程处理,而没有任何输出数据的依赖性。

0

点评

点赞

相关文章