← 返回测试报告

🖥️ LAMMPS 海光 DCU 版编译与性能测试报告

Hygon C-3000 BW (gfx936) · Sugon 超算 · Kokkos + HIP 后端 · GPU 包对比分析
作者:opensource_community

📋 1. 环境信息

系统Sugon 8.9 (Linux) 节点登录节点(编译),已分配计算节点(测试;名称已脱敏) CPUHygon C86 Processor (128核, 64核/socket) DCUC-3000 BW 系列, 架构 gfx936, 80 CU, 1500MHz, 64GB 显存 编译器GCC 9.3.0, hipcc (Clang 17.0.0 from DTK 25.04.2) MPIMPICH 4.1.2 CMake3.24.1 LAMMPS22 Jul 2025 - Update 4 Kokkos4.6.2

⚙️ 2. 编译过程与主要难题

2.1 方案一:GPU 包 + HIP 后端

尝试:使用 -D PKG_GPU=ON -D GPU_API=HIP -D HIP_ARCH=gfx936

初次结果:编译成功,但运行时挂死

初次分析:GPU 包的 gpu 库被 DTK 的 cmake 添加了 -xhip 编译标志,导致 hipcc 为所有 .cpp 文件生成 HIP 设备代码。运行时 HIP 初始化卡住。

修复后:通过设置 AMDGPU_TARGETS="gfx936" 和禁用 HIP_USE_DEVICE_SORT,成功编译并运行。但性能测试表明 GPU 包比 Kokkos 慢 4.6-6.3 倍(详见第 6 节对比分析)。

2.2 方案二:KOKKOS 包 + HIP 后端 (架构不匹配)

尝试:使用 -D PKG_KOKKOS=ON -D Kokkos_ENABLE_HIP=ON

结果:编译成功,但运行时报错:running kernels compiled for gfx906 on gfx936

分析:Kokkos 4.6.2 不支持 gfx936 架构,自动检测回退到 gfx906。gfx906 与 gfx936 的指令集不兼容,导致 hipErrorInvalidKernelFile

2.3 方案三:修改 Kokkos 源码支持 gfx936 (最终方案)

思路:在 Kokkos 的 cmake 配置和 HIP 后端代码中手动添加 gfx936 架构支持。

📄 修改 1:lib/kokkos/cmake/kokkos_arch.cmake
在 SUPPORTED_AMD_ARCHS 列表中添加 AMD_GFX936,对应标志 gfx936;将 gfx936 放在 gfx906 之前,确保自动检测优先匹配 gfx936;在架构检测循环中添加 936 的正则匹配分支。
📄 修改 2:lib/kokkos/cmake/KokkosCore_config.h.in
添加 #cmakedefine KOKKOS_ARCH_AMD_GFX936
📄 修改 3:lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp
HIPTraitsWarpSize 条件编译中添加 defined(KOKKOS_ARCH_AMD_GFX936)。海光 BW 系列 wavefront 大小为 64,与 gfx906/gfx908 相同。
📄 修改 4:lib/kokkos/core/src/HIP/Kokkos_HIP_IsXnack.hpp
gpu_arch_can_access_system_allocations 函数中添加 defined(KOKKOS_ARCH_AMD_GFX936)return false 分支。海光 DCU 不支持系统内存访问。

🔧 3. 最终编译命令

# 使用 hipcc 编译器,启用 KOKKOS + HIP + OpenMP 包
cmake ../lammps-22Jul2025/cmake \
  -D PKG_KOKKOS=ON \
  -D Kokkos_ENABLE_HIP=ON \
  -D PKG_OPENMP=ON \
  -D PKG_KSPACE=ON \
  -D PKG_MANYBODY=ON \
  -D PKG_MOLECULE=ON \
  -D PKG_RIGID=ON \
  -D BUILD_MPI=OFF \
  -D CMAKE_INSTALL_PREFIX=$HOME/softwares/lammps/dcu-install \
  -D CMAKE_CXX_COMPILER=hipcc \
  -D CMAKE_C_COMPILER=gcc \
  -D CMAKE_HIP_COMPILER=hipcc \
  -D HIP_PATH=<DTK_ROOT>/hip

📜 4. 测试作业脚本

#!/bin/bash
#SBATCH -p <partition>
#SBATCH -N 1
#SBATCH --gres=dcu:1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=16
#SBATCH --time=00:10:00

