已关闭
[Usage]: deepseek32预训练问题:RuntimeError: [7] is setting up HCCL communicator and retrieving hcclUniqueId from [0] via c10d key-value store by key '6:7' #1187
fandengdong创建于 2月12日关闭于 2月25日
2月12日 修改了issue 的描述
tichang
2月12日 评论:
2月12日 评论:
您好,能提供一下您当前的pretrain_deepseek32_671b_4k_A3_ptd.sh脚本内容吗


2月12日 添加了label:usage
2月12日 添加了label:pending
tichang
2月12日 评论:
2月12日 评论:
/label add pending


fandengdong
2月12日 评论:
2月12日 评论:
您好,能提供一下您当前的pretrain_deepseek32_671b_4k_A3_ptd.sh脚本内容吗
#!/bin/bash
export CUDA_DEVICE_MAX_CONNECTIONS=1
export CPU_AFFINITY_CONF=1
export TASK_QUEUE_ENABLE=2
export PYTORCH_NPU_ALLOC_CONF="expandable_segments:True"
export HCCL_CONNECT_TIMEOUT=3600
export STREAMS_PER_DEVICE=32
# NPUS_PER_NODE=16
# MASTER_ADDR=localhost #主节点IP
# MASTER_PORT=6000
# NNODES=32
# NODE_RANK=0
# WORLD_SIZE=$(($NPUS_PER_NODE*$NNODES))
# CKPT_SAVE_DIR="your model save ckpt path"
# DATA_PATH="your data path"
# TOKENIZER_PATH="your tokenizer path"
# CKPT_LOAD_DIR="your model ckpt path"
# 处理传入的参数:
# 1. 模型加载路径(tokenizer路径相同)
# 2. 预处理数据集通配符
CKPT_LOAD_DIR=$1
DATA_GLOB_PATTERN=$2
TOKENIZER_PATH=$CKPT_LOAD_DIR
# 日志与实验命名
# 从 TRAIN_SCRIPT 路径中提取文件名(不含路径)
script_filename=$(basename "$0")
# 提取不带 .sh 后缀的前缀
script_prefix="${script_filename%.sh}"
# 构造 log_dir,使用提取出的前缀
log_dir=TrainResults/$script_prefix
# date=$(date '+%Y%m%d_%H%M%S')
date=$MINDX_TASK_ID
log_dir=${log_dir}/$date
CKPT_SAVE_DIR=$log_dir
mkdir -p $log_dir
cp "$0" "$log_dir"
# 数据集自动处理
# PATTERN="part*"
# ===========================================
# 🔍 自动发现数据路径(生成 no_ext_files 数组)
# ===========================================
echo "[INFO] 正在从 DATA_GLOB_PATTERN='$DATA_GLOB_PATTERN'自动发现数据文件..."
files=($DATA_GLOB_PATTERN)
for f in "${files[@]}"; do
if [[ -f "$f" ]]; then
dir=$(dirname "$f")
base=$(basename "$f" .bin)
full_path_no_ext="$dir/$base"
no_ext_files+=("$full_path_no_ext")
fi
done
echo "[INFO] 发现以下数据:"
printf ' - %s\n' "${no_ext_files[@]}"
# 构建安全转义的路径参数字符串(用于 SSH 命令)
DATA_PATH=""
for path in "${no_ext_files[@]}"; do
printf -v escaped '%q' "$path"
DATA_PATH+="$escaped "
done
export ASCEND_PROCESS_LOG_PATH=$log_dir/plogs/$XDL_IP
export TTP_LOG_PATH=$log_dir/ttplogs/$XDL_IP-$RANK
export TRAIN_LOG_PATH=$log_dir/trainlogs/$XDL_IP-$RANK
mkdir -p $log_dir/plogs
mkdir -p $log_dir/ttplogs
mkdir -p $log_dir/trainlogs
TP=2
PP=8
EP=32
CP=1
CP_TYPE='ulysses_cp_algo'
NUM_LAYERS=64
SEQ_LEN=4096
MBS=1
GBS=8192
DISTRIBUTED_ARGS="
--nproc_per_node $NPUS_PER_NODE \
--nnodes $NNODES \
--node_rank $NODE_RANK \
--master_addr $MASTER_ADDR \
--master_port $MASTER_PORT
"
MLA_ARGS="
--multi-latent-attention \
--qk-pos-emb-head-dim 64 \
--qk-head-dim 128 \
--q-lora-rank 1536 \
--kv-lora-rank 512 \
--v-head-dim 128 \
--qk-layernorm \
--mla-mm-split \
--mla-fa-without-pad \
"
MOE_ARGS="
--moe-grouped-gemm \
--moe-permutation-async-comm \
--moe-token-dispatcher-type alltoall \
--moe-permute-fusion \
--first-k-dense-replace 3 \
--moe-layer-freq 1 \
--moe-shared-expert-intermediate-size 2048 \
--num-experts 256 \
--moe-router-topk 8 \
--moe-ffn-hidden-size 2048 \
--moe-router-load-balancing-type none \
--moe-router-num-groups 8 \
--moe-router-group-topk 4 \
--moe-router-topk-scaling-factor 2.5 \
--moe-aux-loss-coeff 0.0001 \
--seq-aux \
--moe-router-score-function sigmoid \
--moe-router-enable-expert-bias \
--moe-router-dtype fp32 \
"
MTP_ARGS="
--mtp-num-layers 1 \
--mtp-loss-scaling-factor 0.3 \
"
DUALPIPE_ARGS="
--moe-fb-overlap \
--schedules-method dualpipev \
"
MEM_ARGS="
--mtp-mem-efficient-logits \
--swap-optimizer \
--recompute-granularity full \
--recompute-method block \
--recompute-num-layers 8 \
"
ROPE_ARGS="
--beta-fast 32 \
--beta-slow 1 \
--rope-scaling-factor 40 \
--rope-scaling-mscale 1.0 \
--rope-scaling-mscale-all-dim 1.0 \
--rope-scaling-original-max-position-embeddings 4096 \
--rope-scaling-type yarn
"
# --noop-layers 61,62,63 \
# --noop-layers 93,94,95 \
GPT_ARGS="
--transformer-impl local \
--spec mindspeed_llm.tasks.models.spec.deepseek_spec layer_spec \
--reset-attention-mask \
--gemm-gradient-accumulation-fusion \
--noop-layers 61,62,63 \
--manual-gc \
--manual-gc-interval 50 \
--no-shared-storage \
--use-distributed-optimizer \
--use-flash-attn \
--use-mcore-models \
--tensor-model-parallel-size ${TP} \
--pipeline-model-parallel-size ${PP} \
--expert-model-parallel-size ${EP} \
--expert-tensor-parallel-size 1 \
--sequence-parallel \
--context-parallel-size ${CP} \
--context-parallel-algo ${CP_TYPE} \
--num-layers ${NUM_LAYERS} \
--hidden-size 7168 \
--ffn-hidden-size 18432 \
--num-attention-heads 128 \
--tokenizer-type PretrainedFromHF \
--tokenizer-name-or-path ${TOKENIZER_PATH} \
--seq-length ${SEQ_LEN} \
--max-position-embeddings 163840 \
--micro-batch-size ${MBS} \
--global-batch-size ${GBS} \
--make-vocab-size-divisible-by 1 \
--lr 1.0e-5 \
--train-iters 2000 \
--lr-decay-style cosine \
--untie-embeddings-and-output-weights \
--disable-bias-linear \
--attention-dropout 0.0 \
--init-method-std 0.02 \
--hidden-dropout 0.0 \
--position-embedding-type rope \
--normalization RMSNorm \
--use-fused-rotary-pos-emb \
--use-rotary-position-embeddings \
--use-fused-swiglu \
--use-fused-rmsnorm \
--swiglu \
--no-masked-softmax-fusion \
--attention-softmax-in-fp32 \
--min-lr 1.0e-7 \
--weight-decay 1e-2 \
--lr-warmup-iters 500 \
--clip-grad 1.0 \
--adam-beta1 0.9 \
--adam-beta2 0.999 \
--initial-loss-scale 65536 \
--vocab-size 129280 \
--padded-vocab-size 129280 \
--rotary-base 10000 \
--norm-epsilon 1e-6 \
--no-load-optim \
--no-load-rng \
--bf16 \
--distributed-timeout-minutes 120 \
"
DATA_ARGS="
--data-path $DATA_PATH \
--split 100,0,0
"
OUTPUT_ARGS="
--log-interval 1 \
--save-interval 2000 \
--eval-interval 2000 \
--eval-iters 0 \
--no-save-optim \
--no-save-rng
"
python -m torch.distributed.launch $DISTRIBUTED_ARGS pretrain_gpt.py \
$GPT_ARGS \
$DATA_ARGS \
$OUTPUT_ARGS \
$MLA_ARGS \
$DUALPIPE_ARGS \
$MEM_ARGS \
$ROPE_ARGS \
$MOE_ARGS \
$MTP_ARGS \
--save $CKPT_SAVE_DIR \
--load $CKPT_LOAD_DIR \
--transformer-impl local \
--distributed-backend nccl 2>&1 | tee ${TRAIN_LOG_PATH}.log


