北大团队完成ABACUS鲲鹏920适配并优化19类算子
驱动中国11月1日消息,北京大学力学与工程科学学院陈默涵研究员团队在北大鲲鹏昇腾科教创新卓越中心支持下,完成ABACUS原子算筹软件在华为鲲鹏920全系列平台适配,并针对19类材料核心算子逐项优化;相关代码已推送至GitHub开源社区。
驱动中国11月1日消息,密度泛函理论(DFT)是研究半导体、金属等关键材料性质的主流第一性原理方法。ABACUS(原子算筹)是国内自主研发的密度泛函开源软件,由多家单位联合开发,国内外用户超过一千人,应用单位过百家。华为计算发文称,在北京大学鲲鹏昇腾科教创新卓越中心支持下,北京大学力学与工程科学学院陈默涵研究员团队完成ABACUS在鲲鹏920全系列平台上的适配,并把19类材料领域核心算子逐项优化。相关代码已推送到GitHub开源社区。
性能测试显示,在与业界主流CPU相同的28核、28进程×1线程配置下,采用SVE指令集的版本在标准测试集上的运行速度提升1.3至3.9倍;在单节点满核并启用矩阵运算单元的配置下,运行速度提升幅度达到10.7倍。
适配过程中,团队首先要打通编译链和数学库依赖。鲲鹏920的几个型号支持的向量指令集并不相同,分别为NEON、SVE和SVE512,并内置专门用于矩阵运算的单元。如果沿用通用编译选项,程序只会调用基础代码路径,相关硬件能力未被启用,测试结果仅反映未经调优的开箱状态。
针对上述情况,团队为三款芯片分别适配了编译路径。其中两款使用gcc-openmpi-openblas,分别编译出NEON和SVE版本;第三款改用clang-hmpi-kblas,编译SVE512和矩阵运算指令集版本。另一个改动是新增USE_KML编译选项,将鲲鹏数学库(KML)接入ABACUS。
接口层面也需要同步调整。KFFT与开源fftw3、KScaLAPACK与开源ScaLAPACK在函数签名和默认行为上不完全一致。团队修改了FFT接口的OMP配置,并调整abstol和orfac两个默认值,第三款芯片由此完成整体适配。
相关对比图显示,在10种典型材料体系总计算耗时对比中,同为28核、28进程×1线程配置时,绿色代表业界主流x86,蓝色代表鲲鹏920新型号。