超算中心海光异构卡dcu bw 64G显卡报错 nccl通讯错误,无法通过设置来解决的办法,需要安装shca IB卡驱动

超算中心海光异构卡dcu bw 64G显卡报错 无法通过设置来解决,通过新增服务器跳过显卡

flash_attn: disabled HOSTQUEUE <0x1921b670>: >>>>>>>> DUMP KERNEL ARGS: size: 160 <<<<<<<<<

00 40 83 00 00 00 00 00 00 00 90 01 00 00 00 00

00 40 83 00 00 00 00 00 00 00 b4 4e e1 7f 00 00

00 00 b4 4e e1 7f 00 00 00 00 60 d0 d6 7f 00 00

00 80 6f 31 e2 7f 00 00 00 00 80 3f 00 00 00 00

00 14 00 00 01 00 00 00 00 14 00 00 01 00 00 00

00 14 00 00 01 00 00 00 00 14 00 00 01 00 00 00

00 14 00 00 90 06 00 00 01 00 00 00 00 14 00 00

00 00 00 00 14 00 00 00 07 00 00 00 00 00 00 00

07 00 00 00 93 24 49 12 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

HOSTQUEUE <0x1921b670>: >>>>>>>> DUMP KERNEL ARGS PTR INFO <<<<<<<<<

HOSTQUEUE <0x1921b670>: ptr arg index: 3, ptr: 0x7fe14eb40000

HOSTQUEUE <0x1921b670>: origin ptr: 0x7fe14d200000, size byte: 113246208

HOSTQUEUE <0x1921b670>: ptr arg index: 4, ptr: 0x7fe14eb40000

HOSTQUEUE <0x1921b670>: origin ptr: 0x7fe14d200000, size byte: 113246208

HOSTQUEUE <0x1921b670>: ptr arg index: 5, ptr: 0x7fd6d0600000

HOSTQUEUE <0x1921b670>: origin ptr: 0x7fd6d0600000, size byte: 52428800

HOSTQUEUE <0x1921b670>: ptr arg index: 6, ptr: 0x7fe2316f8000

HOSTQUEUE <0x1921b670>: origin ptr: 0x7fe22ec00000, size byte: 88080384

HOSTQUEUE <0x1921b670>: >>>>>>>> DUMP AQL 0x7fe93e825000 PACKET WITH INDEX 217545 <<<<<<<<<

HOSTQUEUE <0x1921b670>: >>>>>>>> MATCH KERNEL COMMAND <<<<<<<<<

HOSTQUEUE <0x1921b670>: header: 0xb02

HOSTQUEUE <0x1921b670>: setup: 3

HOSTQUEUE <0x1921b670>: workgroup: x:256, y:1, z:1

HOSTQUEUE <0x1921b670>: grid: x:2150400, y:1, z:1

HOSTQUEUE <0x1921b670>: group_segment_size: 6144

HOSTQUEUE <0x1921b670>: private_segment_size: 0

HOSTQUEUE <0x1921b670>: completion_signal: 0x0

HOSTQUEUE <0x1921b670>: kernel_object: 0x7fe4a82424c0

HOSTQUEUE <0x1921b670>: device id: 0

Invalid address access: 0x7fde7654c000, Error code: 3.

KERNEL VMFault !!! <<<<<<

PID: 6011, SIGNAL: 0 !!! <<<<<<

还是一样

双卡提示ncll 错误

原因,问了客服

问遍 几乎所有ai ,都没有找到正确答案:

claude gmini gpt doubao kimi

客服回答

老师您好,看到您使用的是113组,该组资源使用的是shca IB卡 ,需要安装下插件,目前在您/public/home/aaaa/IB 路径放了脚本,您后续在notebook中使用root权限运行下bash mlxtoshca.sh ,然后计算的时候再添加如下参数测试下

export GLOO_SOCKET_IFNAME="eth0"

export NCCL_SOCKET_IFNAME="eth0"

export NCCL_IB_HCA=shca_0:1,shca_1:1,shca_2:1,shca_3:1

export HSA_FORCE_FINE_GRAIN_PCIE=1

export NCCL_IB_DISABLE=0

export NCCL_NET_PLUGIN=shca

export NCCL_DEBUG=INFO

解决方法1,笨办法(临时办法不建议)

方法二 ,安装shca IB卡驱动

老师您好,看到您使用的是113组,该组资源使用的是shca IB卡 ,需要安装下插件,目前在您/public/home/aaaa/IB 路径放了脚本,您后续在notebook中使用root权限运行下bash mlxtoshca.sh ,然后计算的时候再添加如下参数测试

bash 复制代码
apt-get update -y \
&& apt remove -y  rdmacm-utils || true \
&& apt remove -y ibacm || true \
&& apt remove -y  perftest || true \
&& apt remove -y ibverbs-utils || true \
&& apt remove -y ucx || true \
&& apt remove -y libibverbs-dev || true \
&& apt remove -y libibmad-dev || true \
&& apt remove -y libibumad-dev || true \
&& apt remove -y librdmacm1 || true \
&& apt remove -y infiniband-diags || true \
&& apt remove -y opensm || true \
&& apt remove -y rdma-core || true \
&& apt remove -y libibmad5 || true \
&& apt remove -y libibumad3 || true \
&& apt remove -y ibverbs-providers  || true \
&& apt remove -y libibverbs1 || true \
&& apt install -y libmosquitto1 || true \
        && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && dpkg -i shca-tools_2.500.4.B059-Ubuntu22.04_amd64.deb 
计算的时候再添加如下参数测试
bash 复制代码
export GLOO_SOCKET_IFNAME="eth0"
export NCCL_SOCKET_IFNAME="eth0"
export NCCL_IB_HCA=shca_0:1,shca_1:1,shca_2:1,shca_3:1
export HSA_FORCE_FINE_GRAIN_PCIE=1
export NCCL_IB_DISABLE=0
export NCCL_NET_PLUGIN=shca
export  NCCL_DEBUG=INFO

shca ib卡背景知识

我用大白话给你拆开讲,不搞技术黑话。


一、什么是「海光异构卡BW 64G」?

  • 海光:国产芯片公司,做国产GPU/AI加速卡,对标英伟达A100/H100。
  • 异构卡(DCU/BW) :就是国产GPU,专门用来跑AI训练、大模型、科学计算。
  • BW1000 :海光深算三号,型号叫BW,64G 是指它自带64GB 高速显存(HBM2e)
  • 一句话:你用的是国产高端AI显卡,64G显存,性能接近英伟达A100

二、什么是「shca IB卡」?

1. IB 是什么?

  • IB = InfiniBand :一种超高速、低延迟的专用网络 ,专门用在超算、AI集群里,让很多张GPU卡/服务器之间飞快地互相传数据
  • 普通网卡(以太网)像普通公路 ;IB卡像高铁专线,速度快几十倍、延迟极低。

2. shca 是什么?

  • shca :是曙光自研的国产IB驱动/插件的名字(可以理解为:国产版IB驱动)。
  • 因为美国限制,不能用英伟达(Mellanox)的IB卡,曙光就自己做了国产IB网卡+驱动 ,名字叫shca

3. 合起来:shca IB卡

  • 就是:曙光国产高速互联网卡(替代英伟达IB卡),专门给海光BW卡集群做高速通信用。
  • 作用:让多张海光BW卡之间高速互联,跑大模型多卡训练时更快、不卡

三、他让你做的事,本质是啥?

老师的意思是:

你用的113组机器,配的是曙光国产shca IB高速网卡

要用好这张高速网卡、发挥多卡性能,必须:

  1. 先装shca驱动插件(他给的脚本);
  2. 再设几个环境变量,告诉系统:"用shca IB卡通信,别用普通网卡"。

四、极简总结(记这几句就行)

  • 海光BW 64G:国产AI显卡,64G显存,用来跑大模型。
  • IB卡:高速专用网卡(像高铁),多卡/多机通信用。
  • shca:曙光国产IB驱动(替代美国货)。
  • 装脚本+设变量 :就是启用国产高速网卡,让多卡训练更快

原来的正确的环境变量

bash 复制代码
# =======曙光BW 2卡DCU 100小时稳定训练【无报错版】 =======
# =====  超算中心  老是报错 可以 ,换2个显卡 ====
# NCCL 内部通信错误
# export NCCL_IGNORE_DISABLED_P2P=1
# export NCCL_P2P_DISABLE=1

# 1. 禁用可能存在 Bug 的加速算子库
export ROC_BLAS_USE_HIPBLASLT=0
# 2. 强制同步执行,防止异步内存访问越界(虽然慢,但能保命)
export HIP_LAUNCH_BLOCKING=1
# 3. 限制 MIOpen 算子,防止在卷积或矩阵运算时出现段错误
export MIOPEN_DEBUG_DISABLE_CUDNN_COMPAT=1

# 不必删除 checkpoint-2500的global_step,否则我启动不了

# gfx936 不一定需要
export HSA_OVERRIDE_GFX_VERSION="9.3.6"


