使用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倍加速。您可以通过向内核编译器指定块大小等附加参数来进一步控制并行度。
现在更进一步,使用gucoder。我们可以分析和获得时间信息,让你探索处理内核所花费的相对时间和从GPU来回移动数据所花费的时间。
这可以进一步帮助您确定更新应用程序以提高性能的更多方法。
这些相同的原理可用于加速其他信号处理和雷达应用,以及计算机视觉和图像处理应用。
请参考视频下方的文档链接了解更多信息。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。