File size: 4,865 Bytes
a244197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/bash
# FastEq-hip 扩展安装脚本(OneScience MACE matchem 环境)
# 前置条件:已安装好 OneScience 的 matchem 环境。
# 本脚本安装 FastEq-hip 及 patch 后的 cuequivariance-torch,
# 以实现 MACE 模型在 DCU 上的训练和推理加速。
#
# 使用方法:
#   cd /public/home/easyscience2024/wangrui/onescience/examples/matchem/mace/fasteq 
#   bash install.sh

set -e

# =============================================================================
# 1. 环境初始化
# =============================================================================
# 必须先加载 module,再激活 conda;否则 sghpcdas 会覆盖 conda 环境变量。
source ~/.bashrc

module load sghpcdas/25.6
module load sghpc-mpi-gcc/26.3

conda activate matchem_opt

# libgalaxyhip.so.5 位于 DTK 的 lib/ 和 hip/lib/ 下,但不在默认 LD_LIBRARY_PATH 中。
# 不加此路径会导致导入 torch/fasteq 时报错:
#   ImportError: libgalaxyhip.so.5: cannot open shared object file
export LD_LIBRARY_PATH="/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/lib:/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/hip/lib:${LD_LIBRARY_PATH}"

# DTK 的 cmake 配置查找 amd_comgr,但 CMAKE_PREFIX_PATH 默认为空,需要显式指定。
export CMAKE_PREFIX_PATH="/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/dcc/comgr/lib64/cmake/amd_comgr:${CMAKE_PREFIX_PATH}"

# FastEq-hip 编译需要显式声明后端为 HIP,否则默认回退到 CUDA 导致找不到 nvcc。
export FASTEQ_BACKEND=hip
export ROCM_PATH=/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4
export HIP_PATH=/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4

# CMake 3.26 的 HIP 编译器 ABI 检测阶段(try_compile)不会继承主项目的 cache 变量,
# 但会读取 <Package>_DIR 环境变量。若不设置,会因找不到 amd_comgr 而报错。
export amd_comgr_DIR=/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/dcc/comgr/lib64/cmake/amd_comgr

# =============================================================================
# 2. FastEq-hip 源码路径
# =============================================================================
# 默认路径:与 onescience 项目同级目录。
# 可通过环境变量覆盖:FASTEQ_HIP_ROOT=/your/path bash install.sh
FASTEQ_HIP_ROOT="${FASTEQ_HIP_ROOT}"

if [[ ! -d "$FASTEQ_HIP_ROOT" ]]; then
    echo "错误:FastEq-hip 源码未找到于 $FASTEQ_HIP_ROOT"
    echo "请先克隆仓库,或通过 FASTEQ_HIP_ROOT 环境变量指定正确路径。"
    exit 1
fi

echo ">>> FastEq-hip 源码路径: $FASTEQ_HIP_ROOT"

# =============================================================================
# 3. 安装 FastEq-hip
# =============================================================================
# PYTHONNOUSERSITE=1 避免使用 ~/.local 下的旧版 setuptools(59.8.0),
# 该版本会导致 editable_wheel 构建失败(KeyError: 'unix_user')。
#
# 注意:FastEq-hip 的 setup.py 中 HIP 后端的 extra_cmake_args 需补充两项:
#   -DCMAKE_HIP_COMPILER=/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/llvm/bin/clang++
#   -Damd_comgr_DIR=/public/software/sghpc_sdk.bak/Linux_x86_64/26.3/dtk/dtk-25.04.4/dcc/comgr/lib64/cmake/amd_comgr
# 原因:CMake 3.26 不支持将 hipcc wrapper 直接作为 CMAKE_HIP_COMPILER,
# 必须使用 ROCm 的 clang++;且 try_compile 阶段不会继承 cache 变量中的 amd_comgr_DIR,
# 需要通过环境变量(已在上方导出)或 cmake 参数显式传递。
echo ">>> 正在安装 FastEq-hip(editable 模式)..."
PYTHONNOUSERSITE=1 pip install -r "$FASTEQ_HIP_ROOT/requirements.txt"
PYTHONNOUSERSITE=1 pip install -e "$FASTEQ_HIP_ROOT" --no-build-isolation

# =============================================================================
# 4. 安装 patch 后的 cuequivariance-torch
# =============================================================================
# cuequivariance==0.8.0 基础包已由 OneScience matchem 安装。
# 此处只需覆盖安装本地子模块中的 HIP patch 版本。
echo ">>> 正在安装 patched cuequivariance-torch(editable 模式)..."
PYTHONNOUSERSITE=1 pip install -e "$FASTEQ_HIP_ROOT/3rdparty/cuequivariance_torch/cuequivariance_torch" --no-build-isolation

# =============================================================================
# 5. 验证安装
# =============================================================================
echo ">>> 验证导入..."
python -c "import fasteq; print('  fasteq:', fasteq.__file__)"
python -c "import cuequivariance_torch as cuet; print('  cuequivariance_torch:', cuet.__file__)"

echo ">>> FastEq-hip 扩展安装成功!"
echo ">>> 现在可以运行 MACE 训练,并传入 --enable_cueq 启用 FastEq 加速。"