module load compiler/gcc/9.3.0
module load compiler/dtk/25.04.2

export PATH=$HOME/softwares/lammps/dcu-install/bin:$PATH

lmp -k on g 1 -sf kk -in input.lj

🚀 5. 性能对比结果

测试配置

CPU 测试32,000 原子, 16 OMP 线程, 20,000 步 DCU 测试256,000 原子, 1 DCU 卡, 20,000 步 (8倍原子数)

性能对比表格

指标 CPU (16核 Hygon C86) DCU (1× C-3000 BW) 加速比
原子数 32,000 256,000
模拟步数 20,000 20,000 =
总耗时 440.81 秒 21.92 秒 20.1×
timesteps/s 45.37 912.28 20.1×
Matom-step/s 1.452 233.544 160.8×
Pair 计算耗时 370.83 秒 (84.1%) 1.69 秒 (7.7%) 219×
邻居搜索耗时 61.83 秒 (14.0%) 3.48 秒 (15.9%) 17.8×
Modify 耗时 5.01 秒 (1.1%) 15.34 秒 (70.0%) 0.33×

DCU 监控数据

指标 数值
平均使用率68%
峰值使用率100%
平均功率122 W
平均温度54.6 °C

关键结论

📌 DCU 单卡处理 8 倍原子数,总耗时仅为 CPU 的 1/20
📌 换算为同规模,DCU 单卡相当于约 160 核 CPU 的计算能力
📌 Pair 计算加速比高达 219 倍,GPU 最擅长的计算密集型任务效果显著
📌 Modify 阶段 (Verlet 积分) 在 GPU 上占比 70%,这是因为 KOKKOS 的 full 风格邻居列表导致通信开销较大
📌 DCU 满负荷运行时温度仅 55 °C,功耗 86-122 W,能效比极高

⚖️ 6. GPU 包 vs Kokkos 性能对比

6.1 测试目的

验证是否存在比 Kokkos 更高效的 GPU 加速方案。GPU 包使用手写优化的 HIP 内核,理论上可能比 Kokkos 的通用抽象更高效。

6.2 GPU 包编译修复

关键修复点
  • AMDGPU_TARGETS="gfx936"GPU_TARGETS="gfx936":防止 DTK 自动添加多个架构导致 --offload-arch 泄漏到 g++
  • HIP_USE_DEVICE_SORT=OFF:避免链接 hip::device,防止 -xhip 标志被传递给 g++

6.3 性能对比结果(32K 原子,1000 步)

指标 GPU 包 + HIP Kokkos + HIP Kokkos 优势
总耗时 3.47 秒 0.55 秒 6.3×
timesteps/s 288.1 1804.1 6.3×
Matom-step/s 37.8 236.5 6.3×

6.4 性能对比结果(256K 原子,1000 步)

指标 GPU 包 + HIP Kokkos + HIP Kokkos 优势
总耗时 14.73 秒 3.20 秒 4.6×
timesteps/s 67.9 312.5 4.6×
Matom-step/s 71.2 327.7 4.6×

6.5 GPU 包较慢的原因分析

📌 邻居列表在 CPU 构建:GPU 包输出显示 "Neigh mode: Hybrid (binning on host)",每次重建都需要 CPU→GPU 数据传输,而 Kokkos 完全在 GPU 上构建邻居列表
📌 GPU 包设计偏向多 GPU:单 GPU 场景下开销较大,需要额外的 fix gpu 命令管理资源
📌 Kokkos 更深度集成:所有计算(pair, neighbor, comm)都在 GPU 上,数据传输最少化

6.6 海光原生编译器确认

通过分析 DTK 工具链,确认当前方案已经使用海光原生编译器

# hipcc 最终调用海光原生 dcc 编译器
hipcc → <DTK_ROOT>/dcc/bin/dcc
           ↓
  海光 ISA bitcode: oclc_isa_version_936.bc

Kokkos 的 AMD_GFX936 只是命名约定,底层编译使用海光自己的 dcc 编译器 + 海光 ISA bitcode,已经是原生编译

🔬 7. 热点分析与源码优化

7.1 HIP 热点跟踪

使用 DTK 25.04.2 hipprof --hip-trace --stats 对 1,048,576 原子动态 LJ 基准进行热点分析。

