CN119536816B - DeePMD-kit模型在神威超级计算机的运行方法 - Google Patents
DeePMD-kit模型在神威超级计算机的运行方法Info
- Publication number
- CN119536816B CN119536816B CN202411593969.4A CN202411593969A CN119536816B CN 119536816 B CN119536816 B CN 119536816B CN 202411593969 A CN202411593969 A CN 202411593969A CN 119536816 B CN119536816 B CN 119536816B
- Authority
- CN
- China
- Prior art keywords
- cpe
- operators
- shenwei
- dma
- deepmd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及计算机技术领域,特别涉及DeePMD‑kit模型在神威超级计算机的运行方法,神威超级计算机的六个核心组CG分别负责MPI进程六个子区域的推理,每个核心组CG均包括MPE和64个CPE,MPE含有256位的SIMD单元;每个CPE含有512位的SIMD单元;每个CPE均含有本地数据存储器,每个本地数据存储器LDM均通过DMA策略和主存储实现连续数据传输;同一核心组CG中的CPE之间通过远程内存访问RMA实现数据传输;每个核心组CG的推理方法为:通过SACA加速耗时算子,MPE将耗时算子的计算密集部分分配给64个CPE;计算完成后,MPE同步64个CPE的计算结果,并将结果存储至主存储器中;SACA运行时SIMD并行:通过CPE发出512位向量化指令,通过上述技术方案,本发明具有使DeePMD‑kit模型可在神威计算机应用的优点。
Description
技术领域
本发明涉及一种DeePMD-kit模型,尤其涉及DeePMD-kit模型在神威超级计算机的运行方法。
背景技术
DeePMD-kit模型是一个基于深度势(DP)方法的开源NNMD包。它支持训练DP模型,并执行DP模型推断以推导势能面(PES)。目前,DeePMD-kit模型被实现为LAMMPS的一个力场插件,用于进行大规模分子动力学模拟,DeePMD-kit模型的计算过程如图1所示,LAMMPS基于这些统计数据完成一步MD模拟,并更新原子位置。
具体而言,在一步模拟中,DP模型以L(i)作为输入,然后预测势能面(PES)、原子力和应力张量。(a)ProdEnvMat操作符将邻居列表L(i)映射到环境矩阵(b)描述符网络将s(rij)和映射到它在模型训练过程中保留了物理对称性;(c)Tabulate操作符使用Weierstrass逼近对描述符网络进行压缩;(d)拟合网络预测原子能量Ei;(e)TabulateGrad操作符计算描述符网络的梯度;(f)ProdForce操作符根据rj的梯度(即)计算原子力Fi;(g)ProdVirial操作符计算维里Ξ;(h)执行从头分子动力学,并分析模拟区域的物理或化学性质。
DeePMD-kit模型包含自定义的TensorFlow操作,包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce和ProdVirial。DeePMD-kit的计算过程如图1所示,主要由两个部分组成:描述符D和拟合网络N。D负责从输入环境矩阵(记作)中获取对称保持特征。表示为:
其中,表示为嵌入矩阵,Nm表示邻居表最大邻居数。矩阵为的子矩阵,代表提取前M<行的向量。环境矩阵表示为:
其中,rij=rj-ri,是原子i和邻居原子j的相对距离,s(rij)=w(rij)/|rij|,其中w(rij)表示为一个门函数当|rij|<rc时,平滑的从1衰减到0。矩阵由嵌入网络拟合s(rij)生成,表示为:
每一层的都是一个全联接网络。每一层增加输入数据的维度,直到获得最终的网络维度M。
拟合网络N学习从D获取的局部环境特征与原子能量贡献Ei之间的高维函数关系。因此,整个系统的PES表示为原子能量贡献的总和:
E=∑iEi;
整个网络同样由全联接网络组成并使用Tanh作为网络的激活函数。通过将D和N结合,DeePMD-kit模型可以通过拟合从VASP、QuantumEspresso和PWmat等科学计算软件生成的第一性原理数据来实现第一性原理精度。原子i的力操作在反向传播过程中获得(如图1(f)所示)表示为:
系统的维里操作如图1(g)所示,通过模型中的计算维里算子实现表示为:
Ξ=∑iRiFi;
嵌入网络的浮点运算占据了整体FLOPs的95%以上,设计了一种模型压缩算法减少了整体的计算量,改模块表示为:
其中,x=s(r{ij})。DP模型经过训练并压缩,从而在MD模拟(推断)中减少了82%的计算成本。压缩模型通过Tabulate和TabulateGrad操作构建,如图1(c)(e)所示。值得注意的是,压缩模型保持了较高的精度,例如,具有100个水分子的水系统的能量平均均方根误差(RMSE)为2.0*10-3}eV/atom,原子力的RMSE为
但现有的DeePMD-kit模型所应用的计算机,其使用的处理器通常是CPU处理器或者GPU处理器。
新一代神威超级计算机配备了新一代异构多核处理器(即SW26010-pro)。每个计算节点通过胖树拓扑结构互连,每个机架中的256个节点组成一个超级节点。每个节点配备一个SW26010-pro处理器,该处理器包含6个核心组(CGs),在双精度计算下的理论峰值性能约为14TFLOPS。每个核心组包含一个管理处理单元(MPE)和一个8$\times$8计算处理单元(CPE)网格,连接到16GBDDR4主存,带宽为51.2GB/s。每个CPE拥有256KB手动控制的本地数据存储器(LDM)。MPE和CPE分别具有256位和512位的SIMD单元。
SW26010-pro处理器支持直接内存访问(DMA),能够在LDM和主存之间传输连续数据,理论带宽为307GB/s。此外,同一核心组内的CPE之间通过远程内存访问(RMA)进行数据传输,带宽约为400GB/s。新一代神威的编程接口是SACA,它提供了基本的编译环境、基础库和运行时支持。
尽管此前的研究已经成功地优化了DeePMD-kit模型在ARM和NVIDIAGPU平台上的性能,但将DeePMD-kit模型迁移到新的神威超级计算机上仍面临诸多挑战。
SW26010-pro处理器的架构与主流CPU和GPU有显著差异。不同于典型的多核CPU在同质核心上同时执行指令,或GPU使用线程块组织并行线程,SW26010-pro采用了MPE-CPE协同机制,其中一个MPE控制64个CPE。因此,程序员必须谨慎地确定任务的划分和分配。
因此,研究出一种应用于神威超级计算机的DeePMD-kit模型亟待解决。
SW26010-pro并不像CPU那样通过多级缓存优化主存访问,而是为每个CPE配备了可编程的快速LDM,类似于手动控制的L1缓存,这使得缓存策略更加灵活,内存访问也更加可配置。此外,不同于GPU使用共享内存进行线程数据共享,或CPU依赖缓存进行线程间通信,SW26010-pro不为CPE提供物理上的共享内存。相反,不同CPE之间的数据交换是通过RMA机制管理的,这种独特性造就了独特的编程框架。我们应当充分利用SW26010-pro架构的这些特点来获得卓越的性能。
目前DeePMD-kit算子资源利用率相当低。与使用OpenMP(GPU)和CUDA(GPU)的实现不同,MPE和CPE代码的设计需要仔细考量。MPE通过\textit{athread_spawn()}指令调用64个CPE进行计算,每个CPE同时执行计算和内存访问。然而,先前的工作并未针对SW26010-pro架构优化DeePMD-kit算子,导致所有算子仅在MPE上执行。此外,一些CPE的新特性尚未得到有效利用,包括通过DMA的内存访问、通过RMA的片上数据共享以及512位向量化。如图3中所示的DeePMD-kit耗时算子的性能分析表明,所实现的每个算子的峰值性能和内存带宽显著低于理论峰值性能(14TFLOPS)和峰值内存带宽(300GB/s)。
DeePMD-kit模型依赖于多个计算密集型的TensorFlow定制算子和官方算子;定制算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce和ProdVirial;官方算子包括MatMul、Tanh、TanhGrad、Slice和Pad。
因此,针对神威超级计算机的架构优化每个DeePMD-kit算子,以确保高资源利用率和计算效率是至关重要的。
发明内容
为了解决相关技术中的问题,本申请提供了应用于神威超级计算机SW26010-pro处理器的DeePMD-kit模型,解决了现有DeePMD-kit模型无法在新一代神威超级计算机中SW26010-pro处理器进行应用的问题。
技术方案如下:
DeePMD-kit模型在神威超级计算机的运行方法,其特点是,所述神威超级计算机的六个核心组CG分别负责MPI进程六个子区域的推理;所述神威超级计算机的编程接口为SACA;
每个所述核心组CG均包括与主存储器DDR相连的管理处理单元MPE和64个计算处理单元CPE,管理处理单元MPE含有256位的SIMD单元;每个计算处理单元CPE含有512位的SIMD单元;每个计算处理单元CPE均含有本地数据存储器LDM,每个本地数据存储器LDM均取消缓存配置,每个本地数据存储器LDM均通过DMA策略和主存储器DDR实现连续数据传输;同一核心组CG中的计算处理单元CPE之间通过远程内存访问RMA实现数据传输;
其中,每个核心组CG的推理方法为:
通过SACA加速耗时算子,耗时算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce、ProdVirial、Slice和Pad,管理处理单元MPE将耗时算子的计算密集部分根据原子ID分配给64个计算处理单元CPE,每个计算处理单元CPE分别计算对应划分的块;
计算处理单元CPE计算完成后,管理处理单元MPE执行athreadjoin()指令同步64个计算处理单元CPE的计算结果,并将结果存储至主存储器DDR中;
在SACA运行时SIMD并行:通过计算处理单元CPE发出512位向量化指令提高定制算子的并行效率,定制算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce和ProdVirial。
通过上述技术方案,通过MPI、SACA和SIMD并行,使DeePMD-kit模型可以在神威超级计算机中进行应用;且通过使用512位向量化指令,可以提高DeePMD-kit算子的并行效率。
优选的,分子系统根据活跃的MPI进程均匀划分为多个子区域;所述神威超级计算机在SW26010-pro节点上启动6个MPI进程,每个核心组CG持有一个MPI进程,并负责计算全部原子中一个的子区域。
优选的,通过计算与内存访问的重叠和核融合优化Tabulate算子和TabulateGrad算子的计算效率和带宽利用率,优化过程如下:
步骤1、每个计算处理单元CPE均通过发出CRTS_dma_iget()或CRTS_dma_iput()指令发起异步内存访问请求;DMA请求发起后,计算处理单元CPE同步等待内存访问,并通过执行dma_wait()指令检查DMA状态,在执行dma_wait()指令之前,Tabulate算子和TabulateGrad算子的计算均不会被阻塞,且允许在执行dma_wait()指令之前执行与当前计算流水没有数据依赖的计算;
本地数据存储器LDM和主存储器DDR之间的异步DMA传输通过手动控制重叠效率的过程中,通过执行dma_wait()指令实现同步;
每个计算处理单元CPE负责执行多个描述符向量D(Ri),将输入s(rij)及其对应的表格系数分为两个缓冲区,每个缓冲区独立处理计算处理单元CPE中的部分描述符向量D(Ri),缓冲区的处理包括计算和本地数据存储器LDM与主存储器DDR之间的异步DMA访问,两个缓冲区的计算数据通过dma_wait()指令实现同步;
当第一个缓冲区完成从主存储器DDR到本地存储器的DMA传输并开始计算时,第二个缓冲区发起DMA请求以从主存储器DDR加载s(rij)和表格系数;当第二个缓冲区完成DMA请求并开始计算时,第一个缓冲区请求将D(Ri)写回主存储器;
步骤2、TabulateGrad算子重用Tabulate算子先前计算的G矩阵。
通过上述技术方案,通过计算与内存访问的重叠这一设置,因神威超级计算机支持高带宽的异步DMA,这使其能够高效访问主存储器中的连续数据块,使算子最大化300GB/s的DMA带宽,并且可以提高吞吐量;
通过使TabulateGrad算子重用Tabulate算子先前计算的G矩阵,可以省略计算G矩阵时频繁的内存访问,进而消除Tabulate算子的冗余计算,从而节省54.6%的执行时间。
优选的,通过数据布局转换和分支消除优化ProdEnvMat算子的计算效率,优化过程如下:
步骤1、将AoS变量转换为结构数组SoA格式,通过神威超级计算机的VSHFW进行数值洗牌,完成向量化后存储回AoS格式;
在VSHFW中,将源向量划分为16个32位字,洗牌掩码包括16个5位组件,且每个组件负责指定源向量中的字位置,通过执行VSHFW使目标向量的16个字根据掩码进行分配;
步骤2、为SIMD向量计算条件掩码,将SIMD向量与该条件掩码相乘后推导分支输出。
通过上述技术方案,通过数据布局转换的设置,可以充分利用神威超级计算机的并行加载、存储和计算能力,进而进而高效的数值洗牌,从而在通过256位VSHFW可提高4倍的吞吐量,通过512位VSHFW可提高8倍的吞吐量;
通过分值消除的设置,可以减少分歧,从而消除冗余计算,从而优化ProdEnvMat算子在DeePMD-kit模型中的计算效率的优化。
优选的,在CPE数组架构中,每个cluster均包括四个计算处理单元CPE和16个从属集群管理SCM,每个CPE数组中的16个从属集群管理SCM通过片上网络互联,每个从属集群管理SCM均包括RMA引擎和DMA引擎。
优选的,通过复制与规约策略优化ProdVirial算子的写冲突,优化过程如下:
步骤1、为每个计算处理单元CPE创建一个名为virial_rep的virial副本,并将其元素初始化为0;
计算每个计算处理单元CPE在virial上的增量tmp_v,并将其加到virial_rep中;
每个计算处理单元CPE计算完virial_rep后,通过执行CRTS_ssync_array()指令同步64个计算处理单元CPE的计算结果;
步骤2、通过两轮RMA引擎在集群内快速执行的操作,每个cluster内的第一个计算处理单元CPE聚合部分值;
通过对共享相同行号的集群执行RMA引擎归约,CPE数组第一列中的第一个计算处理单元CPE导出行内部分归约;
第一列中的第一个计算处理单元CPE通过RMA引擎执行部分归约,第一集群的第一个计算处理单元CPE得出最终归约结果,并通过DMA策略写回主存储器DDR。
通过上述技术方案,通过复制与归约策略的设置,可以保证在CRTS_ssync_array()指令前代码的完整性,通过三步骤的基于RMA的归约方法,可以避免冗余的全局同步,从而提高了并行效率。
优选的,通过拟合网络优化和并行化张量操作符优化TensorFlow操作符,TensorFlow操作符的优化过程如下:
步骤1、优化拟合网络:拟合网络包括多个全连接层和Tanh激活函数,用于在反向传播过程中获得用于力计算的相应梯度;所述神威超级计算机的全连接层包括MatMul操作符和Add操作符;
将MatMul操作符和Add操作符融合到Eigen中的GEMM,并在神威超级计算机中使用swBLAS,通过SACA同步加速Tanh和TanhGrad操作符;
步骤2、并行化张量操作符:通过SACA并行化Pad和Slice操作符,并利用DMA策略优化主存储器DDR的带宽。
通过上述技术方案,通过将MatMul操作符和Add操作符融合到Eigen中的GEMM,使用神威超级计算机的swBLAS,通过SACA加速Tanh和TanhGrad操作符,可以充分使用神威计算机中SW26010-pro处理器中CPE的计算能力,从而优化TensorFlow操作符在DeePMD-kit中的计算效率;
通过SACA并行化Pad和Slice操作符,可以使主存储器DDR带宽利用率实现最大化,从而优化TensorFlow操作符。
优选的,通过混合精度的tabulatetion方法优化Tabulate操作符的带宽,混合精度的tabulatetion方法如下:
步骤1、通过bfloat16创建低阶权重a0、a1、a2和a3,通过float32创建高阶权重a4和a5;
步骤2、通过SACA和向量化intrinsic设计混合精度Tabulate内核。
通过上述技术方案,通过混合精度中使用低精度的表格权重直接从头拟合DeePMD-kit描述符,这可以最小化压缩误差,通过使用bfloat16创建低阶权重可以有效防止训练过程中的溢出问题发生;通过利用神威超级计算机配备的CPE高效低精度的计算能力,这可以节约Tabulate算子计算过程中大约3倍的内存占用,从而将吞吐量提高约23倍。
优选的,优化Tabulate操作符的计算工作流程如下:
步骤1、计算并与进行混合精度的向量-向量乘法,获得激活矩阵aij;
步骤2、wij与aij进行矩阵-向量乘法,获得描述符向量
通过上述技术方案,通过在计算的时间密集循环之前计算aij,并将Tabulate操作转换成两个矩阵-向量乘法,这减少了M×38次冗余计算,从而优化Tabulate操作符的计算效率。
综上所述,本发明的有益效果为:
1、通过MPI、SACA和SIMD并行,使DeePMD-kit模型可以在神威超级计算机中进行应用;且通过使用512位向量化指令,可以提高DeePMD-kit算子的并行效率;
2、通过对Tabulate、TabulateGrad、ProdEnvMat、ProdForce、ProdVirial、MatMul、Tanh、TanhGrad、Slice和Pad算子的性能优化,可以最大化实现新一代神威资源的利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为现有技术中DeePMD-kit模型的运行示意图;
图2为现有技术中处理器和神威超级计算机的处理器的架构对比示意图;
图3为本发明中SW26010-pro处理器中耗时算子分析;
图4为本发明中DeePMD-kit模型在神威超级计算机的运行示意图;
图5为本发明中神威超级计算机上计算与内存访问的重叠的运行示意图;
图6为本发明中AoS和SoA之间的转换的运行示意图;
图7为本发明中ProdVirial计算中的复制与归约策略的运行示意图;
图8为本发明中混合精度表格化方案的运行示意图;
图9为本发明中液态水的径向分布函数gOO(r)、gOH(r)和gHH(r)的运行示意图;
图10为本发明中水系统在1,000,000步模拟过程中的系统能量曲线的运行示意图;
图11为本发明中单个SW26010-pro节点上,针对9,126个原子水系统和5,184个原子铜系统的逐步性能提升的运行示意图;
图12为本发明中DeePMD-kit模型中自定义操作符的性能评估的运行示意图;
图13为本发明中水系统100步MD模拟的强扩展性评估的运行示意图;
图14为本发明中铜系统100步MD模拟的强扩展性评估的运行示意图;
图15为本发明中神威超级计算机中水和铜系统的弱扩展性的运行示意图;
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如附图1-15所示,DeePMD-kit模型在神威超级计算机的运行方法,神威超级计算机在SW26010-pro节点上启动6个MPI进程,每个核心组CG持有一个MPI进程,并负责计算全部原子中一个的子区域;分子系统根据活跃的MPI进程均匀划分为多个子区域;神威超级计算机的六个核心组CG分别负责MPI进程六个子区域的推理;神威超级计算机的编程接口为SACA;
每个核心组CG均包括与主存储器DDR相连的管理处理单元MPE和64个计算处理单元CPE,管理处理单元MPE含有256位的SIMD单元;每个计算处理单元CPE含有512位的SIMD单元;每个计算处理单元CPE均含有本地数据存储器LDM,在本具体实施例中,本地数据存储器LDM为手动控制,每个本地数据存储器LDM均取消缓存配置,每个本地数据存储器LDM均通过DMA策略和主存储器DDR实现连续数据传输;同一核心组CG中的计算处理单元CPE之间通过远程内存访问RMA实现数据传输;
其中,每个核心组CG的推理方法为:
通过SACA加速耗时算子,耗时算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce、ProdVirial、Slice和Pad,管理处理单元MPE将耗时算子的计算密集部分根据原子ID分配给64个计算处理单元CPE,每个计算处理单元CPE分别计算对应划分的块;
计算处理单元CPE计算完成后,管理处理单元MPE执行athreadjoin()指令同步64个计算处理单元CPE的计算结果,并将结果存储至主存储器DDR中;
在SACA运行时SIMD并行:通过计算处理单元CPE发出512位向量化指令提高定制算子的并行效率,定制算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce和ProdVirial。
通过MPI、SACA和SIMD并行,使DeePMD-kit模型可以在神威超级计算机中进行应用;且通过使用512位向量化指令,可以提高DeePMD-kit算子的并行效率。
如图5所示,Tabulation方法使用五阶多项式逼近来压缩嵌入网络Gi,节省了82%的总浮点运算(FLOPs)。该方法由DeePMD-kit中的Tabulate和TabulateGrad算子实现。然而,当前在新一代神威上的abulation实现耗时较多。对Tabulate和TabulateGrad算子进行分析显示,在加载多项式系数时内存访问效率低(即内存带宽利用率不到1%),分别占用了68.6%和54.6%的执行时间;在本具体实施例中,通过计算与内存访问的重叠和核融合优化Tabulate算子和TabulateGrad算子的计算效率和带宽利用率,优化过程如下:
步骤1、使Tabulate和TabulateGrad算子采用了计算与内存访问重叠的策略,其核心计算是一个三层嵌套循环。新一代神威支持高带宽的异步DMA,能够高效访问主存储器中的连续数据块。
每个计算处理单元CPE均通过发出CRTS_dma_iget()或CRTS_dma_iput()指令发起异步内存访问请求;DMA请求发起后,计算处理单元CPE同步等待内存访问,并通过执行dma_wait()指令检查DMA状态,在执行dma_wait()指令之前,Tabulate算子和TabulateGrad算子的计算均不会被阻塞,且允许在执行dma_wait()指令之前执行与当前计算流水没有数据依赖的计算;
本地数据存储器LDM和主存储器DDR之间的异步DMA传输通过手动控制重叠效率的过程中,通过执行dma_wait()指令实现同步;且LDM和主存储器之间的异步DMA传输通过手动控制来最大化重叠效率;每个CPE负责执行多个描述符向量D(Ri)以充分利用LDM空间(例如,水系统中为32,铜系统中为8,使用223KBLDM)。通过这种重叠策略,这些算子可以最大化300GB/s的DMA带宽,并提高吞吐量。
每个计算处理单元CPE负责执行多个描述符向量D(Ri),将输入s(rij)及其对应的表格系数分为两个缓冲区,每个缓冲区独立处理计算处理单元CPE中的部分描述符向量D(Ri),缓冲区的处理包括计算和本地数据存储器LDM与主存储器DDR之间的异步DMA访问,两个缓冲区的计算数据通过dma_wait()指令实现同步;
当第一个缓冲区完成从主存储器DDR到本地存储器的DMA传输并开始计算时,第二个缓冲区发起DMA请求以从主存储器DDR加载s(rij)和表格系数;当第二个缓冲区完成DMA请求并开始计算时,第一个缓冲区请求将D(Ri)写回主存储器;
步骤2、Tabulate和TabulateGrad算子都计算了方程中描述的G矩阵。然而,计算G涉及频繁的内存访问,包括输入s(rij)和多项式系数;通过TabulateGrad算子重用Tabulate算子先前计算的G矩阵;这可以消除TabulateGrad算子中的冗余计算,此优化可以节省54.6%的执行时间。
通过计算与内存访问的重叠这一设置,因神威超级计算机支持高带宽的异步DMA,这使其能够高效访问主存储器中的连续数据块,使算子最大化300GB/s的DMA带宽,并且可以提高吞吐量;
通过使TabulateGrad算子重用Tabulate算子先前计算的G矩阵,可以省略计算G矩阵时频繁的内存访问,进而消除Tabulate算子的冗余计算,从而节省54.6%的执行时间。
如图6所示,DeePMD-kit实现为LAMMPS的力场插件。其变量布局必须与LAMMPS统一,采用结构数组(AoS)格式。例如,两个原子的rij被存储为(x0,y0,z0),(x1,y1,z1),其中这两个原子的内存间隔为3(即第一次循环加载x0,第二次循环加载x1。在ProdEnvMat算子中,rij_a、descrpt_a和descrpt_a_deriv变量必须存储为AoS格式,这导致每次迭代的非连续内存访问,阻碍了向量化优化。此外,ProdEnvMat算子包含许多条件分支,导致分支发散,降低了SIMD的计算效率。因此,通过数据布局转换和分支消除优化ProdEnvMat算子的计算效率,优化过程如下:
步骤1、将AoS变量转换为结构数组SoA格式,通过神威超级计算机的VSHFW进行数值洗牌,完成向量化后存储回AoS格式;例如,两个原子的rij被存储为{x0,x1,y0,y1,z0,z1};
新一代神威架构支持全字向量洗牌指令VSHFW,能够高效地进行数值洗牌。在VSHFW中,将源向量划分为16个32位字,洗牌掩码包括16个5位组件,且每个组件负责指定源向量中的字位置,以便将其放置在目标向量中。通过执行VSHFW使目标向量的16个字根据掩码进行分配;
在本具体实施例中,显示了一个256位VSHFW指令的示例,该指令根据定义的掩码洗牌两个256位源向量。掩码被分为八个5位二进制码,其中第五位表示选择哪个源向量,其余四位表示选择源向量中的哪个字。如图6所示,掩码的第四个二进制码为0x13。此二进制码表示目标向量的相应字从源向量1的第三个字获取。对于内存间隔为6的变量,我们可以使用24条VSHFW指令在AoS和SoA之间进行转换,使得仅24个额外指令周期即可通过256位VSHFW提高4倍的吞吐量,使用512位VSHFW提高8倍的吞吐量。
步骤2、为SIMD向量计算条件掩码,将SIMD向量与该条件掩码相乘后推导分支输出。
ProdEnvMat算子使用条件分支来消除冗余计算。对于每个原子,ProdEnvMat从邻居列表L(i)中检索邻居的全局原子索引。如果全局原子索引小于0(即当前原子的所有邻居都已被检索),ProdEnvMat会跳过当前循环,转而检索L(i)中下一个原子的邻居。每次循环都会执行分支指令以检查全局原子索引,这可能导致分支分发散。为了解决这个问题,在本具体实施例中,通过实施分支消除策略以减少分歧。具体而言,我们为SIMD向量计算条件掩码,并通过将SIMD向量与该掩码相乘来推导分支输出。
通过数据布局转换的设置,可以充分利用神威超级计算机的并行加载、存储和计算能力,进而进而高效的数值洗牌,从而在通过256位VSHFW可提高4倍的吞吐量,通过512位VSHFW可提高8倍的吞吐量;
通过分值消除的设置,可以减少分歧,从而消除冗余计算,从而优化ProdEnvMat算子在DeePMD-kit模型中的计算效率的优化。
如图7所示,在CPE数组架构中,每个cluster均包括四个计算处理单元CPE和16个从属集群管理SCM,每个CPE数组中的16个从属集群管理SCM通过片上网络互联,每个从属集群管理SCM均包括RMA引擎和DMA引擎。
如图7所示,在采用新神威上的算子内并行方案时,ProdVirial算子中存在写冲突,这些冲突通常通过原子操作来缓解。新型神威上的原子操作是通过取值并加机制实现的,每个原子操作都需要在CG的所有CPE上进行全局同步。然而,使用这些原子操作会在ProdVirial操作符中引入9*N{des}*N{loc}*N{nnei}次同步,其中N{des}表示描述符数量,N{loc}表示原子数量,N{nnei}表示邻居原子数量。频繁的同步操作降低了并行效率,导致其性能不如在MPE上的串行实现。因此,在本具体实施例中,通过复制与规约策略优化ProdVirial算子的写冲突,优化过程如下:
步骤1、为每个计算处理单元CPE创建一个名为virial_rep的virial副本,并将其元素初始化为0;
计算每个计算处理单元CPE在virial上的增量tmp_v,并将其加到virial_rep中;
每个计算处理单元CPE计算完virial_rep后,通过执行CRTS_ssync_array()指令同步64个计算处理单元CPE的计算结果;
步骤2、通过两轮RMA引擎在集群内快速执行的操作,每个cluster内的第一个计算处理单元CPE聚合部分值;
通过对共享相同行号的集群执行RMA引擎归约,CPE数组第一列中的第一个计算处理单元CPE导出行内部分归约;
第一列中的第一个计算处理单元CPE通过RMA引擎执行部分归约,第一集群的第一个计算处理单元CPE得出最终归约结果,并通过DMA策略写回主存储器DDR。
通过复制与归约策略的设置,可以保证在CRTS_ssync_array()指令前代码的完整性,通过三步骤的基于RMA的归约方法,可以避免冗余的全局同步,从而提高了并行效率。
TensorFlow对新型神威架构的优化不足,导致一些官方TensorFlow操作符在DeePMD-kit中效率不高;因此,在本具体实施例中,通过拟合网络优化和并行化张量操作符优化TensorFlow操作符,TensorFlow操作符的优化过程如下:
步骤1、优化拟合网络:拟合网络包括多个全连接层和Tanh激活函数,用于在反向传播过程中获得用于力计算的相应梯度;
但目前的实现效率不高,无法充分利用新型神威的计算能力。DeePMD-kit的原始全连接层表示为神威超级计算机的全连接层包括MatMul操作符和Add操作符;
这引入了中间张量的冗余数据传输和额外的内核启动。
在本具体实施例中,将MatMul操作符和Add操作符融合到Eigen中的GEMM(在一个内核中计算$A*B+C$),并在神威超级计算机中使用swBLAS,通过SACA同步加速Tanh和TanhGrad操作符,以充分利用SW26010-pro处理器中CPE的计算能力;
步骤2、并行化张量操作符:通过SACA并行化Pad和Slice操作符,并利用DMA策略优化主存储器DDR的带宽。
通过将MatMul操作符和Add操作符融合到Eigen中的GEMM,使用神威超级计算机的swBLAS,通过SACA加速Tanh和TanhGrad操作符,可以充分使用神威计算机中SW26010-pro处理器中CPE的计算能力,从而优化TensorFlow操作符在DeePMD-kit中的计算效率;
一些专门的张量操作符,如Pad和Slice,目前在新型神威上仅以MPE版本实现。不幸的是,这些操作符不支持CPE上的并行执行,也未能有效利用300GB/s的DMA带宽。因此,DeePMD-kit的计算性能受到显著影响。为了解决这些问题,通过SACA并行化Pad和Slice操作符,可以使主存储器DDR带宽利用率实现最大化,从而优化TensorFlow操作符。
如图8所示,对于每个平滑门限值x=s(r{ij}),Tabulate操作符会查找相应的表格权重w{ij}来计算嵌入向量G{ij},其中MMM表示嵌入矩阵的特征维度。然而,每个x需要访问M×6×8字节的w{ij},这会消耗大量内存访问,并在大规模MD模拟中导致计算效率低下。为了缓解Tabulate操作符的带宽瓶颈,通过混合精度的tabulatetion方法优化Tabulate操作符的带宽,混合精度的tabulatetion方法如下:
步骤1、通过bfloat16创建低阶权重a0、a1、a2和a3,通过float32创建高阶权重a4和a5;
步骤2、通过SACA和向量化intrinsic设计混合精度Tabulate内核。
与低精度截断方法不同,所提出的混合精度方法使用低精度的表格权重直接从头拟合DeePMD-kit描述符,这可以最小化压缩误差。通过对表格权重中每项的统计分析,我们发现高阶系数(即a4和a5)在训练阶段显示出显著的值范围,这表明这些项对精度变化更为敏感。例如,a4和a5的绝对最大值分别达到8.5*1010和1.3*1011。由于高阶系数的值远大于float16的代表范围,直接使用float16压缩权重会导致溢出问题。即使使用bfloat16来压缩高阶权重,包括a4和a5也会导致显著的误差;因此,使用bfloat16创建低阶权重a0、a1、a2和a3,使用float32创建高阶权重a4和a5;
选择bfloat16来创建低阶权重而不是float16的原因是bfloat16的值范围与float32一致,这可以防止训练过程中的溢出问题。新型神威超级计算机支持低精度浮点计算和512-bitSIMD支持,包括float16、bfloat16和float32。因此,我们可以使用SACA和向量化intrinsic设计混合精度Tabulate内核,以利用CPE的高效低精度计算能力。
通过混合精度中使用低精度的表格权重直接从头拟合DeePMD-kit描述符,这可以最小化压缩误差,通过使用bfloat16创建低阶权重可以有效防止训练过程中的溢出问题发生;通过利用神威超级计算机配备的CPE高效低精度的计算能力,这可以节约Tabulate算子计算过程中大约3倍的内存占用,从而将吞吐量提高约23倍。
优化Tabulate操作符的计算工作流程如下:
步骤1、计算并与进行混合精度的向量-向量乘法,获得激活矩阵aij;
步骤2、wij与aij进行矩阵-向量乘法,获得描述符向量
通过在计算的时间密集循环之前计算aij,并将Tabulate操作转换成两个矩阵-向量乘法,这减少了M×38次冗余计算,从而优化Tabulate操作符的计算效率。
在本具体实施例中,我们选择了两个典型的物理系统—水和铜作为性能评估的基准。
水是一个具有挑战性的系统,即使对于AIMD方法来说也不例外,因为它需要在弱非共价分子间相互作用、热(熵)效应以及核量子效应之间进行平衡。
铜是一种具有代表性的金属,其性质如表面形成能和堆垛层错能等很难通过经验势场准确预测。
为了模拟和分析我们的工作性能,我们使用基于Tabulate的DP模型作为基准,其中描述符是一个压缩的Tabulate模块,输出维度为128。拟合网络的维度为224×224×224。截止半径设置分别为和最大邻居数为138和512。MD方程通过Velocity-Verlet方法在0.5fs和1.0fs的时间步长下进行100步数值积分。原子的速度按照330K的玻尔兹曼分布随机初始化。邻居列表在每50个时间步更新一次,带有的缓冲区域。热力学数据,包括动能、势能、温度和压力,每20个时间步收集并记录一次。获得如下表:混合精度方案与基线方法的能量和力误差比较:
A.混合精度方案的准确性
1、能量和力误差。通过将力和能量误差与AIMD方法进行比较,来研究DeePMD-kit的准确性。我们使用由VASP计算的测试数据集作为例子来评估精度,该数据集由100个水分子组成。首先,我们使用混合精度模型预测这100个水分子的能量和力,然后计算预测的能量和力相对于AIMD结果的均方根误差(RMSE)。表I显示了我们的混合精度方案与基准tabulation方案相比的RMSE误差。与基准方案相比,所提出的混合精度方法实现了2.43×10^-3eV/分子的能量误差和的力误差。混合精度方案的能量预测误差远小于4×10^-2eV/分子,力误差不小于这表明所提出的混合精度方法具有较低的误差率。
图9为液态水的径向分布函数gOO(r)、gOH(r)和gHH(r);分别由两种DeePMD-kit实现计算得到:基线方案使用float64精度,混合精度方案使用bfloat16和float32。
2、径向分布函数。为了进一步评估混合精度的准确性,我们计算了水的径向分布函数(RDF),它是指在球形平均距离rrr上搜索邻近原子的归一化概率。氧-氧(gOO(r))、氧-氢(gOH(r))和氢-氢(gHH(r))的RDF通常用于表征水的结构性质。具体而言,我们选择了192个水原子,使用提出的混合精度DeePMD-kit和基准进行20,000步MD模拟。然后,我们基于模拟结果计算水系统的RDF,并在图9中绘制RDF曲线。根据图9,所提出的混合精度表格化方案和基准方法的RDF完全重叠。基准方法在之前的研究中已经证明能够达到与AIMD方法相当的准确性。因此,我们可以得出结论,所提出的混合精度方案能够准确预测物理可观测量。
图10为水系统在1,000,000步模拟过程中的系统能量曲线。混合精度方案能够在长时间步长的模拟中保持稳定,并具有较低的误差率。
3、稳定性评估:为了评估混合精度方案的MD稳定性,我们选择了包含192个原子的水系统,对所提出的混合精度方案进行长期模拟评估。我们使用相同的配置对提出的混合精度DeePMD-kit和基准方法进行一百万步的NVE模拟。然后,我们观察系统在MD模拟过程中的能量波动,并在图10中绘制这两种DeePMD-kit方案计算的能量曲线。根据图10,我们可以观察到在长期MD模拟中系统能量得到了很好的保持。此外,混合精度方案模拟的系统能量与基准结果非常接近,并且遵循相同的趋势,表明混合精度方法能够以低误差率进行长期MD模拟。
图11为单个SW26010-pro节点上,针对9,126个原子水系统和5,184个原子铜系统的逐步性能提升。性能加速比相对于基线进行归一化。
B、单节点性能
我们在新型神威超级计算机上的工作包括对定制操作符(即Tabulate、TabulateGrad、ProdEnvMat、ProdVirial和ProdForce)、拟合网络、混合精度方案和张量操作符的优化。通过详细的性能分析,我们发现耗时最大的部分按优先级排序如下:1拟合网络(占总时间的68.1%),2定制操作符(占16.8%),3张量操作符(占13.9%)。我们按照这一顺序逐步进行优化,并报告在单个新型神威节点(一个SW26010-pro处理器)上的相应性能提升。我们进行了100步的MD模拟,并测量了配置有9,126个原子的水系统和5,184个原子的铜系统的对应循环时间(由LAMMPS计算)。基准使用的是22年ppopp中提出的压缩模型的平面MPI版本DeePMD-kit。我们在相同配置下进行MD模拟,并计算每项优化的加速比。图11显示了单个新型神威节点上DeePMD-kit的性能提升情况。与基准相比,优化后的DeePMD-kit在水系统上实现了3.1倍的加速,在铜系统上实现了2.9倍的加速。拟合网络的每一层包括MatMul、Add、Tanh和TanhGrad操作符。这些结果表明,提出的内核融合和Tanh优化方法能够有效提高DeePMD-kit的计算性能。通过进行定制操作符优化,优化后的DeePMD-kit在水系统上达到了6.8倍的加速,在铜系统上达到了12.1倍的加速,这表明包括表格化优化、数据布局优化、分支优化和写入冲突避免在内的提出优化可以显著提高DeePMD-kit的性能。在tabulation上进行混合精度优化后,我们的工作在水系统上达到了8.2倍的加速,在铜系统上达到了14.1倍的加速,这表明使用低精度可以通过最大化DMA的带宽利用进一步提升CPE的计算效率。最后,在优化张量操作符之后,我们的工作在水系统上实现了67.6倍的显著加速,在铜系统上实现了56.5倍的加速。这一有趣现象表明,预安装的TensorFlow库对某些张量操作符的优化不足,严重影响了DeePMD-kit的性能。
图12为DeePMD-kit模型中自定义操作符的性能评估。我们分别在9,216个原子水系统和5,184个原子铜系统上评估自定义操作符的性能提升。
C、定制操作符的性能
我们进一步评估了每个定制操作符在水和铜系统上的性能提升。具体而言,我们选择了图11中用于定制操作符评估的DeePMD-kit模型,执行一次MD模拟。然后,我们测量了配置有9,216个原子的水系统和5,184个原子的铜系统的定制操作符的循环时间。为了进行对比,我们使用相同的配置测量了基准模型的循环时间,并计算加速比。图12详细显示了与基准相比,每个定制操作符的加速比。评估结果表明,所有定制操作符相比基准均实现了显著的加速,这表明所提出的定制操作符优化方法在单个新型神威节点上显著提高了性能。然而,ProdEnvMat和ProdForce操作符的性能相对较低,这主要是由于这些操作符中存在非连续的内存访问,因此我们必须使用gld和gst指令进行全局内存访问,理论带宽为51.2GB/s。
图13:水系统100步MD模拟的强扩展性评估。我们在新的神威上评估14,910,336个原子的模拟效率,并比较在Fugaku上8,294,400个原子和在Summit上41,472,000个原子的扩展性。
图14:铜系统100步MD模拟的强扩展性评估。我们在新的神威上评估2,540,160个原子的模拟效率,并比较在Fugaku上2,177,280个原子和在Summit上13,500,000个原子的扩展性。
D、强扩展性
我们评估了在新型神威超级计算机上优化后的DeePMD-kit的强扩展性。为了与Summit和Fugaku上现有的DeePMD-kit实现进行比较,我们采用相同的节点配置,实验从20个节点开始,逐渐扩展到新型神威上的4,560个节点。具体而言,我们选择了一个包含14,910,336个原子的水系统和一个包含2,540,160个原子的铜系统作为新型神威上的基准,以充分利用每个节点的内存容量(96GB)。图13和14显示了水系统和铜系统的并行效率,这些效率分别归一化为50个节点和20个节点的效率。对于水系统/铜系统,在新型神威上,4,560个节点的并行效率分别达到41.2%和23.1%。与Summit和Fugaku上的实现相比,我们发现所有机器在多达570个节点的情况下均展现出了良好的扩展性,且并行效率超过60%。此外,所有机器均表现出扩展到4,560个节点的潜力。
图15:新神威上水和铜系统的弱扩展性。重新设计的DeePMD-kit可以在整个新神威机器上实现35亿原子的模拟,达到68.9PFLOPS的峰值性能,对于铜系统,可以实现16亿原子的模拟,达到49.5PFLOPS的峰值性能。
E、弱扩展性
我们评估了优化后的DeePMD-kit的弱扩展性,并报告了在不同节点数下水系统和铜系统的最大模拟规模(即原子数量)和可达到的浮点运算性能(FLOPS),如图15所示。根据弱扩展性结果,优化后的DeePMD-kit可以在包含130亿个原子的铜系统上达到41.4PFLOPS,并进一步在包含290亿个原子的水系统上扩展到57.1PFLOPS。通过对整机的进一步估算(即107,520个节点),重新设计的DeePMD-kit实现可以在新型神威上进行350亿原子的超大规模模拟,达到68.9PFLOPS(约5%的理论峰值性能)。需要注意的是,性能利用率的主要原因是DeePMD-kit中定制操作符(包括Tabulate、TabulateGrad、ProdEnvMat、ProdVirial和ProdForce)的带宽限制。通过对单个新型神威节点的进一步性能分析,这些DeePMD-kit操作符的平均可达到带宽为水系统的262.9GB/s(约86%DMA带宽)和铜系统的257.4GB/s(约84%DMA带宽)。我们指出,SW26010-pro处理器仅配备了300GB/s的DDR4内存,约为当前HBM内存带宽的四分之一。如果配备HBM,我们的工作将在不修改任何代码的情况下达到263.6PFLOPS(约20%的峰值),这将与我们在Fugaku上的先前工作(442PFLOPS的124.8PFLOPS,28%的峰值)相当。
本领域技术人员在考虑说明书及实践这里的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (9)
1.DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,所述神威超级计算机的六个核心组CG分别负责MPI进程六个子区域的推理;所述神威超级计算机的编程接口为SACA;
每个所述核心组CG均包括与主存储器DDR相连的管理处理单元MPE和64个计算处理单元CPE,管理处理单元MPE含有256位的SIMD单元;每个计算处理单元CPE含有512位的SIMD单元;每个计算处理单元CPE均含有本地数据存储器LDM,每个本地数据存储器LDM均取消缓存配置,每个本地数据存储器LDM均通过DMA策略和主存储器DDR实现连续数据传输;同一核心组CG中的计算处理单元CPE之间通过远程内存访问RMA实现数据传输;
其中,每个核心组CG的推理方法为:
通过SACA加速DeePMD-kit模型算子中耗时算子,耗时算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce、ProdVirial、Slice和Pad,管理处理单元MPE将耗时算子的计算密集部分根据原子ID分配给64个计算处理单元CPE,每个计算处理单元CPE分别计算对应划分的块;
计算处理单元CPE计算完成后,管理处理单元MPE执行athreadjoin()指令同步64个计算处理单元CPE的计算结果,并将结果存储至主存储器DDR中;
在SACA运行时SIMD并行:通过计算处理单元CPE发出512位向量化指令提高DeePMD-kit模型算子中定制算子的并行效率,定制算子包括Tabulate、TabulateGrad、ProdEnvMat、ProdForce和ProdVirial。
2.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,分子系统根据活跃的MPI进程均匀划分为多个子区域;所述神威超级计算机在SW26010-pro节点上启动6个MPI进程,每个核心组CG持有一个MPI进程,并负责计算全部原子中一个的子区域。
3.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,通过计算与内存访问的重叠和核融合优化Tabulate算子和TabulateGrad算子的计算效率和带宽利用率,优化过程如下:
步骤1、每个计算处理单元CPE均发出CRTS_dma_iget()或CRTS_dma_iput()指令发起异步内存访问请求;DMA请求发起后,计算处理单元CPE同步等待内存访问,并通过执行dma_wait()指令检查DMA状态,在执行dma_wait()指令之前,Tabulate算子和TabulateGrad算子的计算均不会被阻塞,且允许在执行dma_wait()指令之前执行与当前计算流水没有数据依赖的计算;
本地数据存储器LDM和主存储器DDR之间的异步DMA传输通过手动控制重叠效率的过程中,通过执行dma_wait()指令实现同步;
每个计算处理单元CPE负责执行多个描述符向量D(Ri),将输入s(rij)及其对应的表格系数分为两个缓冲区,每个缓冲区独立处理计算处理单元CPE中的部分描述符向量D(Ri),缓冲区的处理包括计算和本地数据存储器LDM与主存储器DDR之间的异步DMA访问,两个缓冲区的计算数据通过dma_wait()指令实现同步;
当第一个缓冲区完成从主存储器DDR到本地存储器的DMA传输并开始计算时,第二个缓冲区发起DMA请求以从主存储器DDR加载s(rij)和表格系数;当第二个缓冲区完成DMA请求并开始计算时,第一个缓冲区请求将D(Rj)写回主存储器;
步骤2、TabulateGrad算子使用Tabulate算子先前计算的G矩阵。
4.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,通过数据布局转换和分支消除优化ProdEnvMat算子的计算效率,优化过程如下:
步骤1、将AoS变量转换为结构数组SoA格式,通过神威超级计算机的VSHFW进行数值洗牌,完成向量化后存储回AoS格式;
在VSHFW中,将源向量划分为16个32位字,洗牌掩码包括16个5位组件,且每个组件负责指定源向量中的字位置,通过执行VSHFW使目标向量的16个字根据掩码进行分配;
步骤2、为SIMD向量计算条件掩码,将SIMD向量与该条件掩码相乘后推导分支输出。
5.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,在CPE数组架构中,每个cluster均包括四个计算处理单元CPE和16个从属集群管理SCM,每个CPE数组中的16个从属集群管理SCM通过片上网络互联,每个从属集群管理SCM均包括RMA引擎和DMA引擎。
6.根据权利要求5所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,通过复制与规约策略优化ProdVirial算子的写冲突,优化过程如下:
步骤1、为每个计算处理单元CPE创建一个名为virial_rep的virial副本,并将其元素初始化为0;
计算每个计算处理单元CPE在virial上的增量tmp_v,并将其加到virial_rep中;
每个计算处理单元CPE计算完virial_rep后,通过执行CRTS_ssync_array()指令同步64个计算处理单元CPE的计算结果;
步骤2、通过两轮RMA引擎在集群内快速执行的操作,每个cluster内的第一个计算处理单元CPE聚合部分值;
通过对共享相同行号的集群执行RMA引擎归约,CPE数组第一列中的第一个计算处理单元CPE导出行内部分归约;
第一列中的第一个计算处理单元CPE通过RMA引擎执行部分归约,第一集群的第一个计算处理单元CPE得出最终归约结果,并通过DMA策略写回主存储器DDR。
7.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,通过拟合网络优化和并行化张量操作符优化TensorFlow操作符,TensorFlow操作符的优化过程如下:
步骤1、优化拟合网络:拟合网络包括多个全连接层和Tanh激活函数,用于在反向传播过程中获得用于力计算的相应梯度;所述神威超级计算机的全连接层包括MatMul操作符和Add操作符;
将MatMul操作符和Add操作符融合到Eigen中的GEMM,并在神威超级计算机中使用swBLAS,通过SACA同步加速Tanh和TanhGrad操作符;
步骤2、并行化张量操作符:通过SACA并行化Pad和Slice操作符,并利用DMA策略优化主存储器DDR的带宽。
8.根据权利要求1所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,通过混合精度的tabulatetion方法优化Tabulate操作符的带宽,混合精度的tabulatetion方法如下:
步骤1、通过bfloat16创建低阶权重a0、a1、a2和a3,通过float32创建高阶权重a4和a5;
步骤2、通过SACA和向量化intrinsic设计混合精度Tabulate内核。
9.根据权利要求8所述的DeePMD-kit模型在神威超级计算机的运行方法,其特征在于,优化Tabulate操作符的计算工作流程如下:
步骤1、计算并与进行混合精度的向量-向量乘法,获得激活矩阵aij;
步骤2、wij与oij进行矩阵-向量乘法,获得描述符向量
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411593969.4A CN119536816B (zh) | 2024-11-08 | 2024-11-08 | DeePMD-kit模型在神威超级计算机的运行方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411593969.4A CN119536816B (zh) | 2024-11-08 | 2024-11-08 | DeePMD-kit模型在神威超级计算机的运行方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119536816A CN119536816A (zh) | 2025-02-28 |
| CN119536816B true CN119536816B (zh) | 2025-07-22 |
Family
ID=94711925
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411593969.4A Active CN119536816B (zh) | 2024-11-08 | 2024-11-08 | DeePMD-kit模型在神威超级计算机的运行方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119536816B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119759583B (zh) * | 2025-03-04 | 2025-05-23 | 青岛国实科技集团有限公司 | 基于神威处理器的算子融合方法 |
| CN120373058B (zh) * | 2025-06-26 | 2025-10-10 | 齐鲁工业大学(山东省科学院) | 一种面向异构众核处理器的轻量级md模拟方法及系统 |
| CN120388629B (zh) * | 2025-06-27 | 2025-09-23 | 山东大学 | 分子动力学邻接表构建优化方法、系统及超级计算机平台 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118193135A (zh) * | 2024-03-27 | 2024-06-14 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的PIPE-BiCGStab求解器加速优化方法及系统 |
| CN118278277A (zh) * | 2024-04-02 | 2024-07-02 | 南京理工大学 | 一种镁锂合金深度学习势函数构建方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8261117B2 (en) * | 2008-09-11 | 2012-09-04 | International Business Machines Corporation | Virtualization in a multi-core processor (MCP) |
| CN106095583B (zh) * | 2016-06-20 | 2018-04-17 | 国家海洋局第一海洋研究所 | 基于新神威处理器的主从核协同计算编程框架 |
| DE202022101594U1 (de) * | 2022-03-25 | 2022-06-09 | M M Kamruzzaman | Ein paralleles und verteiltes Edge-Computing-System zur Auslagerung und Zwischenspeicherung von Berechnungen für Supercomputer |
| CN114970294B (zh) * | 2022-08-02 | 2022-10-25 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
| CN118098440A (zh) * | 2024-03-08 | 2024-05-28 | 郑州中科新兴产业技术研究院 | 一种考虑特殊氢键的离子液体机器学习势函数的构建方法 |
-
2024
- 2024-11-08 CN CN202411593969.4A patent/CN119536816B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118193135A (zh) * | 2024-03-27 | 2024-06-14 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的PIPE-BiCGStab求解器加速优化方法及系统 |
| CN118278277A (zh) * | 2024-04-02 | 2024-07-02 | 南京理工大学 | 一种镁锂合金深度学习势函数构建方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119536816A (zh) | 2025-02-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN119536816B (zh) | DeePMD-kit模型在神威超级计算机的运行方法 | |
| Lu et al. | Optimizing depthwise separable convolution operations on gpus | |
| Li et al. | Automatic tuning of sparse matrix-vector multiplication on multicore clusters | |
| CN104461466B (zh) | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 | |
| Chen et al. | FlinkCL: An OpenCL-based in-memory computing architecture on heterogeneous CPU-GPU clusters for big data | |
| Ernsting et al. | Algorithmic skeletons for multi-core, multi-GPU systems and clusters | |
| US20230289304A1 (en) | Method and apparatus for efficient access to multidimensional data structures and/or other large data blocks | |
| Morozov et al. | Block-parallel data analysis with DIY2 | |
| US12093811B2 (en) | Fractal calculating device and method, integrated circuit and board card | |
| CN114970294A (zh) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 | |
| CN118193135A (zh) | 基于神威架构的PIPE-BiCGStab求解器加速优化方法及系统 | |
| CN116227615A (zh) | 面向超级计算的量子搜索模拟方法及系统 | |
| Chen et al. | fgSpMSpV: A fine-grained parallel SpMSpV framework on HPC platforms | |
| US20220114133A1 (en) | Fractal calculating device and method, integrated circuit and board card | |
| CN118642863A (zh) | Spark框架下GPU使能的多层次张量CP分解分布式并行加速方法 | |
| Hermes et al. | Udon: A case for offloading to general purpose compute on cxl memory | |
| Liu et al. | Establishing high performance AI ecosystem on Sunway platform | |
| Lin et al. | swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer | |
| Bernaschi et al. | An introduction to multi-GPU programming for physicists | |
| McColl | Mathematics, Models and Architectures | |
| Yu et al. | Hypergef: A framework enabling efficient fusion for hypergraph neural network on gpus | |
| Nielsen et al. | Multicore challenges and benefits for high performance scientific computing | |
| Geng et al. | The importance of efficient fine-grain synchronization for many-core systems | |
| Zhang et al. | Co-concurrency mechanism for multi-GPUs in distributed heterogeneous environments | |
| Zhang et al. | An incremental iterative acceleration architecture in distributed heterogeneous environments with GPUs for deep learning |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |