forked from flagos-ai/TransformerEngine-FL
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup_kunlun.sh
More file actions
executable file
·113 lines (96 loc) · 4.1 KB
/
Copy pathsetup_kunlun.sh
File metadata and controls
executable file
·113 lines (96 loc) · 4.1 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/env bash
# KunlunXin XPU environment setup for TransformerEngine-FL.
set -euo pipefail
WORKSPACE="${GITHUB_WORKSPACE:-$(pwd)}"
export PLATFORM="${PLATFORM:-kunlunxin}"
export TE_FL_SKIP_CUDA="${TE_FL_SKIP_CUDA:-1}"
export SKIP_CUDA_BUILD="${SKIP_CUDA_BUILD:-1}"
export NVTE_WITH_CUDA="${NVTE_WITH_CUDA:-0}"
export NVTE_WITH_MACA="${NVTE_WITH_MACA:-0}"
export TE_WITH_NCCL="${TE_WITH_NCCL:-0}"
export NVTE_FRAMEWORK="${NVTE_FRAMEWORK:-pytorch}"
export TE_FL_PREFER="${TE_FL_PREFER:-vendor}"
export DISTRIBUTED_BACKEND="${DISTRIBUTED_BACKEND:-nccl}"
export NVTE_FLASH_ATTN="${NVTE_FLASH_ATTN:-0}"
export NVTE_FUSED_ATTN="${NVTE_FUSED_ATTN:-0}"
export NVTE_UNFUSED_ATTN="${NVTE_UNFUSED_ATTN:-1}"
echo "===== Activate KunlunXin Python environment ====="
if [ -f /root/miniconda/etc/profile.d/conda.sh ]; then
source /root/miniconda/etc/profile.d/conda.sh
conda activate "${CONDA_ENV:-python310_torch29_cuda}"
elif [ -f /opt/conda/etc/profile.d/conda.sh ]; then
source /opt/conda/etc/profile.d/conda.sh
conda activate "${CONDA_ENV:-base}"
elif [ -f /opt/miniconda3/etc/profile.d/conda.sh ]; then
source /opt/miniconda3/etc/profile.d/conda.sh
conda activate "${CONDA_ENV:-base}"
else
echo "WARNING: No supported conda installation found; using current environment"
fi
echo "===== Configure KunlunXin runtime ====="
if [ -n "${XPU_HOME:-}" ] && [ -d "${XPU_HOME}/lib" ]; then
export LD_LIBRARY_PATH="${XPU_HOME}/lib:${LD_LIBRARY_PATH:-}"
fi
if [ -d /opt/kunlunxin/lib ]; then
export LD_LIBRARY_PATH="/opt/kunlunxin/lib:${LD_LIBRARY_PATH:-}"
fi
if [ -n "${GITHUB_ENV:-}" ]; then
{
echo "PLATFORM=$PLATFORM"
echo "TE_FL_SKIP_CUDA=$TE_FL_SKIP_CUDA"
echo "SKIP_CUDA_BUILD=$SKIP_CUDA_BUILD"
echo "NVTE_WITH_CUDA=$NVTE_WITH_CUDA"
echo "NVTE_WITH_MACA=$NVTE_WITH_MACA"
echo "TE_WITH_NCCL=$TE_WITH_NCCL"
echo "NVTE_FRAMEWORK=$NVTE_FRAMEWORK"
echo "TE_FL_PREFER=$TE_FL_PREFER"
echo "DISTRIBUTED_BACKEND=$DISTRIBUTED_BACKEND"
echo "NVTE_FLASH_ATTN=$NVTE_FLASH_ATTN"
echo "NVTE_FUSED_ATTN=$NVTE_FUSED_ATTN"
echo "NVTE_UNFUSED_ATTN=$NVTE_UNFUSED_ATTN"
echo "PATH=$PATH"
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}"
} >> "$GITHUB_ENV"
fi
echo "Python: $(which python3) ($(python3 --version 2>&1))"
echo "XPU devices: $(find /dev -maxdepth 1 -name 'xpu[0-9]*' -printf '%f ' 2>/dev/null || true)"
echo "===== Install test dependencies ====="
python3 -m pip install --disable-pip-version-check \
pytest==8.2.1 expecttest coverage pytest-cov \
onnxruntime onnxruntime_extensions
echo "===== Install TransformerEngine-FL Python/plugin layer ====="
cd "$WORKSPACE"
python3 -m pip uninstall -y transformer_engine transformer_engine_torch || true
TE_FL_SKIP_CUDA=1 SKIP_CUDA_BUILD=1 python3 setup.py install
echo "===== Verify KunlunXin environment ====="
python3 - <<'PY'
import importlib.metadata as metadata
import os
import torch
import transformer_engine_klx_torch
from transformer_engine.plugin.core.backends.vendor.kunlunxin.kunlunxin import (
KunLunXinBackend,
)
from transformer_engine.plugin.core.manager import get_default_manager
print("torch:", torch.__version__)
print("pytest:", metadata.version("pytest"))
print("coverage:", metadata.version("coverage"))
print("pytest-cov:", metadata.version("pytest-cov"))
print("onnxruntime:", metadata.version("onnxruntime"))
if not os.path.exists("/dev/xpu0"):
raise SystemExit("KunlunXin XPU device is not available")
backend = KunLunXinBackend()
if not backend.is_available():
raise SystemExit("vendor.kunlunxin backend is not available")
selected_impl = get_default_manager().get_selected_impl_id("generic_gemm")
if selected_impl != "vendor.kunlunxin":
raise SystemExit(
"generic_gemm did not select vendor.kunlunxin; selected "
+ repr(selected_impl)
)
print("transformer_engine_klx_torch:", transformer_engine_klx_torch.__file__)
print("vendor.kunlunxin backend is available")
print("generic_gemm selected implementation:", selected_impl)
PY
python3 tests/pytorch/test_sanity_import.py
echo "===== KunlunXin environment setup complete ====="