- platforms/ascend_910c.env: 8-card 910C config (16 dies, 64GB HBM/die), Ascend Docker Runtime, ASCEND_VISIBLE_DEVICES device selection - scripts/common/platform.sh: auto-detect 910C via npu-smi + Huawei PCI IDs - scripts/common/npu_smi_sampler.py: standalone npu-smi -> nvidia-smi CSV sampler so parse_backend.py needs no changes - experiments/910c/glm52_910c_vllm_tp_dp_matrix/: GLM-5.2 (w4a8c8) experiment, model present on host, ready for smoke after image load - experiments/910c/dsv4_910c_vllm_tp_dp_matrix/: DSV4-Flash experiment (placeholder MODEL_PATH, weights not yet downloaded) - envs/ASCEND_910C_ENV_SETUP.md: full onboarding guide (permissions, image load, Ascend Docker Runtime, NPU monitor, known pitfalls) - Both experiments: TP2/DP4 + TP4/DP2 + TP8/DP1, matrix.json capped at 128K context per 64GB HBM/die
68 lines
2.4 KiB
Bash
Executable File
68 lines
2.4 KiB
Bash
Executable File
|
|
#!/usr/bin/env bash
|
|
# Platform loader.
|
|
# Usage: source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../scripts/common/platform.sh"
|
|
|
|
set -Eeuo pipefail
|
|
|
|
_PLATFORM_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${_PLATFORM_DIR}/../.." && pwd)"
|
|
|
|
# Auto-detect platform if not set.
|
|
if [[ -z "${PLATFORM:-}" ]]; then
|
|
# Capture xpu-smi output first; piping it directly can trigger SIGPIPE under
|
|
# pipefail when grep -q exits early.
|
|
_XPU_SMI_OUT=""
|
|
if command -v xpu-smi >/dev/null 2>&1; then
|
|
_XPU_SMI_OUT=$(xpu-smi 2>/dev/null || true)
|
|
fi
|
|
if [[ -n "$_XPU_SMI_OUT" ]] && grep -qiE "P800|Kunlun" <<< "$_XPU_SMI_OUT"; then
|
|
PLATFORM="kunlun_p800"
|
|
elif lspci 2>/dev/null | grep -qiE "XPU|Kunlun"; then
|
|
PLATFORM="kunlun_p800"
|
|
elif command -v npu-smi >/dev/null 2>&1; then
|
|
# Huawei Ascend NPU. npu-smi info lists cards like "Ascend910" / "910C".
|
|
_NPU_SMI_OUT=$(npu-smi info 2>/dev/null || true)
|
|
if [[ -n "$_NPU_SMI_OUT" ]] && grep -qiE "Ascend910|Ascend 910|910C|910c" <<< "$_NPU_SMI_OUT"; then
|
|
PLATFORM="ascend_910c"
|
|
else
|
|
PLATFORM="ascend_910c"
|
|
fi
|
|
unset _NPU_SMI_OUT
|
|
elif lspci 2>/dev/null | grep -qiE "Huawei.*a12d|Huawei.*a12e|d100|d80"; then
|
|
# Ascend 910 series exposes Huawei System-peripheral PCI IDs (a12d/a12e).
|
|
PLATFORM="ascend_910c"
|
|
elif command -v nvidia-smi >/dev/null 2>&1; then
|
|
_GPU_NAME=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -n 1 || true)
|
|
if [[ -n "$_GPU_NAME" ]] && grep -qiE "RTX 6000D|PRO 6000D" <<< "$_GPU_NAME"; then
|
|
PLATFORM="nvidia_rtx6000d"
|
|
elif [[ -n "$_GPU_NAME" ]] && grep -qi "H20" <<< "$_GPU_NAME"; then
|
|
PLATFORM="nvidia_h20"
|
|
else
|
|
PLATFORM="nvidia_h200"
|
|
fi
|
|
unset _GPU_NAME
|
|
else
|
|
echo "ERROR: Could not auto-detect PLATFORM. Set PLATFORM env var explicitly." >&2
|
|
exit 1
|
|
fi
|
|
unset _XPU_SMI_OUT
|
|
echo "Auto-detected platform: ${PLATFORM}"
|
|
fi
|
|
|
|
PLATFORM_FILE="${ROOT_DIR}/platforms/${PLATFORM}.env"
|
|
if [[ ! -f "$PLATFORM_FILE" ]]; then
|
|
echo "ERROR: Platform config not found: ${PLATFORM_FILE}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# shellcheck source=/dev/null
|
|
source "$PLATFORM_FILE"
|
|
|
|
# Export key variables if not already set.
|
|
export CHIP="${CHIP:-$PLATFORM}"
|
|
export ACCELERATOR="${ACCELERATOR:-$PLATFORM}"
|
|
export HARDWARE="${HARDWARE:-$PLATFORM}"
|
|
export DEFAULT_PORT="${DEFAULT_PORT:-30000}"
|
|
export MODEL_ROOT="${MODEL_ROOT:-/data1/models}"
|