Kernel调用次数总时间占比
LJ pair force5,19412.877 s64.92%
full neighbor-list build2635.523 s27.85%
fused NVE integrate5,1941.091 s5.50%
all remaining kernels-0.344 s1.74%

Pair 和 Neighbor 合计占设备时间的 92.8%,是唯一值得优化的目标。

7.2 PMC 硬件计数器分析

对 Pair 和 Neighbor 两热点进行 PMC 采集,提取关键指标:

指标LJ pair forceNeighbor build
VALU 指令70,299,737433,198,843
VMEM 读指令9,440,57419,685,740
VMEM 写指令65,5369,601,271
LDS 指令079,223,620
LDS wait 指令014,343,770
L2 hit rate95.10%83.77%
TCP data-stall 周期3,537,466467,603,303

Pair 无 LDS 使用,L2 命中率高;Neighbor 有大量 LDS 和 TCP stall 活动,是下一步优化重点。

7.3 Pair workgroup 扫描(负优化)

测试 workgroup 64/128/256/512/1024,每三轮交错运行:

Workgroup均值 (step/s)相对 1024
64228.706-8.58%
128230.307-7.94%
256233.920-6.50%
512241.857-3.32%
1024250.173基线

性能随 workgroup 增大而单调提升,Kokkos 自动选择的 1024 已是测试中的最佳值。实验代码已回退。

7.4 Neighbor transpose 优化(+13.6%)

运行时选项 neigh/transpose on,无需重新编译,三轮交错验证:

模式Run 1Run 2Run 3均值提升
transpose on284.280284.007284.166284.151+13.61%
transpose off249.724250.186250.375250.095基线

改变邻居列表在 GPU 上的内存布局(行主序→列主序),优化 pair kernel 的缓存访问模式。注意 transpose on 的收益与系统规模相关:1M 原子时 +13.6%,32K 原子时反而略慢 -1.2%。

7.5 Neighbor BPT 优化(+4.31%)

测试 neighbor 构建中每 team 的 bin 数量(BPT=1/2/4/8),三轮交错运行:

BPT均值 (step/s)相对默认
1260.742+4.31%
2 (默认)249.974基线
4258.720+3.50%
8260.992+4.41%

默认 BPT=2 是四组中最差的。BPT=1 提升 +4.31%,仅需一行代码修改(const int factor = 1;),已保留在源码中。

📊 8. CPU vs DCU 性能对比分析

8.1 原始"160 核"结论的缺陷

第一版报告声称 DCU 单卡相当于 160 核 CPU,该结论基于不同原子数的对比:

平台原子数timesteps/sMatom-step/s
CPU (16 OMP 线程)32,00045.371.452
DCU (原始)256,000912.28233.544

Matom-step/s 的比值 233.544 / 1.452 = 160.8×,但这是跨规模比较。GPU 在大规模下利用率更高,跨规模对比会系统性地夸大 GPU 加速比。

8.2 同规模公平对比(32,000 原子)

平台step/sMatom-step/s加速比
CPU (16 OMP 线程)52.921.693
DCU (1× C-3000 BW)3,206.09102.59560.6×

同规模下 DCU 单卡加速比约为 60 倍,而非 160 倍。后续测试表明 GPU 利用率仅 20-41%(取决于 pair style),瓶颈在 CPU 侧框架开销。

8.3 原子数扩大后 GPU 加速效果的变化

📌 GPU 加速比随原子数增加而提升:32K 时 60×,估算 1M 时 ~172×。原因:固定开销摊薄、GPU 占用率提升、计算/访存比改善
📌 LJ 基准 GPU 利用率仅 20%:Pair 计算仅占 6.8%,Modify(CPU 侧框架)占 76%。LJ 太轻量,不适合 GPU 优化
📌 EAM 基准 GPU 利用率提升到 41%:Pair 计算占 36.8%,计算量是 LJ 的 20.7×。EAM 是更合理的 GPU 基准

🔬 9. 优化实验全记录

9.1 有效优化

优化基准收益原理代价
neigh/transpose on LJ 1M +13.61% 邻居列表行主序→列主序,优化 pair kernel 缓存访问模式 运行时选项,零成本
neigh/transpose on EAM 1M +3.18% 同上,但 EAM 计算更密集,访存优化收益递减 同上
Neighbor BPT=1 LJ 1M +4.31% 每 team 处理 1 个 bin(原默认 2),减半 LDS 用量 → 更高 occupancy 一行源码修改
Neighbor BPT=1 EAM 1M +0.60% Neighbor 仅占 EAM 总时间的 4.6%,优化空间极小 同上

