一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于神经网络的分子动力学计算芯片设计方法及系统

2022-06-11 14:37:18 来源:中国专利 TAG:


1.本发明涉及人工智能和集成电路设计领域,提供一种基于神经网络的分子动力学计算芯片设计方法及系统,用以加速分子动力学计算。


背景技术:

2.计算材料学是近年来飞速发展的一门新兴交叉学科,它涉及凝聚态物理学、材料物理学、理论化学、材料力学和工程力学、计算机算法等多个相关学科。其中分子动力学计算就是不可或缺的一部分。分子动力学是一套分子模拟方法,该方法主要是依靠牛顿力学来模拟分子体系的运动。分子动力学模拟将体系中每一个原子视为遵守牛顿第二定律的基本粒子,根据分子的势能函数得到作用在每一个原子上的力,在给定初始化条件和时间步长的前提下,利用牛顿第二定律求解运动方程便可得到原子在势能面上运动的轨迹。以分子动力学模拟计算的结果为基础可以进一步分析体系热力学性质及其他宏观性质。分子动力学模拟已成为物理学、化学、材料科学及制药方面研究必不可少的工具,且常应用于模拟原子的扩散、相变、薄膜生长和表面缺陷等过程。
3.经典的计算分子动力学的方法有:基于经验力场和基于第一性原理的方法。前者的模拟规模可达百亿原子,但精度受限,难以应对复杂体系模拟,开发周期长;后者基于密度泛函理论(density functional theory,dft),具有量子力学的精度,但所利用的函数关系复杂,计算量大,计算速度缓慢。近些年来随着人工智能技术的飞速发展,一种基于深度学习模型的分子动力学模拟方法被研究,此方法同时具有经验力场效率和dft精度。
4.在分子动力学模拟计算的研究领域中,一般使用中央处理器(central processing unit,cpu)和图形处理器(graphics processing unit,gpu)进行分子动力学计算。目前cpu、gpu等主流芯片采用计算与存储相分离的“存算分离”芯片架构(“冯诺依曼”架构),存在“存储墙”瓶颈,大量的运算资源和时间被消耗在了cpu、gpu与存储器之间频繁的数据交互中,严重制约了人工智能算力的提升。


技术实现要素:

