0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌AI利用机器学习和硬件加速器实现流体模拟数量级加速

深度学习实战 来源:机器之心 作者:魔王 2021-02-24 09:35 次阅读

谷歌 AI 最近一项研究表明,利用机器学习硬件加速器能够改进流体模拟,且不损害准确率或泛化性能。

流体数值模拟对于建模多种物理现象而言非常重要,如天气、气候、空气动力学和等离子体物理学。流体可以用纳维 - 斯托克斯方程来描述,但大规模求解这类方程仍属难题,受限于解决最小时空特征的计算成本。这就带来了准确率和易处理性之间的权衡。

fae3676a-74f7-11eb-8b86-12bb97331649.png

不可压缩流体通常由如上纳维 - 斯托克斯方程来建模。 最近,来自谷歌 AI 的研究人员利用端到端深度学习改进计算流体动力学(CFD)中的近似,以建模二维涡流。对于湍流的直接数值模拟(direct numerical simulation, DNS)和大涡模拟(large eddy simulation, LES),该方法获得的准确率与基线求解器相同,而后者在每个空间维度的分辨率是前者的 8-10 倍,因而该方法实现了 40-80 倍的计算加速。在较长模拟中,该方法仍能保持稳定,并泛化至训练所用流以外的力函数(forcing function)和雷诺数,这与黑箱机器学习方法正相反。此外,该方法还具备通用性,可用于任意非线性偏微分方程。

fafb7878-74f7-11eb-8b86-12bb97331649.png

论文地址:https://arxiv.org/pdf/2102.01010.pdf 该研究作者之一、谷歌研究员 Stephan Hoyer 表示:这项研究表明,机器学习 + TPU 可以使流体模拟加速多达两个数量级,且不损害准确率或泛化性能。

至于效果如何呢?论文共同一作 Dmitrii Kochkov 展示了该研究提出的神经网络与 Ground truth、基线的效果对比: 首先是雷诺数 Re=1000 时,在 Kolmogorov 流上的效果对比:

fb5d3fe0-74f7-11eb-8b86-12bb97331649.gif

其次是关于衰变湍流(decaying turbulence)的效果对比:

fce866e6-74f7-11eb-8b86-12bb97331649.gif

最后是雷诺数 Re=4000 时,在更复杂流上的效果对比:

fe6eba74-74f7-11eb-8b86-12bb97331649.gif

方法简介 用非线性偏微分方程描述的复杂物理系统模拟对于工程与物理科学而言非常重要。然而,大规模求解这类方程并非易事。 谷歌 AI 这项研究提出一种方法来计算非线性偏微分方程解的准确时间演化,并且其使用的网格分辨率比传统方法实现同等准确率要粗糙一个数量级。这种新型数值求解器不会对未解决的自由度取平均,而是使用离散方程,对未解决的网格给出逐点精确解。研究人员将受分辨率损失影响最大的传统求解器组件替换为其学得的组件,利用机器学习发现了一些算法。 如下图 1a 所示,对于涡流的二维直接数值模拟,该研究提出的算法可以在每个维度的分辨率粗糙 10 倍的情况下维持准确率不变,也就是说获得了 80 倍的计算时间改进。该模型学习如何对解的局部特征进行插值,从而能够准确泛化至不同的流条件,如不同受力条件,甚至不同的雷诺数(图 1b)。 研究者还将该方法应用于涡流的高分辨率 LES 模拟中,获得了类似的性能提升,在网格分辨率粗糙 8 倍的情况下在 Re = 100, 000 LES 模拟中维持逐点准确率不变,实现约 40 倍的计算加速。

0277f838-74f8-11eb-8b86-12bb97331649.png

图 1:该研究提出方法与结果概览。a)基线(direct simulation)与 ML 加速(learned interpolation)求解器的准确率与计算成本对比情况;b)训练与验证样本图示,展示出该模型强大的泛化能力;c)该研究提出「learned interpolation」模型的单时间步结构,用卷积神经网络控制标准数值求解器对流计算中学得的近似。 研究者使用数据驱动离散化将微分算子插值到粗糙网格,且保证高准确率(图 1c)。具体而言,将求解底层偏微分方程的标准数值方法内的求解器作为可微分编程进行训练,在 JAX 框架中写神经网络和数值方法(JAX 框架支持反向模式自动微分)。这允许对整个算法执行端到端的梯度优化,与密度泛函理论、分子动力学和流体方面的之前研究类似。