9.2 无效优化(负优化或零收益)

优化收益原因分析处理
Pair workgroup 64 -8.58% workgroup 越小,每个 CU 的 wave 数越少,并行度下降 代码已回退
Pair workgroup 128 -7.94% 性能随 workgroup 单调递增,Kokkos 自动选 1024 正确 代码已回退
Pair workgroup 256 -6.50%
Pair workgroup 512 -3.32%
DTK 25.04.4 升级 -0.23% 编译器/运行时版本迭代无性能差异 不升级
DTK 26.04 升级 -0.11%
fix nve/kk mask 快路径 -0.12% 分支预测失败,额外条件判断增加开销 代码已回退
fix nve/kk 单类型质量 -0.49% 类型检查开销超过计算简化收益 代码已回退
nbin/atoms/per/bin 扫描 无法测试 需 neigh/thread on,会改变 pair 算法,混淆比较 放弃
2 GPU (无 GPU-aware) 0.42× Comm 占 42%,数据在 CPU-GPU 间来回拷贝 升级到 GPU-aware
2 GPU (GPU-aware, LJ) 0.71-0.79× Comm 降到 8-30%,但 LJ 计算太轻无法摊薄通信 改用 EAM
2 GPU (GPU-aware, EAM 4M) 0.78× EAM 计算更密集,2/1 比从 0.78 提升到 0.87,趋势向好但未突破 1.0 需更大规模
2 GPU (GPU-aware, EAM 8M) 0.87×

9.3 关键经验总结

📌 LJ 基准不适合 GPU 优化:GPU 仅活跃 20%,Pair 占 6.8%。优化效果被放大(transpose +13.6% 在 EAM 上仅 +3.2%)
📌 EAM 是更合理的 GPU 基准:GPU 活跃 41%,Pair 占 36.8%,计算量 20.7× LJ
📌 访存优化收益随计算密度递减:transpose 在 LJ 上 +13.6%,EAM 上仅 +3.2%
📌 GPU 利用率被 Modify 限制:Modify 占 57-76% 时间,为 CPU 侧框架开销,源头上难以优化
📌 多 GPU 需 GPU-aware MPI + 计算密集势函数 + 大原子数:三个条件缺一不可

🔧 10. MPI 编译与 GPU-aware 配置

10.1 背景

LAMMPS 多 GPU 需要 MPI 支持。系统自带的 OpenMPI(GCC 8.5.0 编译)与当前 GCC 9.3.0 存在 ABI 不匹配,导致 MPI_Finalizedouble free crash。此外,无 GPU-aware 的 MPI 在每步通信时需要 CPU↔GPU 数据拷贝,通信开销极大。

10.2 编译环境

组件版本来源
GCC9.3.0module load compiler/gcc/9.3.0
DTK25.04.2module load compiler/dtk/25.04.2
UCX1.18.0module load mpi/ucx/1.18.0/dtk-25.04/shca
OpenMPI5.0.7源码编译

10.3 编译步骤

# 下载并编译 OpenMPI 5.0.7
wget https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.7.tar.gz
tar xzf openmpi-5.0.7.tar.gz && cd openmpi-5.0.7

# 加载依赖
module purge
module load compiler/gcc/9.3.0
module load compiler/dtk/25.04.2
module load <UCX_MODULE>

# 配置:启用 UCX 通信层 + ROCm GPU 加速器
./configure --prefix=$HOME/softwares/mpi/install \
  --enable-mpi-fortran=no \
  --with-ucx=<UCX_ROOT> \
  --with-rocm=<DTK_ROOT>

make -j32 && make install

10.4 GPU-aware MPI 组件

组件说明验证命令
accelerator: rocmGPU 直接内存访问,避免 CPU↔GPU 拷贝ompi_info --all | grep rocm
pml: ucxUCX 点对点通信层,支持 InfiniBand/RoCEompi_info --all | grep 'pml: ucx'
osc: ucxUCX 单边通信(RDMA)ompi_info --all | grep 'osc: ucx'
mpiext: rocmROCm MPI 扩展ompi_info --all | grep mpiext

