用户故事

NASA Langley研究中心使用GPU计算加速声学数据分析

挑战

从飞机组件的风洞试验中加速分析声音录音

解决方案

利用MATLAB和并行计算工具箱重新实现一个处理声学数据的遗留程序,并通过在GPU上运行计算密集型操作来减少处理时间

结果

  • 计算更快地完成了40倍
  • 算法在30分钟内启用GPU
  • 加速测试数据的处理

“我们的传统代码分析一个风洞测试需要40分钟;通过使用MATLAB和GPU,计算时间现在不到一分钟。我们花了30分钟让MATLAB算法在gpu上工作,不需要低级的CUDA编程。”

克里斯托弗·鲍尔,美国宇航局
风洞测试设置具有混合翼体模型(倒置),97麦克风相控阵(上)和麦克风塔(左)。

随着航空交通和房屋和机场附近的业务发展增加,降低了起飞期间商用飞机生产的噪音,着陆仍然是一个高度优先事项。为了探索和评估降噪技术,美国宇航局兰利研究中心的研究人员正在分析新型飞机设计,如混合翼体(HWB)。

工程师使用matlab®并并行计算工具箱™,可加速NVIDIA GPU上的声学数据处理。

“MATLAB替换了一种用于处理声学数据的较旧的算法,并行计算工具箱通过在GPU上执行它来加速新算法,几乎没有改变代码,”NASA Langley Research Center,Aeroa Langley Research Center,Aeroacoustics Cranch的研究航空航天工程师表示.“我们现在在风洞测试期间分析数据,这大大减少了停机时间。”

挑战

在风洞测试中,NASA的工程师使用多达126个麦克风来记录飞机部件产生的声音。30秒后,工程师重新定位麦克风,开始另一个30秒的录音。一次运行可能包括多达14个录音。多次运行可以在不同的风洞速度或飞机的不同方向进行。一个测试可能包含数百次运行。

工程师们使用的是用Fortran编写的传统程序,处理每次记录产生的大约2g数据需要20-40分钟。该团队希望减少处理时间,以便能够识别硬件问题,并为即将到来的运行配置实时做出决策。此外,他们希望在设施中处理数据,减少数据传输开销并简化数据安全过程。

他们知道单台机器上的多核处理无法提供所需的处理速度。该团队需要GPU处理来满足他们的要求。

解决方案

NASA工程师在MATLAB中重新实现了旧代码,并使用GPU计算和并行计算工具箱来减少处理时间。

在MATLAB中,工程师们开发了一种算法来处理来自数据采集系统的16位整数数据。MATLAB算法将数据转换为压力信号,信号分解成块,块变换到频域,纠正对仪表和过滤效果,平均在整个街区建设提供估计的协方差矩阵的每一对麦克风。

该算法结合了Signal Processing Toolbox™中的Hamming、Kaiser和平顶窗口函数,以及快速傅里叶变换(fft)和矩阵乘法运算。它最初是为标准CPU操作而开发的。

为了验证Matlab实现,该团队将其产生的结果与由遗留码产生的结果进行了比较,确保在可接受的公差范围内匹配。然后,它们使用并行计算工具箱更新了MATLAB代码,将声学数据传输到K20 GPU并执行计算密集的操作。

为简化批量处理录制,工程师在MATLAB中创建了一个图形界面,用于指定算法选项并选择要处理的录制。它们开发了一种用于生成结果的曲线的第二界面,包括窄带光谱和三分之一八度乐队谱图。这些绘图有助于评估噪声源行为和数据质量,并用于开发高级噪声抑制模型。

该团队计划在Matlab中开发额外的高级处理算法。这些算法将使它们能够更准确地确定风隧道测试期间噪声源。

结果

  • 计算更快地完成了40倍.Bahr说:“我们的传统代码分析一个风洞测试需要40分钟。最初的MATLAB实现将时间缩短到20分钟。GPU计算与并行计算工具箱的加入将时间缩短至一分钟以下,其中大部分时间用于数据传输。”

  • 算法在30分钟内启用GPU.“我们执行的许多操作,包括fft和矩阵乘法,都是gpu支持的MATLAB函数,”Bahr说。“一旦我们开发了用于CPU执行的初始MATLAB代码,就需要30分钟才能让我们的算法在gpu上工作——不需要低级的CUDA编程。”

  • 加速测试数据的处理.“过去,我们的数据处理算法在风隧道测试期间以这种方式处理声音数据太慢,”BAHR召回。“通过在GPU上运行的MATLAB代码,我们会在每次录制后分析数据,识别测试设置的任何问题,并立即纠正它们。”

下载188bet金宝搏产品使用

展示你的成功

加入客户参考计划