File size: 1,499 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
#!/bin/bash
# preflight_check.sh - 训练前预检脚本
# 用法: bash templates/preflight_check.sh [data_file1] [data_file2] ...
#
# 检查项:
#   1. ONESCIENCE_DATASETS_DIR 环境变量
#   2. 数据文件是否存在
#   3. DCU/GPU 状态
#   4. 打印节点信息

ERRORS=0

echo "========================================="
echo "Node: $(hostname)"
echo "Time: $(date)"
echo "========================================="

# 检查数据集目录环境变量
if [ -z "${ONESCIENCE_DATASETS_DIR:-}" ]; then
    echo "[ERROR] ONESCIENCE_DATASETS_DIR 未设置,请先 source env.sh"
    ERRORS=$((ERRORS + 1))
fi

# 检查数据文件是否存在
for f in "$@"; do
    # 跳过空参数
    [ -z "$f" ] && continue
    # 展开环境变量后检查
    expanded=$(eval echo "$f")
    if [ ! -e "$expanded" ]; then
        echo "[ERROR] 数据文件不存在: $expanded"
        ERRORS=$((ERRORS + 1))
    else
        echo "[OK] 数据文件: $expanded"
    fi
done

# 打印 DCU/GPU 状态
echo "-----------------------------------------"
echo ">>> DCU/GPU 状态:"
if command -v hy-smi &>/dev/null; then
    hy-smi
elif command -v rocm-smi &>/dev/null; then
    rocm-smi
elif command -v nvidia-smi &>/dev/null; then
    nvidia-smi
else
    echo "[WARN] 未找到 GPU 监控工具 (hy-smi/rocm-smi/nvidia-smi)"
fi
echo "-----------------------------------------"

if [ $ERRORS -gt 0 ]; then
    echo "[FATAL] 预检发现 $ERRORS 个错误,终止训练"
    exit 1
fi

echo "[OK] 预检通过"