
密度泛函理论(DFT)是研究半导体、金属等关键材料性质的主流第一性原理方法。ABACUS(原子算筹)是国内自主研发的密度泛函开源软件,由多家单位联合开发,国内外用户超过一千人,应用单位过百家。它能否在自主算力上跑出同等甚至更优的性能,一直是代码迁移与优化工作的关键命题。
全系适配,19 类核心算子逐项优化
华为计算发文称,在北京大学鲲鹏昇腾科教创新卓越中心支持下,北京大学力学与工程科学学院陈默涵研究员团队完成了 ABACUS 在鲲鹏 920 全系列平台上的适配,并把 19 类材料领域核心算子抽出来逐项优化。
测试显示,在与业界主流 CPU 相同的 28 核、28 进程 ×1 线程配置下,采用 SVE 指令集的版本在标准测试集上快 1.3 至 3.9 倍;放到单节点满核、启用矩阵运算单元的配置,最高可快 10.7 倍。相关代码已推送到 GitHub 开源社区。
芯片能力“闲着也是闲着”:打通编译与数学库
适配的第一个隐蔽问题是:鲲鹏 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 两个默认值。
正确性先行:NEON、SVE 与矩阵运算三个版本均跑通了自带的平面波基组求解 Kohn-Sham DFT、线性组合原子轨道(LCAO)求解 Kohn-Sham DFT、随机波函数 DFT(sDFT)与深度学习泛函 DeePKS 等集成测试,数值结果与业界主流实现一致。
算法层下钻:把复杂度从平方压到线性
性能测试覆盖 10 个典型材料体系(GaAs、C2H6O、MoS2、Pt(111)、BaTiO3、Na、Fe、H2O、Li27Ni9O54Mn9Co9、Si),规模从 8 到 216 个原子并采用周期性边界条件。除前述 1.3 至 3.9 倍、最高 10.7 倍的提升外,随机轨道 DFT 算例的差距更明显:SVE 版本快 2.8 至 3.1 倍,矩阵运算指令集版本快 6.1 至 20.1 倍。
团队把 19 类核心算子逐个做算法分析再改写,方向大致有三类:最见效的是压掉平方级复杂度——广义拉盖尔多项式原本用递归,改成迭代递推、只留三个中间变量后,复杂度降到 O(n),同一算子的百万次调用测试快了约 8 倍;多项式插值的区间查找从表头扫到表尾换成二分查找后,400 项的表平均比较次数从约 200 次降到 9 次。第二类是减掉重复运算,用公式化简、三角函数递推、循环不变量外提。第三类针对内存,采用混合精度、调整内存布局与负载均衡并行。
为让调优经验可复用,团队还借助一站式开发套件 DevKit 的源码自动优化能力,让工具自动识别同类性能瓶颈并给出优化后的代码。在 920 新型号上实测,8 个原子的温稠密碳(sDFT)算例快了 2.28 倍,512 个 Si 原子的体系(LCAO 基组)快了 2.66 倍。
不止于跑得快:国产软件与国产算力协同
此次优化的意义在于,它支撑了数十万行的大型科学计算软件,在适配优化后能够比业界主流硬件跑得更快,相关调优经验还能沉淀为其他科学软件项目可复用的基础工具。依托北京大学鲲鹏昇腾科教创新卓越中心,团队下一步将继续梳理代码中的关键算子、推进代码重构与热点优化,并把鲲鹏平台用到真实材料体系的科学计算研究中。
值得一提的是,这支团队凭借“基于鲲鹏高性能平台的极端条件温稠密碳模拟”作品,夺得 2026 第十三届并行应用挑战赛(PAC2026)应用组特等奖。该工作采用 ABACUS 的随机密度泛函理论算法,在密度 500 g/cm³、温度 20 keV(约 2.3 亿开尔文)的极端条件下高效计算碳的状态方程,将计算时间压缩至分钟量级,并在数百节点上实现 95% 以上的弱扩展效率,服务于惯性约束聚变等前沿研究。







