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