10.5 LAMMPS MPI 构建

# 使用自编译 MPI 构建 LAMMPS
cmake -S lammps-22Jul2025/cmake -B build-mpi \
  -C cmake/presets/hygon-dcu-gfx936.cmake \
  -D CMAKE_CXX_COMPILER=$DTKROOT/bin/hipcc \
  -D BUILD_MPI=ON \
  -D MPI_CXX_COMPILER=$HOME/softwares/mpi/install/bin/mpicxx \
  -D MPI_CXX_INCLUDE_PATH=$HOME/softwares/mpi/install/include \
  -D MPI_CXX_LIBRARIES=$HOME/softwares/mpi/install/lib/libmpi.so

10.6 运行时配置

# Slurm 作业脚本关键配置
module load <UCX_MODULE>
export PATH=$HOME/softwares/mpi/install/bin:$PATH
export LD_LIBRARY_PATH=$HOME/softwares/mpi/install/lib:$LD_LIBRARY_PATH

# 启动命令:-pk kokkos gpu/aware on 启用 GPU 直接通信
mpirun -np 2 lmp -in input -k on g 1 -sf kk \
  -pk kokkos neigh/transpose on gpu/aware on

10.7 MPI 版本对比

MPI 版本2 GPU step/sCommshutdownGPU-aware
系统 MPI (GCC 8.5, 无 UCX)104.6542%crash
自编译 MPI (GCC 9.3, 无 UCX)104.6542%
GPU-aware MPI (GCC 9.3 + UCX+ROCm)176.9540%

GPU-aware MPI 使 2 GPU 性能提升 69%(105→177 step/s),Comm 时间从 20.2s 降到 11.4s(-43%)。这是通过 UCX+ROCm 避免 CPU↔GPU 数据拷贝实现的。

10.8 UCX 选择说明

DTK 25.04.2 不自带 UCX 库。测试环境通过 <UCX_MODULE> 提供带 ROCm 传输层的 UCX 组件。OpenMPI 5.0.7 通过 --with-ucx--with-rocm 链接相关组件,实现 GPU-aware 通信。

UCX 模块路径:<UCX_ROOT>

ROCm 路径:<DTK_ROOT>

📁 11. 最终文件结构

~/softwares/lammps/
├── lammps-22Jul2025/ # 源码 (Git 仓库)
│ ├── src/KOKKOS/
│ │ ├── npair_kokkos.cpp # Neighbor BPT=1 优化已保留
│ │ └── pair_kokkos.h # Pair workgroup 实验已回退
│ ├── lib/kokkos/
│ │ ├── cmake/ # gfx926/928/936/938 架构支持
│ │ └── core/src/HIP/ # wavefront 64 + 系统分配属性
│ ├── cmake/presets/
│ │ └── hygon-dcu-gfx936.cmake # 可复现构建 preset
│ └── tools/hygon/ # 构建脚本、基准、分析工具
│ ├── build-gfx936.sh # 版本隔离构建
│ ├── analyze-pmc.py # PMC 自动归约
│ ├── benchmark/ # 基准与 Slurm 作业
│ └── results/ # 实验结论 Markdown
├── install-dtk-25.04.2-gfx936/ # 基线二进制
├── install-pair-wg-*-gfx936/ # Pair 实验二进制(保留)
├── install-neighbor-bpt-*-gfx936/ # Neighbor 实验二进制(保留)
└── dcu-test/ # 原始 profiling 数据
├── hipprof-<run-id>/ # HIP trace 数据
├── pmc-<run-id>/ # PMC 原始 CSV
├── pair-workgroup-<run-id>/ # Pair 扫描日志
└── neighbor-bpt-<run-id>/ # Neighbor 扫描日志

🎯 12. 最终结论

推荐方案

在本报告所述硬件、软件版本与工作负载范围内,KOKKOS + HIP + neigh/transpose on 获得了最优综合表现。

12.1 架构与编译

gfx936 原生编译:hipcc → dcc(海光 DCU C 编译器),生成海光 ISA 代码
Kokkos 架构支持:gfx926/928/936/938 已注册到 cmake 和 HIP 核心文件
GPU-aware MPI 就绪:OpenMPI 5.0.7 + UCX 1.18.0 DTK + ROCm

12.2 有效优化