研究者推导出的这些方法是特定于方程的,需要使用高分辨率真值模拟训练粗糙分辨率的求解器。由于偏微分方程的动态是局部的,因此高分辨率模拟可以在小型域内实施。 该算法的工作流程如下:在每一个时间步中,神经网络在每个网格位置基于速度场生成隐向量,然后求解器的子组件使用该向量处理局部解结构。该神经网络为卷积网络,具备平移不变性,因而允许解结构在空间中是局部的。之后,使用标准数值方法的组件执行纳维 - 斯托克斯方程对应的归纳偏置,如图 1c 灰色框所示:对流通量(convective flux)模型改进离散对流算子的近似;散度算子(divergence operator)基于有限体积法执行局部动量守恒;压力投影(pressure projection)实现不可压缩性,显式时间步算子(explicit time step operator)使动态具备时间连续性,并允许额外时变力的插值。

「在更粗糙网格上的 DNS」将传统 DNS 和 LES 建模的界限模糊化,从而得到多种数据驱动方法。 该研究主要关注两种 ML 组件:learned interpolation 和 learned correction。此处不再赘述,详情参见原论文。 实验结果加速 DNS 一旦网格分辨率无法捕捉到解的最小细节,则 DNS 的准确率将快速下降。而该研究提出的 ML 方法极大地缓解了这一效应。下图 2 展示了雷诺数 Re = 1000 的情况下在 Kolmogorov 流上训练和评估模型的结果。

02f321ca-74f8-11eb-8b86-12bb97331649.png

而就计算效率而言,10 倍网格粗糙度的情况下,learned interpolation 求解器取得与 DNS 同等准确率的速度也要更快。研究者在单个谷歌云 TPU v4 内核上对该求解器进行了基准测试,谷歌云 TPU 是用于机器学习模型的硬件加速器,也适用于许多科学计算用例。在足够大的网格大小(256 × 256 甚至更大)上,该研究提出的神经网络能够很好地利用矩阵乘法单元,每秒浮点运算的吞吐量是基线 CFD 求解器的 12.5 倍。因此,尽管使用了 150 倍的算术运算,该 ML 求解器所用时间仍然仅有同等分辨率下传统求解器的 1/12。三个维度(两个空间维度和一个时间维度)中有效分辨率的 10 倍提升,带来了 10^3/12 ≈ 80 倍的加速。 此外,研究者还考虑了三种不同的泛化测试:大型域规模;非受迫衰减涡流;较大雷诺数的 Kolmogorov 流。 首先,研究者将同样的力泛化至较大的域规模。该 ML 模型得到了与在训练域中同样的性能,因为它们仅依赖流的局部特征(参见下图 5)。 然后,研究者将在 Kolmogorov 流上训练的模型应用于衰减涡流。下图 3 表明,在 Kolmogorov 流 Re = 1000 上学得的离散模型的准确率可以匹配以 7 倍分辨率运行的 DNS。

03422c52-74f8-11eb-8b86-12bb97331649.png

最后,该模型可以泛化至更高的雷诺数吗?也就是更复杂的流。下图 4a 表明,该模型的准确率可以匹配以 7 倍分辨率运行的 DNS。鉴于该测试是在复杂度显著增加的流上进行的,因此这种泛化效果很不错。图 4b 对速度进行了可视化,表明该模型可以处理更高的复杂度,图 4c 的能谱进一步验证了这一点。

036f9a3e-74f8-11eb-8b86-12bb97331649.png

与其他 ML 模型进行对比 研究者将 learned interpolation 与其他 ML 方法的性能进行了对比,包括 ResNet (RN) [50]、Encoder Processor-Decoder (EPD) [51, 52] 架构和之前介绍的 learned correction (LC) 模型。下图 5 展示了这些方法在所有考虑配置中的结果。总体而言,learned interpolation (LI) 性能最佳,learned correction (LC) 紧随其后。

038a0a68-74f8-11eb-8b86-12bb97331649.png

对 LES 的加速效果 研究者已经描述了该方法在 DNS 纳维 - 斯托克斯方程中的应用,但其实该方法是较为通用的,可用于任意非线性偏微分方程。为了证明这一点,研究者将该方法应用于 LES 加速。当 DNS 不可用时,LES 是执行大规模模拟的行业标准方法。 下图 6 表明,将 learned interpolation 应用于 LES 也能达到 8 倍的 upscaling,相当于实现大约 40 倍的加速。

03e3f5e6-74f8-11eb-8b86-12bb97331649.png

原文标题:谷歌AI利用「ML+TPU」实现流体模拟数量级加速

文章出处:【微信公众号:深度学习实战】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    29780

    浏览量

    268055
  • 机器学习
    +关注

    关注

    66

    文章

    8347

    浏览量

    132292

原文标题:谷歌AI利用「ML+TPU」实现流体模拟数量级加速