baymax_591
2月25日 评论:
2月25日 评论:
@fandengdong 你好,这个问题解决了吗,碰到了相同的问题


tichang
2月25日 评论:
2月25日 评论:
该问题是由环境引起的,并非 MindSpeed-LLM 框架引入
由裸机环境更换为统一的docker镜像后报错不再出现。


tichang
2月25日 评论:
2月25日 评论:
@fandengdong 你好,这个问题解决了吗,碰到了相同的问题
如果您也有类似的问题,请尝试检查不同机器之间的环境,保证不同机器环境之间一致,并测试多机之间能否正常打通。
希望我的回答有帮到您


tichang
2月25日 评论:
2月25日 评论:
如果您目前没有其他问题,我们将根据流程关闭此 issue。
如后续有新的疑问或补充内容,欢迎随时重新打开本 issue,或另起一个新的 issue 进行提问。
感谢您的理解与支持!


2月25日 添加了label:resolved;删除了label:pending
2月25日 issue状态由 TODO 改变为 DONE
2月25日 关闭了 issue
2月25日 将 tichang 设为负责人
fandengdong
3月3日 评论:
3月3日 评论:
该问题是由环境引起的,并非 MindSpeed-LLM 框架引入
由裸机环境更换为统一的docker镜像后报错不再出现。
我们在镜像中利用k8s拉任务也有遇到过这种情况,有一定随机性。