# unset HSA_OVERRIDE_GFX_VERSION


# 设置NCCL环境变量
# 4. 彻底禁用 P2P 通信,防止单卡模式下误触通信 Bug
export NCCL_P2P_DISABLE=1          # 海光DCU必须开!不开直接卡
export NCCL_BLOCKING_WAIT=1         # 防止卡死
export NCCL_ASYNC_ERROR_HANDLING=1  # 防止通信崩溃
export RCCL_P2P_DISABLE=1

# 超算BW禁用IB远程通信,避免分布式训练网络报错
export NCCL_IB_DISABLE=1

# 指定NCCL使用本地回环网卡lo,双卡本机通信最稳定
# 本地双卡 不能用网卡
export NCCL_SOCKET_IFNAME=lo

# 开启NCCL异步错误处理,防止通信卡死导致节点失败
export NCCL_ASYNC_ERROR_HANDLING=1

# NCCL超长超时(100小时),避免慢节点中断
export NCCL_TIMEOUT=3600000





# 修复 ROCm 显存碎片
# 我直接给你深算 3 号 Z100 (gfx928) 专用、100% 能跑的最终版
# 海光DCU不支持expandable_segments,只保留max_split_size_mb防止显存碎片
# 但需要注意,海光环境有时对 expandable_segments 支持有 Bug。如果显存端也出现无故 OOM,可以尝试将其简化为 export PYTORCH_HIP_ALLOC_CONF="garbage_collection_threshold:0.8"
# export PYTORCH_HIP_ALLOC_CONF="expandable_segments:True,garbage_collection_threshold:0.8"
# export PYTORCH_HIP_ALLOC_CONF="garbage_collection_threshold:0.8"

# 建议修改这一行
export PYTORCH_HIP_ALLOC_CONF="max_split_size_mb:128,garbage_collection_threshold:0.8"






# 关闭MIOPEN确定性计算,减少内存占用、提速
export MIOPEN_DEBUG_CONVOLUTION_DETERMINISTIC=0

# 关闭MIOPEN冗余日志,避免缓冲区占满内存
export MIOPEN_LOG_LEVEL=1

# 指定使用2张DCU显卡
export HIP_VISIBLE_DEVICES=0,1

export ROCM_VISIBLE_DEVICES=0,1

unset CUDA_VISIBLE_DEVICES

# DCU兼容性必须设置,解决算子崩溃/显存泄漏
# export HSA_OVERRIDE_GFX_VERSION=10.3.0 pytorch不支持

# 关闭CuDNN,防止DCU环境不兼容
export Torch_USE_CUDNN=0

查看ib网络

下面给你一套直接复制就能用、最常用、最准的排查方法 (在你这台海光BW服务器上,root 或 sudo 执行)。


一、先看:服务器有没有 IB 卡(shca/InfiniBand)

1. 看硬件是否识别(最基础)

bash 复制代码
lspci | grep -i infiniband
lspci | grep -i shca
  • 有输出 = 识别到 IB 卡(shca 也是 IB 控制器)
  • 无输出 = 没识别到 IB 卡

2. 看 IB 设备列表(更专业)

bash 复制代码
ibv_devices
  • 输出有 shca_0mlx5_0 之类 = 有 IB 卡
  • 提示 No devices found = 无 IB 卡

二、再看:IB 卡状态 & 是否真的连上 IB 网络

1. 最简命令:ibstat(必用)

bash 复制代码
ibstat

看关键行:

复制代码
State: Active
Physical state: LinkUp
Rate: 100 or 200 Gb/s
  • State: Active + LinkUp = IB 卡正常、网线连上、IB网络正常
  • State: Down / Polling = 没连上 IB 网络(线没插/交换机没起来/没权限)
  • Rate: 100G/200G = 高速 IB;普通光纤以太网不会有这个

2. 看详细信息(含 shca 驱动)

bash 复制代码
ibv_devinfo

重点看:

  • hca_id: shca_0 → 就是你用的曙光国产 shca IB 卡
  • transport: InfiniBand → 确认是 IB 模式
  • port_state: ACTIVE → 端口正常

三、看:IB 网络拓扑 & 同网络有哪些机器

bash 复制代码
ibnetdiscover
ibnodes
  • 能看到其他服务器的 GUID/名字 → IB 网络是通的
  • 只有自己 → 可能是孤立/没加入 IB 子网

四、看:shca 驱动是否加载(对应你这边的环境)