5.为了克服现有技术的不足,本发明提供了一种基于神经网络的分子动力学计算芯片设计方法及系统来加速分子动力学模拟计算。目的是将能精确拟合原子间受力的深度神经网络模型部署到非冯诺依曼架构的硬件中,包括但不限于fpga(fieldprogrammable gatearray)、asic(application specific integrated circuit)等,从而加速牛顿运动方程的求解,提升微观原子尺度运动的计算速度。该方法包括以下几个步骤:
6.步骤s1,生成训练深度神经网络所需的体系特征数据集。用dft软件进行分子动力学计算,采样得到原子坐标r和原子受力f。对原子坐标进行特征提取,得到特征d。
7.步骤s2,训练一个神经网络模型来精确拟合原子间受力。数据集由s1步骤得到的特征d和受力f组成,记为x,神经网络的输入是特征d。将数据集x划分为训练集x1和测试集x2,通过训练得到一个网络模型m来精确拟合s1步骤中原子的受力,如下式所示:
8.y=m(d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
9.其中,网络的输出y是拟合的原子受力;模型拟合受力的均方根误差rmse由下式定义:
10.rmse=||y-f||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
11.网络模型m是一个多层感知机(multi-layer perceptron,mlp),其中每一层网络的计算可表示为:
12.yi=f(y
i-1
·
wi bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
13.其中,yi表示第i层的输出;y
i-1
表示第i层的输入(也指第i-1层的输出);wi是第i层的权重;bi是第i层的偏置;f代表非线性激活函数。在训练过程中,将wi和bi量化成wqi和bqi,wqi和bqi矩阵中元素的小数位被量化为n位,量化公式如下:
14.wqi=round(wi×2n
)/2nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
15.bqi=round(bi×2n
)/2nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
16.其中,round代表四舍五入取整,量化后的每一层网络推理过程可表示为:
17.yi=f(y
i-1
·
wqi bqi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
18.步骤s3,将训练完成的网络模型m部署到基于非冯诺依曼架构的芯片(包括,但不限于,fpga、asic等)中。芯片前端设计采用verilog语言,所有的网络模型参数(权值w和偏置b)存放在分布式的寄存器中,预测过程中网络计算的每一步中间结果都存在寄存器中,整个计算过程采用流水线的方式。
19.步骤s4,进行芯片的后端设计,并进行功能验证、时序验证等。
20.步骤s5,搭建一个分子动力学计算系统对流片结果进行功能测试。该系统中,负责网络预测过程的是基于非冯诺依曼架构的硬件(包括,但不限于,fpga、asic等),记为h1;负责步骤s1的求特征计算和分子动力学积分计算的是基于冯诺依曼架构的硬件(包括,但不限于,cpu、gpu等)或非冯诺依曼架构的硬件(包括,但不限于,fpga、asic等),记为h2。
21.由h2根据当前时刻的原子位置信息求取特征如步骤s1所述;将特征输入至h1,通过网络模型预测原子受力,如式(1)所示;将受力输入至h2,根据牛顿运动定律积分计算得到下一步位置信息。积分算法基于牛顿第二运动定律,采用(但不限于)有限差分法,将连续的积分拆分成很多小步进行,每一个积分时间步长为dt,根据网络拟合的原子当前时刻的受力y(t)求解更新原子下一时刻的位置坐标r(t dt),如下式:
[0022][0023]
r(t dt)=r(t) v(t)
×
dt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0024]
其中,v(t-dt)为上一时刻的原子速度;v(t)为当前时刻的原子速度;m为中心原子的质量;r(t)为当前时刻的原子坐标。
[0025]
步骤s6,求解分子动力学轨迹,计算体系宏观性质。重复步骤s5,利用分子动力学计算系统进行多步分子动力学计算,每计算一步保存原子的位置,得到一段时间内的原子运动轨迹。根据得到的轨迹计算体系的宏观性质。
[0026]
本发明与现有技术相比,其显著优点在于,该发明通过在训练过程中对神经网络进行量化,可以保证网络模型量化后的拟合精度,并将模型部署到非冯诺依曼架构的芯片中,避免了计算单元与存储单元之间频繁的数据交互,加快了分子动力学计算的速度。
附图说明
[0027]
图1是本发明的操作流程图;
[0028]
图2是本发明实施例中网络模型预测氢原子受力的精度图;
[0029]
图3是本发明实施例中网络模型每一层的计算过程及存储方式示意图;
[0030]
图4是本发明实施例中水分子mlp芯片版图;
[0031]
图5是本发明实施例中asic实物图;
[0032]
图6是本发明实施例中使用asic计算氢原子受力的精度图;
[0033]
图7是本发明实施例中fpga和asic构成的分子动力学计算系统;
[0034]
图8是本发明实施例中利用分子动力学计算系统进行1000步分子动力学计算得到的原子轨迹。
具体实施方式
[0035]
以下将结合说明书附图和具体实施例对本发明作进一步详细说明。
[0036]
本发明涉及一种基于神经网络的分子动力学计算芯片设计方法及系统,如图1所示,首先生成训练深度神经网络所需的体系特征数据集;接着训练一个深度神经网络模型来精确拟合原子间受力;将训练好的模型应用到非冯诺依曼架构的芯片中,既能保证预测原子受力的精度又加速了分子动力学计算;然后搭建一个分子动力学计算系统;进行分子动力学计算并保存每一步的原子轨迹,利用原子轨迹信息计算体系的其他宏观性质,具有计算精度高、计算速度快等特点。本发明以水分子系统为实施例详细说明实施步骤。
[0037]
步骤s1,生成训练深度神经网络所需的体系特征数据集。用dft软件对水分子进行10000步分子动力学计算,舍弃计算刚开始时的400步数据,采样得到9600组数据作为数据集,包含氢原子坐标r和氢原子受力f。对氢原子坐标进行特征提取,得到特征d。
[0038]
步骤s2,训练一个神经网络模型来精确拟合原子间受力。神经网络的输入是步骤s1中的特征d。训练集取整个数据集的80%,记为x1,剩下的20%数据作为测试集,记为x2,通过训练得到一个网络模型m来精确拟合s1步骤中氢原子的受力,如下式所示:
[0039]
y=m(d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0040]
其中,网络的输出y是神经网络拟合的氢原子受力。模型的拟合误差rmse由下式所定义:
[0041]
rmse=||y-f||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0042]
网络模型m是一个多层感知机mlp,其中每一层网络的计算可表示为:
[0043]
yi=f(y
i-1
·
wi bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0044]
其中,yi表示第i层的输出;y
i-1
表示第i层的输入(也指第i-1层的输出);wi是第i层的权重;bi是第i层的偏置;f代表非线性激活函数。在训练过程中,将wi和bi量化成wqi和bqi,wqi和bqi矩阵中元素的小数位被量化为n位,量化公式如下:
[0045]
wqi=round(wi×2n
)/2nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0046]
bqi=round(bi×2n
)2nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0047]
其中,round代表四舍五入取整,量化后的每一层网络推理过程可表示为:
[0048]
yi=f(y
i-1
·
wqi bqi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0049]
在本实施例中,我们采用了14位定点数形式,其中整数位占3位,小数位占10位,符
号位占1位,即式(4)、式(5)中n取10。对于水分子系统而言,两个氢原子的受力通过训练好的网络模型进行计算,并根据牛顿力学第三定律由两个氢原子受力计算出氧原子受力。训练完成的水分子网络对测试集x2进行测试,测试结果如图2所示,横坐标为用dft方法采样的氢原子受力值,纵坐标为网络模型计算的受力值,两者之间的均方根误差rmse为
[0050]
步骤s3,将训练好的网络模型部署到数字asic芯片中。芯片前端设计采用verilog语言,硬件架构采用非冯诺依曼架构。如图3所示,其中reg表示寄存器,a表示激活函数电路,所有的网络模型参数(权值w和偏置b)存放在分布式的寄存器中,预测过程中网络计算的每一步中间结果都存在寄存器中,避免了与存储器之间频繁的数据交互,整个计算过程采用流水线的方式。
[0051]
步骤s4,本实施例采用silterra 180nm工艺进行芯片的后端设计,并进行功能验证、时序验证和物理版图验证,得到水分子mlp芯片版图如图4所示。流片后得到的芯片实物图如图5所示。
[0052]
步骤s5,搭建一个分子动力学计算系统对流片结果进行功能测试。本实施例的分子动力学计算系统是基于fpga和asic的异构并行系统。先对asic芯片计算受力的精度进行测试,将测试集的数据通过fpga输入至asic,将asic计算得到的受力结果同测试集受力进行比对。测试所用fpga的型号为xilinx xc7z100-2ffg900。水分子mlp芯片在25mhz的工作频率下测试成功,计算受力的精度同基于dft方法的数据集对比如图6所示,两者之间的均方根误差rmse为芯片能精确计算水分子中氢原子的受力。
[0053]
对水分子系统进行完整的分子动力学计算,由fpga负责步骤s1求特征部分和分子动力学积分过程,由asic负责神经网络计算受力的过程,芯片的时钟信号由fpga提供。搭建的测试系统如图7所示,首先,fpga计算水分子体系的特征数据;然后,特征数据输入至两块asic芯片,两块芯片并行工作,分别计算水分子的两个氢原子受力;最后,受力输出信号接回fpga进行积分过程的计算,并由fpga保存每一步更新的原子位置信息。积分算法基于牛顿第二运动定律,采用有限差分法,将连续的积分拆分成很多小步进行,每一个积分时间步长为dt,根据网络拟合的原子当前时刻的受力y(t)求解更新原子下一时刻的位置坐标r(t dt),如下式:
[0054][0055]
r(t dt)=r(t) v(t)
×
dt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0056]
其中,v(t-dt)为上一时刻的原子速度;v(t)为当前时刻的原子速度;m为中心原子的质量;r(t)为当前时刻的原子坐标。
[0057]
步骤s6,求解分子动力学轨迹,计算体系宏观性质。重复步骤s5,在fpga和asic异构并行计算分子动力学的系统上进行多步分子动力学计算,每计算一步保存更新的轨迹信息。由步骤s5保存的位置信息可以计算得到水分子中氢原子的运动轨迹,如图8所示,由运动轨迹求解水分子的宏观性质。
[0058]
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制。参照该实施例的说明,本领域的普通技术人员应该可以理解并对本发明的技术方案进行相关的修改或替换,而不脱离本发明的实质和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献