neigh/transpose on:LJ +13.6%,EAM +3.2%;为运行时选项,无需修改源码
KOKKOS 性能优于 GPU 包:同规模 EAM 1M 原子,72.9 vs 39.6 step/s(1.84×)

12.3 无效优化(已回退)

❌ Pair workgroup 64-512:慢 3.3-8.6%,Kokkos 自动选 1024 正确
❌ DTK 升级:25.04.4/26.04 无性能差异
❌ fix nve/kk 源码:mask 快路径 -0.12%,单类型质量 -0.49%
❌ BPT=1:LJ +4.3%,但 EAM 仅 +0.6%;已回退,当前证据不足以支持将其作为稳定且可泛化的优化

12.4 多 GPU 缩放

Pair Style模式1 GPU2 GPU4 GPU2/14/1
EAM 1MKOKKOS76.557.145.20.750.59
EAM 4MKOKKOS21.216.50.78
EAM 8MKOKKOS10.28.90.87
EAM 16MKOKKOS5.24.70.90
LJ 1MKOKKOS277.7198.30.71
Tersoff 1.1MKOKKOS195.0123.20.63
EAM 1MGPU 包39.6

EAM 2/1 比 0.78→0.87→0.90,趋势改善但未突破 1.0。GPU 包扩展性好(2/1=1.32)但单卡慢(~1.8× KOKKOS)。

12.5 CPU vs DCU 公平对比

对比原始报告修正后问题
加速比160×60×原始跨规模对比(32K CPU vs 256K DCU)不公平
加速趋势随原子数增大32K: 60× → 1M: ~172×(估算)

12.6 单 GPU 线性缩放

原子数step/sMatom-step/sPair%内存
1M72.576.036.7%0.16GB
4M21.285.032.8%0.64GB
8M10.281.933.8%1.2GB
16M5.282.632.2%2.4GB
25M3.280.232.0%3.8GB
32MOOM

Matom-step/s 稳定 80-85,线性缩放。32M OOM 因邻居列表初始分配 2000/atom 超 64GB。显存先于算力达到瓶颈。

12.7 关键经验

⚠️ LJ 不适合 GPU 基准:GPU 仅活跃 20%,优化效果被放大
⚠️ EAM 是合理的 GPU 基准:GPU 活跃 41%,Pair 占 36.8%
⚠️ 活跃计算阶段的设备利用率可接近 100%(HIP trace 采样),但端到端性能仍受 CPU 侧框架开销限制(Modify 占 57-76%)
⚠️ 显存先于算力瓶颈:32M 邻居列表初始分配 256GB > 64GB
⚠️ 多 GPU 三条件:GPU-aware MPI + 计算密集势函数 + 大原子数(每 GPU > 500K),缺一不可
⚠️ GPU 包 vs KOKKOS:GPU 包扩展性好但单卡慢,KOKKOS 单卡快但多 GPU 差

🔗 13. 上游贡献建议

13.1 Kokkos 上游

贡献内容文件状态
gfx926/928/936/938 架构支持添加海光 DCU 架构到 Kokkos cmake 和 HIP 核心kokkos_arch.cmake, KokkosCore_config.h.in, Kokkos_HIP_Instance.hpp, Kokkos_HIP_IsXnack.hpp原型已验证,待上游评审
wavefront 64 支持gfx936 使用 64-wide wavefront,与 gfx906 相同Kokkos_HIP_Instance.hpp本地实现已验证
系统分配访问属性海光 DCU 不支持系统内存直接访问Kokkos_HIP_IsXnack.hpp本地实现已验证

13.2 LAMMPS 上游

贡献内容状态
构建 presetcmake/presets/hygon-dcu-gfx936.cmake:可复现的海光 DCU 构建配置待提交
性能基准KOKKOS vs GPU 包对比数据,多 GPU 缩放分析可供文档引用
推荐配置neigh/transpose on 对 gfx936 有 +3~14% 提升运行时选项,无需代码

13.3 ROCm/HIP 兼容生态

贡献内容状态
gfx936 性能数据LJ、EAM、Tersoff、ReaxFF 在 80 CU 上的单卡/多卡性能可供文档引用
GPU-aware MPI 方案OpenMPI 5.0.7 + UCX 1.18.0 DTK + ROCm 编译方法已文档化
验证方法PMC 分析工具、HIP trace 工作流、动态基准tools/hygon/