使用GPU编码器在NVIDIA GPU上加速雷达模拟
了解GPU Coder™如何使您在NVIDIA上加速信号和图像处理中的高计算应用程序®gpu。通过一个SAR处理示例,我们演示了如何将模拟时间按数量级减少。
gpu的巨大并行计算能力使各种高性能计算任务成为可能和加速。在本视频中,我们将考虑如何将其应用到雷达应用,以及如何使用GPU Coder在GPU上加速此类应用。
我们将使用合成孔径雷达处理的例子来说明这一点,因为SAR通常用于机载雷达,也用于汽车雷达应用。
SAR利用雷达天线在目标区域上的运动提供比传统波束扫描雷达更好的空间分辨率。
这里我们有三个点目标的原始回波数据,图中显示了天线的运动。
您可以从连续记录的脉冲雷达回波合成SAR图像,这些回波用于从移动天线照亮目标。
这里我们有我们的算法,使用时域反向传播来构建三个点的SAR图像,并注意到该算法是高度并行的,由三个for循环组成。
所以我们得到了三个点的预期SAR图像,但是让我们注意处理时间。对于2000x10000大小的输入数据,算法在我的桌面CPU上花费了大约3000秒。
为了利用该算法的并行性并在GPU上加速它,我们将利用mex工作流,其中我们从该算法生成CUDA代码,并从MATLAB运行编译好的CUDA代码。
可以看到编译后的CUDA代码运行速度快了大约两个数量级。
代码生成报告为您提供了关于生成代码的附加细节和见解。
例如,这里的绿色高亮部分表示生成的代码映射到GPU,在这个例子中,整个函数映射到GPU。
您可以在度量报告中看到关于内核以及线程和块分配的其他详细信息。这里生成的代码只有一个内核,我们只使用四个块。
但我们的算法中有三个循环,有可能调整我们的算法,使其更多的数据并行。
通过简单地将这三行代码移动到内部循环,两个外部循环现在就完美地嵌套了,而无需更改代码的行为。如果我们运行生成的mex,我们会看到额外10倍的加速。您可以通过指定额外的参数来进一步控制并行度,例如向内核pragma指定块大小。
现在更进一步,使用gucoder。概要文件,我们可以概要文件和获取时间信息,让你探索处理内核的相对时间和从GPU来回移动数据的相对时间。
这可以进一步帮助您确定更新应用程序以提高性能的更多方法。
这些同样的原理可以用于加速其他信号处理和雷达应用,以及计算机视觉和图像处理应用。
请参考视频下方发布的文档链接了解更多信息。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。