Skip to content

NEPAdapters v1.0.3

Latest

Choose a tag to compare

@aboys-cb aboys-cb released this 11 Sep 02:28
ecac9ea

🚀 NEPAdapters v1.0.3

本版本将新一代磁性势协议接入 NEPAdapters 正式路径,重点增加 nep4_spin3 的 CPU、CUDA 与 LAMMPS 支持,并继续完善 nep4_spin2、GPU 执行效率和跨平台 Python 打包。

✨ Spin3 协议与模型支持

  • 新增 nep4_spin3:CPU 与 CUDA 后端使用同一套 O/C 协议和描述符布局;已覆盖并验证 O3-C2、O3-C3 和 O3-C4。
  • 完整压缩配对:保留全部 4 × C² 投影系数,并生成 C × (C + 1) / 2 个对称通道配对,不使用仅对角近似。
  • 逐元素 spin cutoff:spin_cutoff 可为统一值,也可按元素分别给出;异种元素对采用两端 cutoff 的对称组合。
  • 显式模型契约:版本化 spin 模型统一解析 spin_basis_size、spin_l_max、spin_compress、spin_order 和 spin_soc,非法形状或缺失字段直接报错,不静默降级。
  • ZBL 协议兼容:模型解析支持 nep4_spin2_zbl 与 nep4_spin3_zbl,并保持普通、typewise 和 flexible ZBL 的既有边界。

⚡ CUDA 与 LAMMPS

  • Cooperative CUDA 路径:Spin3 C2、C3、C4 均进入 cooperative kernel 正式路径;C4 不再走单独的慢速实现。
  • 统一 CPU/CUDA 信息流:描述符布局、投影维度和压缩通道规则由共享协议约束,减少后端间语义漂移。
  • LAMMPS GPU 接入:现有 nep/gpu、nep/gpu/kk 和 nep/gpu/kk/device 插件可加载新版 spin 模型。
  • 修复 newton off:修复 ghost 原子力缓冲未清零和 CPU 反向通信问题,避免跨步残留或漏加邻居贡献。

🪟 Python 与 Windows

  • 修复 Windows 上包含中文或其他 Unicode 字符的模型路径加载。
  • 新增 Windows wheel 的 Unicode 路径构建与安装回归测试。
  • 预编译 wheel 计划覆盖 CPython 3.10–3.14:Linux/Windows x86_64 同时包含 CPU 与 CUDA 后端,macOS x86_64/arm64 包含 CPU 后端。
  • Linux 和 Windows CUDA wheel 内置 CUDA Runtime;运行 CUDA 后端仍需兼容的 NVIDIA 驱动。

🧪 验证

  • macOS CPU Release 测试 33/33 通过,包括 Spin3 O3-C2、O3-C3、O3-C4 oracle。
  • Sai V100 CUDA/LAMMPS 测试 91/91 通过,包括 Spin3 CPU/CUDA oracle、协议与插件测试。
  • 真实 LAMMPS nep/gpu/kk smoke 通过,energy、force、magnetic force 和 virial 均在既定容差内。
  • Linux CPU CI 与 Windows Unicode wheel CI 已通过。
  • 1.0.3 sdist 构建成功,包名和版本元数据已核对。

⚠️ 当前边界

  • 本版本验证的是模型协议、后端数值 oracle 和 LAMMPS 接口;不同训练任务上的精度仍应由具体数据集独立评估。
  • CUDA 后端遇到不支持的模型或执行错误时不会自动回退到 CPU。
  • 官方 combined wheel 默认不包含 qNEP PPPM/cuFFT;Python wheel 不包含 LAMMPS 本体或插件。
python -m pip install --upgrade "nep-adapters[ase]==1.0.3"

Full Changelog: v1.0.2...v1.0.3