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