NASA Langley Research Center通过GPU计算加速了声学数据分析

挑战

加快对飞机部件风洞试验录音的分析

解决方案

使用MATLAB和并行计算工具箱重新实现传统程序以处理声学数据,并通过在GPU上运行计算密集型操作来剪切处理时间

结果

  • 计算速度快了40倍
  • 算法gpu在30分钟内启用
  • 处理测试数据加速

“我们的遗留代码最多需要40分钟才能分析单一风洞测试;通过使用MATLAB和GPU,计算时间在一分钟内。需要30分钟时间才能获得对GPU的MATLAB算法 - 不需要低级CUDA编程。“

克里斯托弗·巴尔,NASA
风洞测试设置具有混合翼体模型(倒置),带有97麦克风相控阵(顶部)和麦克风塔(左)。

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

工程师使用MATLAB®和并行计算工具箱™来加速NVIDIA gpu上的声学数据处理。

“MATLAB取代了处理声学数据的一个更老的算法,并行计算工具箱通过在GPU上执行它来加速新算法,对代码几乎没有改变,”Christopher Bahr说,NASA Langley研究中心,空气声学分部的航空航天工程师。“我们现在在风洞测试期间分析数据,这大大减少了停机时间。”

挑战

美国宇航局工程师使用多达126个麦克风来记录在风隧道测试期间由飞机组件产生的声音。30秒后,工程师重新定位麦克风并开始另外30秒录制。单次运行最多可包含14个录制。可以在不同的风隧道速度或飞机的不同方向上进行多次运行。单个测试可以包括数百个运行。

工程师正在使用在Fortran中编写的遗留程序,这需要20-40分钟来处理每次录制期间产生的大约2千兆字节的数据。该团队希望减少处理时间,以便他们可以识别硬件问题,并为即将到来的运行配置进行飞行决策。此外,他们希望处理设施中的数据,减少数据传输开销并简化数据安全过程。

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

解决方案

美国宇航局工程师在MATLAB中重新实现了旧代码,并使用了使用并行计算工具箱计算的GPU计算,以减少处理时间。

在MATLAB中工作,工程师开发了一种从数据采集系统处理16位整数数据的算法。Matlab算法将数据转换为压力信号,将信号中断到块中,将块转换为频域,纠正仪器和过滤效果,以及跨块的平均值构建一个协方差矩阵,提供了通用的功率估计。每对麦克风。

该算法采用汉明,凯勒和平顶窗口函数从信号处理工具箱™,以及快速傅里叶变换(FFT)和矩阵乘法操作。首先开发用于标准CPU操作。

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

为了简化录音的批处理,工程师在MATLAB中创建了一个图形界面,用于指定算法选项和选择要处理的录音。他们开发了第二个界面来生成结果图,包括窄带谱图和1 / 3倍频带谱图。这些图有助于评估噪声源行为和数据质量,并用于开发先进的噪声抑制模型。

该团队计划在MATLAB中开发额外的高级处理算法。这些算法将使他们能够在风洞测试中更准确地查明噪声源。

结果

  • 计算速度快了40倍.“我们的遗留代码最多需要40分钟才能分析一个风洞测试,”Bahr说。“初始MATLAB实现将该时间切割到20分钟。使用并行计算工具箱的GPU计算将其切割到一分钟内,大部分时间都花在数据传输上。“

  • 算法gpu在30分钟内启用.“我们执行的许多操作,包括FFT和矩阵乘法,是支持GPU的MATLAB函数,”BAHR说。“一旦我们开发了CPU执行的初始MATLAB代码,就花了30分钟才能获得我们在GPU的算法 - 没有需要低级CUDA编程。”

  • 处理测试数据加速.Bahr回忆道:“过去,我们的数据处理算法在风洞测试中处理可靠数据时太慢了。”“在GPU上运行MATLAB代码,我们在每次记录后分析数据,发现测试设置中的任何问题,并立即纠正它们。”

下载188bet金宝搏使用的产品

展示你的成功

加入客户参考计划