可是机器不支持插SXM4版的
Above 4G Decoding(大于 4G 地址空间解码)和 SR-IOV / IOMMU 支持。这不仅能保证直通成功,还能确保 PCIe 寻址和 P2P 通信的正常开启。1sudo nvidia-smi -i 0 -pm 1 # 开启持久化模式
2sudo nvidia-smi -i 1 -pm 1
3sudo nvidia-smi -i 0 -c 3 # 设置为 Default 计算模式
4sudo nvidia-smi -i 1 -c 3NVML_P2P_STATUS_OK,说明 PCIe P2P 通信已打通,带宽叠加的物理通道已就绪。1import pynvml
2pynvml.nvmlInit()
3handle0 = pynvml.nvmlDeviceGetHandleByIndex(0)
4handle1 = pynvml.nvmlDeviceGetHandleByIndex(1)
5# 检测 P2P 读写能力
6print("Read P2P Status:", pynvml.nvmlDeviceGetP2PStatus(handle0, handle1, pynvml.NVML_P2P_CAPS_INDEX_READ))
7print("Write P2P Status:", pynvml.nvmlDeviceGetP2PStatus(handle0, handle1, pynvml.NVML_P2P_CAPS_INDEX_WRITE))DistributedDataParallel (DDP) 进行多卡训练时,NCCL 会自动检测底层的 PCIe P2P 拓扑。nvidia-smi topo -m,查看两张卡的拓扑关系。numactl 将进程绑定到其中一个 CPU 节点上,或者尽量在物理上将两张卡插在同一个 CPU 管理的插槽组内,以消除跨节点通信带来的带宽损耗。
适用场景: 本文档旨在解决在H3C R5350 G6服务器上,通过PCIe直通方式安装两张A100显卡后,实现显存与计算带宽、网络通信带宽协同叠加的技术配置问题。
核心原则: 两种“带宽”需分别优化。
计算/显存带宽(卡间通信): 依赖于 NVLink 技术。
网络带宽(对外通信): 依赖于 RoCE v2 链路聚合。
重要硬件前提: 下述NVLink相关配置仅适用于SXM接口的A100显卡(如HGX A100模组)。若为PCIe接口的A100,因硬件上无NVLink链路,无法实现卡间高速互联,只能通过PCIe总线通信,带宽提升效果有限。
目标: 使两张A100显卡之间的数据交换带宽达到理论最大值(最高600GB/s)。
| 步骤 | 操作位置 | 详细操作内容 |
|---|---|---|
| 1. 开启NVLink | 服务器BIOS | 进入BIOS,找到GPU相关配置(路径可能为 Advanced > GPU Configuration),将 NVLink 选项设置为 Enabled(仅SXM版可见)。 |
| 2. 优化NUMA | 服务器BIOS | 确认两张A100显卡被识别在同一个NUMA节点上,以避免跨CPU通信带来的额外延迟(可在BIOS Advanced > Socket Configuration 中查看) |
| 3. 配置GPU直通 | 虚拟化平台 | 在VMware vSphere 或 KVM 中,将两张A100显卡同时直通(PCI Passthrough)给同一台虚拟机。 |
| 4. 安装驱动 | 虚拟机内部 | 在虚拟机内安装NVIDIA官方驱动,运行 nvidia-smi 确认操作系统能同时识别两张物理显卡。 |
| 5. 配置计算框架 | 应用代码 | 在深度学习框架(如PyTorch、TensorFlow)中配置 NCCL (NVIDIA Collective Communications Library)后端,框架将自动调用NVLink进行高速卡间通信。 |
验证方法:
在虚拟机内执行以下命令,确认NVLink已正常启用:
预期结果: nvidia-smi topo -m 的输出中,两张A100卡的对应位置应明确显示 NVLink 连接标识。
目标: 聚合两张A100显卡(SXM版)内置的RoCE v2高速网口带宽,提升对外数据传输能力(适用于分布式训练或高速存储访问)。
硬件要求:
A100 SXM版显卡内置RoCE v2网口。
两张显卡的RoCE接口需通过网线分别连接至支持LACP(802.3ad)的交换机。
配置步骤:
在虚拟机内部,使用Linux Bonding将两张A100的两个RoCE网口进行链路聚合。
安装Bonding工具(以Ubuntu/CentOS为例):
加载Bonding内核模块(模式4:802.3ad 动态链路聚合):
创建Bond虚拟接口并绑定物理网口:
关键提醒: 交换机侧必须将连接两张A100 RoCE网口的两个端口配置为同一链路聚合组(LACP),否则Bonding无法生效。
开启IOMMU(AMD平台必需):
路径:BIOS > Advanced > AMD CBS > NBIO Common Options
将 IOMMU 设置为 Enable。这是实现GPU直通(PCI Passthrough)的基础。
虚拟化平台配置(以VMware为例):
选中目标虚拟机 → 编辑设置 → 添加新设备 → PCI设备,重复此操作两次,分别选择两张A100显卡。
固件升级:
建议将服务器 BIOS 和 CPLD 固件升级至H3C官方发布的最新版本,以确保对最新GPU及NVLink/RoCE功能的完整兼容性。
硬件差异巨大:
SXM版 A100: 支持NVLink,双卡通信带宽理论峰值可达 600GB/s。
PCIe版 A100: 不支持NVLink,只能通过PCIe 4.0 x16总线通信(理论带宽 64GB/s)。此场景下的“带宽叠加”主要依赖软件层面的多卡并行框架(如NCCL)进行通信优化,无法实现硬件的线性叠加。
性能加速比: 即便有NVLink,实际应用中的加速比也非线性。在理想场景下,8张A100卡的加速比约为7.2倍;双卡场景则通常在 1.7倍至1.9倍 之间,具体取决于应用对通信带宽的敏感度。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
可是机器不支持插SXM4版的