RoseNNa:一个面向计算流体动力学应用的高性能可移植神经网络推理库
流体动力学
2024-01-19 v1 机器学习
摘要
基于神经网络的机器学习的兴起催生了包括TensorFlow和PyTorch在内的高级库以支持其功能。计算流体动力学(CFD)研究者受益于这一趋势并构建了有望缩短仿真时间的强大神经网络。例如,多层感知机(MLP)和基于长短期记忆(LSTM)的循环(RNN)架构可表示亚网格物理效应,如湍流。在CFD求解器中实现神经网络具有挑战性,因为机器学习与CFD所用编程语言大多不重叠。我们提出roseNNa库,它弥合了神经网络推理与CFD之间的鸿沟。RoseNNa是一个非侵入式、轻量(1000行)且高性能的神经网络推理工具,专注于用于增强PDE求解器(如CFD中所用,通常以C/C++或Fortran编写)的较小网络。RoseNNa通过自动将典型神经网络训练包中的已训练模型转换为带C与Fortran API的高性能Fortran库来实现此目的。这减少了访问已训练神经网络所需的工作,并在CFD研究者构建并依赖的PDE求解器中保持性能。结果表明,对于隐藏层少于100层且每层神经元少于100个的MLP和LSTM RNN,即便在去除API调用开销后,RoseNNa仍可靠地优于PyTorch(Python)与libtorch(C++)。对于所测试神经网络尺寸范围中较小和较大的一端,其加速分别约为这些成熟库的10倍和2倍。
引用
@article{arxiv.2307.16322,
title = {RoseNNa: A performant, portable library for neural network inference with application to computational fluid dynamics},
author = {Ajay Bati and Spencer H. Bryngelson},
journal= {arXiv preprint arXiv:2307.16322},
year = {2024}
}
备注
10 pages, 4 figures