bash 复制代码
lsmod | grep shca
  • 有输出 → shca 驱动已加载(老师让你装的那个)
  • 无输出 → 没装/没加载,需要跑 mlxtoshca.sh

五、最精简总结(你只要记这几条)

  1. 有没有 IB 卡lspci | grep -i infiniband
  2. 是不是 shca IB 卡ibv_devices 看有没有 shca_0
  3. IB 卡是否正常联网ibstatActive + LinkUp
  4. shca 驱动是否装好lsmod | grep shca

那如果没有安装驱动的情况下呢

我用最简单、最直白 的方式告诉你:
没装 IB / shca 驱动时,你看到的结果是什么样?

以及 为什么必须装驱动才能用 IB 高速网络


一、没装驱动时,你执行命令会看到什么?

1. ibv_devices

复制代码
No IB devices found

意思:系统看不到 IB 卡(因为驱动没装,不认硬件)

2. ibstat

复制代码
Command not found

或者

复制代码
no device found

3. lspci | grep -i infiniband

可能能看到卡,但系统不知道它是 IB 卡

就像你插了显卡,但没装显卡驱动,只能当亮机卡用。

4. lsmod | grep shca

什么都不输出

= 驱动没加载、没安装


二、没装驱动 = IB 卡完全不能用

重点来了:

IB 卡 ≠ 普通网卡

普通以太网(光纤/电口)操作系统自带驱动,插上就能用。

但:

IB 卡(包括 shca 国产 IB)必须装专用驱动才能工作

没驱动 = IB 卡是死的,不会工作,不会联网,不会加速


三、没装驱动时,你的多卡训练会怎样?

你用的是 海光BW 64G 异构卡

如果 没装 shca 驱动

  • 系统不会使用 IB 高速网络
  • 自动 fallback 到 普通以太网(光纤)
  • 多卡训练速度 慢 5~20 倍
  • 大模型根本跑不起来
  • 出现 慢、卡、通信超时

一句话:

没驱动 = IB 高速网卡形同虚设

--

四、你现在必须做的(就两步)

老师给你的操作,本质就是装 shca IB 驱动

第一步(装驱动)

bash 复制代码
sudo bash mlxtoshca.sh

第二步(启用 IB 通信)

bash 复制代码
export GLOO_SOCKET_IFNAME="eth0"
export NCCL_SOCKET_IFNAME="eth0"
export NCCL_IB_HCA=shca_0:1,shca_1:1,shca_2:1,shca_3:1
export HSA_FORCE_FINE_GRAIN_PCIE=1
export NCCL_IB_DISABLE=0
export NCCL_NET_PLUGIN=shca
export NCCL_DEBUG=INFO

五、装完驱动后,你会看到什么(成功标志)

1. ibv_devices

复制代码
shca_0
shca_1
shca_2
shca_3

2. ibstat

复制代码
State: Active
Physical state: LinkUp

3. lsmod | grep shca

能看到驱动正在运行

看到这些 = IB 卡正常工作,可以跑高速训练


超级大白话总结

  • 没装驱动:IB 卡看不见、用不了、训练很慢
  • 装了驱动:IB 卡变成高铁,多卡训练飞快
  • 你现在的服务器必须装 shca 驱动

相关推荐
m0_737246981 小时前
QDKT2-1. Dify 本地部署 & 模型插件配置
人工智能·产品经理
nix.gnehc1 小时前
手搓 MCP 服务:从零实现 Model Context Protocol 的实践记录
人工智能·mcp·http+sse
wuxinyan1231 小时前
大模型学习之路010:RAG 零基础入门教程(第六篇):重排序技术
人工智能·学习·rag
oscar9991 小时前
给 AI 编程助手立规矩:OpenCode 的自定义指令体系
人工智能·rule·opencode
SilentSamsara1 小时前
迭代器协议:`__iter__` / `__next__` 的完整执行流程
开发语言·人工智能·python·算法·机器学习
AI科技星1 小时前
算法联盟ROOT · 全域数学物理卷第20、21、22分册:量子纠缠、隐形场论与时间膨胀
人工智能·算法·数学建模·数据挖掘·机器人
Android出海1 小时前
ChatGPT Image2 2.0正式上线:功能解析 + 使用教程(附提示词)
人工智能·ai·chatgpt·ai生图·chatgpt image2·images2
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 周榜(2026-05-10)
人工智能·ai·大模型·llm·github
feasibility.2 小时前
多模态模型Qwen-3.5在Llama-Factory使用+llama.cpp量化导出+部署流程(含报错处理)
人工智能·llm·多模态·量化·llama.cpp·vlm·llama-factory