|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要∶为减少分子动力学模拟中短程力计算的时间消耗,设计并实现基于现场可编程门阵列的分子动力学模拟匹配单元;理论上,分析了分子动力学模拟中粒子间作用力的物理规律,提出两种满足短程力计算要求的粒子对的筛选方法∶偏序法和平面法;在技术上使用新兴的硬件描述语言SpinalHDL,在Xilinx VirtexUltraScale+HBMVCU128FPGA板卡上实现了匹配单元;最后,将硬件测试结果与理论结果进行对比,验证了匹配单元可以有效过滤掉对短程力计算没有贡献的粒子对;同时对使用偏序法、平面法和使用直接计算法两种不同情况下的资源消耗进行对比分析,表明使用偏序法、平面法可以节省系统70%的DSP资源。
k4 l% D4 m7 y! d* x) ^" r" m1 y& F' z. T" c5 j
分子动力学模拟利用计算机求解生物分子体系内原子和分子的运动方程来模拟这些粒子的运动轨迹,从而获得系统的温度、体积、压力等宏观和微观过程量。分子动力学模拟在计算物理、计算化学、材料科学、生命科学、生物医学等多个领域有着广泛的应用,已成为与实验同等重要的科学研究方法。, H1 Z6 a/ @$ q2 Q* `
分子动力学模拟过程中,需要花费大量时间用于计算范德华相互作用和静电相互作用,而模拟具有现实意义的生物大分子体系动力学过程往往需要几个月甚至几年时间。因此,针对生物大分子进行微秒甚至毫秒级别的模拟,对范德华相互作用和静电相互作用的优化加速将是首要任务,其中进行硬件加速是提高计算速度的重要方法。近年来,随着集成电路技术的快速发展,分子动力学模拟在专用集成电路(ASIC,application specific integrated circuit)以及现场可编程门阵列(FPGA,field programmable gate array)上都得到了很好的实现,并在并行化、算法进展和硬件专业化方面进行了不同程度的改进。这些改进大大提升了系统的性能。需要指出的是,相比于 ASIC,FPGA 设计灵活,功能强大,风险低。因此,FPGA 软硬件协同设计环境下的硬件加速技术具有重要的研究意义。
+ K& e0 x2 ^: y1 M: n在分子动力学模拟中,粒子间需要计算的力包括键合力和非键合力,其中非键合力包括范德华力和静电力。为了降低非键合力的计算复杂度,将非键合力分解为短程力与长程力,并对两者分别设计专用的低复杂度计算方法。具体来说,对固定的一个粒子,可以定义一个截止半径。这个粒子与范围内的其它粒子之间的非键合力就称为短程力。如何有效地从大量粒子中匹配出满足短程力计算要求的粒子对,是本文要解决的问题。
$ R6 z D2 {" [' U$ N% Z: q) g为了提升分子动力学模拟中粒子间非键合力的计算效率,本文提出了匹配单元的设计方案,用以高效地筛选出满足短程力计算条件的粒子对。
- G0 |9 R8 Q6 d9 t, }( k, A; A! O! J: `( k
1、系统结构及原理
2 V6 _% p; y& n* E$ B0 K图1是本文研究的短程力计算系统的总体框图。首先,上位机通过 PCle (peripheral component interconnect ex-press)总线将二进制的粒子数据传递到 FPGA 加速卡上的BRAM(Block RAM)。当数据预处理单元接收到开始读取数据的指令时,就从 BRAM中读取数据。读取完成后,数据预处理单元将读取的数据对应到各个粒子,再将粒子数据送入匹配单元进行匹配,匹配成功的粒子对进入到短程力计算单元。最后,计算得到的力将在力累加器中进行累加,并通过力回写单元将累加结果写回 BRAM,供上位机取回。
9 Q- x5 Q7 C. u7 v
2 I) g# W% P/ d! z* a. V
综上所述,短程力计算单元是短程力计算系统的核心部分。为了保证短程力计算单元的利用率,就需要从预处理后的粒子数据中准确快速地匹配出符合短程力计算条件的粒子对。针对该问题,本文设计了匹配单元。' @1 J0 o* ]* x: y) J
本文设计的匹配单元是根据截止半径来筛选粒子对的。在半径为的圆球内,以球心处粒子为参考粒子,匹配单元将滤除圆球外的粒子。与此同时,将圆内的粒子依次和参考粒子配对送入短程力计算单元。如果匹配单元每次只对一个参考粒子进行匹配,匹配效率不高。若多个参考粒子和周围粒子同时进行匹配,就能大幅度提升匹配效率。此外,分子动力学模拟是通过离散时间步长来模拟化学系统中单个粒子的运动,而粒子在化学系统中的空间分布具有不确定性,因此,参考粒子的选取方式极大程度上影响着匹配单元的工作效率。
1 `# k! [) P) k为保证匹配单元的工作效率,避免参考粒子的重复选取,需要对分子系统进行区域划分。因为化学系统是在一个(非物理)周期性边界条件盒子中的,所以,实际模拟的系统相当于将一个无限的空间在三维坐标轴上平铺为大小相同的盒子。粒子就分布在这些盒子内。盒子的大小和粒子大小有关,每个盒子都有对应的盒子编号。除此之外,每个盒子内的粒子还有相应的盒内编号,并且每个粒子都有对应的位置坐标。为了便于遍历计算粒子对之间的相互作用,将其中的某个粒子作为参考粒子,称为静态粒子。静态粒子周围的粒子则称为动态粒子。由于化学系统内的粒子是随机分布的,故盒内粒子数具有不确定性。
+ ~1 z! Y2 q8 X) e5 ~在设计中,本文每个盒子最多可容纳64 个粒子。为了补足盒内粒子数,使动态粒子必有静态粒子与其进行相互. 作用,本文又将静态粒子分为有效静态粒子和无效静态粒子(即空粒子),空粒子是用来补足盒内粒子数。与此同时,为了方便判断静态粒子是不是空粒子,本文引入了空粒子标志位。
' q9 o2 d+ g7 C! l
" H. H. q7 x) Q( O4 T* N2、硬件设计( r7 l& ~9 q( q2 u0 z2 [1 M5 C3 e
匹配单元的设计如图2所示。图中的匹配单元有8个距离计算器,可实现1个动态粒子分别和8个静态粒子进行配对。首先将盒子中的静态粒子和动态粒子送入 FIFO(first input first output)进行暂存,当匹配单元接收到数据预处理完成的信号后,FIFO中静态粒子和动态粒子进入流寄存器中,以粒子对形式暂存,共计8组粒子对。一旦粒子对发送到距离计算器,就将粒子之间的距离与截止半径进行比较,最后输出粒子对匹配结果。距离计算器的匹配结果存放在向量寄存器(向量寄存器本质上是多个寄存器进行捆绑)中。由于可能存在空粒子,所以,需要排除空粒子与动态粒子生成的粒子对。于是,通过将距离计算器的匹配结果和流寄存器中的空粒子标志位进行与运算,经过与运算后的8组粒子对流向仲裁器,最后输出满足短程力计算条件的粒子对。: l6 L; O$ O& F6 v, C6 O9 k
值得注意的是,数据预处理单元的工作速度也限制匹配单元的工作效率。由于数据预处理的速度是未知的,因此需要一个 FIFO,通过缓存数据来控制进入匹配单元的粒子。除此之外,粒子对在进行计算的时候需要的时间比较久,为了节约时间,将短程力计算单元设计成流水的,也就是说第一组粒子对进入计算单元计算后,第二组能马上跟上。在本文系统中,短程力计算单元只有一个输入口。由于匹配单元匹配成功的粒子对个数是大于或等于1的,所以,需要一个仲裁器对匹配单元输出粒子对进行仲裁,使匹配成功的粒子对流水输出到短程力计算单元。匹配单元的设计,重点在于粒子对的生成、过滤和仲裁。 i) R. }! Y z% q4 M/ E/ f
|
|