fandengdong
3月3日 评论:
3月3日 评论:
@fandengdong 你好,这个问题解决了吗,碰到了相同的问题
最近,在启动脚本中添加了算子预编译的指令,最近一天暂时没有遇到这个问题了。
python -c "import mindspeed; from mindspeed.op_builder import GMMOpBuilder; GMMOpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import GMMV2OpBuilder; GMMV2OpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import MatmulAddOpBuilder; MatmulAddOpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import MoeTokenPermuteOpBuilder; MoeTokenPermuteOpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import MoeTokenUnpermuteOpBuilder; MoeTokenUnpermuteOpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import RotaryPositionEmbeddingOpBuilder; RotaryPositionEmbeddingOpBuilder().load()" &
python -c "import mindspeed; from mindspeed.op_builder import GroupMatmulAddOpBuilder; GroupMatmulAddOpBuilder().load()"


在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。
环境信息
使用场景及问题
mindspeed-llm版本:master分支(2025-2-11)
训练任务:deepseek-V32预训练
训练配置:默认配置examples/mcore/deepseek32/pretrain_deepseek32_671b_4k_A3_ptd.sh
资源配置:256节点(1024 910C卡)
镜像:cis-pengcheng.cmecloud.cn/ascendhub/mindspeed-llm:openeuler22.03-mindspeed-llm-2.3.0-a3-arm
报错信息:
[rank2044]: losses_reduced = forward_backward_func( [rank2044]: File "/home/fdd/workspace/MindSpeed-LLM-0211/MindSpeed/mindspeed/core/transformer/moe/moe_feature/fb_overlap/vpp_schedules.py", line 581, in forward_backward_pipelining_with_interleaving [rank2044]: input_tensors[0].append(p2p_communication.recv_forward(tensor_shape, config)) [rank2044]: File "/home/fdd/workspace/MindSpeed-LLM-0211/MindSpeed-LLM/megatron/core/pipeline_parallel/p2p_communication.py", line 440, in recv_forward [rank2044]: input_tensor, _, _ = _communicate( [rank2044]: File "/home/fdd/workspace/MindSpeed-LLM-0211/MindSpeed-LLM/megatron/core/pipeline_parallel/p2p_communication.py", line 375, in _communicate [rank2044]: p2p_reqs = p2p_func( [rank2044]: File "/home/fdd/workspace/MindSpeed-LLM-0211/MindSpeed-LLM/megatron/core/pipeline_parallel/p2p_communication.py", line 211, in _p2p_ops [rank2044]: recv_prev_req = torch.distributed.irecv( [rank2044]: File "/home/fdd/workspace/MindSpeed-LLM-0211/MindSpeed-LLM/mindspeed_llm/tasks/high_availability/communication_patch.py", line 80, in wrapper [rank2044]: return fn(*args, **kwargs) [rank2044]: File "/home/fdd/workspace/miniconda3/envs/mindspeed_llm_0211/lib/python3.10/site-packages/torch/distributed/distributed_c10d.py", line 2404, in irecv [rank2044]: return group.recv([tensor], group_src, tag) [rank2044]: RuntimeError: [7] is setting up HCCL communicator and retrieving hcclUniqueId from [0] via c10d key-value store by key '6:7', but store->get('6:7') got error: failed to recv, got 0 bytes [rank2044]: Exception raised from recvBytes at /pytorch/torch/csrc/distributed/c10d/Utils.hpp:678 (most recent call first): [rank2044]: frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0xd4 (0xffff97c5fea4 in /home/fdd/workspace/miniconda3/envs/mindspeed_llm_0211/lib/python3.10/site-packages/torch/lib/libc10.so) [rank2044]: frame #1: <unknown function> + 0x5db8060 (0xffff9d69d060 in /home/fdd/workspace/miniconda3/envs/mindspeed_llm_0211/lib/python3.10/site-packages/torch/lib/libtorch_cpu.so)做过的尝试:
欢迎加入社区,感谢您对社区的贡献 🎉!