文章出处:【微信号:gh_a204797f977b,微信公众号:深度学习实战】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RISC-V跑AI算法能加速吗?

    现在好多ARM单片机都带机器学习加速,RISC-V有这方面的硬件加速吗?
    发表于 10-10 22:14

    适用于数据中心应用中的硬件加速器的直流/直流转换解决方案

    电子发烧友网站提供《适用于数据中心应用中的硬件加速器的直流/直流转换解决方案.pdf》资料免费下载
    发表于 08-26 09:38 0次下载
    适用于数据中心应用中的<b class='flag-5'>硬件加速器</b>的直流/直流转换<b class='flag-5'>器</b>解决方案

    西门子推出Catapult AI NN软件,赋能神经网络加速器设计

    西门子数字化工业软件近日发布了Catapult AI NN软件,这款软件在神经网络加速器设计领域迈出了重要一步。Catapult AI NN软件专注于在专用集成电路(ASIC)和芯片级系统(SoC)上
    的头像 发表于 06-19 11:27 786次阅读

    美国限制向中东AI加速器出口,审查国家安全

    AI加速器能协助数据中心处理大量人工智能聊天机器人和其他工具的开发信息。如今,它们已然成为构建AI基础设施的企业和政府的必需品。
    的头像 发表于 05-31 09:20 501次阅读

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速

    v3.0,它的上限是 MCUBoot v1.8.1。 当前版本基于 MCUBoot v1.9.1,似乎支持加密硬件加速。 有什么最简单的方法可以更新我的旧版引导加载,以便运行 MCUBoot v1.9.1? 顺便说一下,我的 PSoC 是 CY8C624ABZI-S2
    发表于 05-29 08:17

    Elektrobit利用其首创的硬件加速软件优化汽车通信网络的性能

    Elektrobit今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架构(基于被广泛采用
    的头像 发表于 04-17 09:51 314次阅读

    用DE1-SOC进行硬件加速的2D N-Body重力模拟器设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟器
    的头像 发表于 04-09 11:08 477次阅读
    用DE1-SOC进行<b class='flag-5'>硬件加速</b>的2D N-Body重力<b class='flag-5'>模拟器</b>设计

    家居智能化,推动AI加速器的发展

    电子发烧友网报道(文/黄山明)AI加速芯片,也称为人工智能加速器AI Accelerator),是一种专为执行机器
    的头像 发表于 02-23 00:18 4506次阅读

    【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码

    信号 text_ready <= 0; end // 文本处理与视频生成(占位符,调用硬件加速器实现相应算法) if (text_processing &&
    发表于 02-22 09:49

    音视频解码硬件加速实现更流畅的播放效果

    思想是利用专门的硬件资源,如GPU或专用的解码芯片,来分担原本由CPU承担的解码任务。这种方式不仅可以大幅提高解码速度,还能降低CPU的负载,从而实现更流畅的播放效果。 硬件加速的优势
    的头像 发表于 02-21 14:40 877次阅读
    音视频解码<b class='flag-5'>器</b><b class='flag-5'>硬件加速</b>:<b class='flag-5'>实现</b>更流畅的播放效果

    回旋加速器原理 回旋加速器的影响因素

    回旋加速器(Cyclotron)是一种用于加速带电粒子的可再生粒子加速器。它的工作原理基于带电粒子在恒定强磁场中的运动。本文将详细介绍回旋加速器的原理以及影响因素。 一、回旋
    的头像 发表于 01-30 10:02 3416次阅读

    粒子加速器加速原理是啥呢?

    粒子加速器加速原理是啥呢? 粒子加速器是一种重要的实验设备,用于研究粒子物理学、核物理学等领域。其主要原理是通过电场和磁场的作用,对带电粒子进行加速,在高速运动过程中使其获得较大的动
    的头像 发表于 12-18 13:52 1931次阅读

    21489的IIR加速器滤波参数设置如何对应加速器的滤波参数?

    目前在用21489内部的IIR加速器去做一个低通滤波,在例程的基础上修改参数。通过平板的fda 工具工具去设计参数,但是设计出来的参数不知道如何对应加速器的滤波参数,手册里也看得不是很明白。 设计的参数如下: 请问
    发表于 11-30 08:11

    在Sigma 300里面使用硬件加速器slew,slew mode为RC type时不同的time constant的值有什么用?

    请问下在Sigma 300里面使用硬件加速器slew,slew mode为RC type时,对应的time constant 与数据从当前值到目标值得时间有什么关系,或者说不同的time constant的值有什么用? 谢谢, 中 J Jj
    发表于 11-29 07:25

    PCIe在AI加速器中的作用

    从线上购物时的“猜你喜欢”、到高等级自动驾驶汽车上的实时交通信息接收,再到在线视频游戏,所有的这些都离不开人工智能(AI加速器AI加速器是一种高性能的并行计算设备,旨在高效处理神经
    的头像 发表于 11-18 10:36 1984次阅读
    PCIe在<b class='flag-5'>AI</b><b class='flag-5'>加速器</b>中的作用