NV-Link 测试(可用性与速率,PCIE+SXM)

NV-Link 测试(可用性与速率,PCIE+SXM)

1. 简介

  • NV-Link 是 NVIDIA 开发的一种多卡高速互连技术,主要用于在 GPU 与 GPU之间进行的数据通信。

  • 它最初于 2016 年随 Tesla P100 GPU 推出, 相比传统的 PCIe(如 PCIe 3.0、4.0),NVLink 提供更低延迟、更高效率的通信。

  • 多张 GPU 并行训练模型时,NVLink 可以显著提高模型参数同步效率(如 Reduce , Broadcast )。

另外SMX结构服务器,即DGX,是NVSwitch + NVLink 架构,可实现 8~16 张 GPU 全互联结构,大幅提升大模型训练/推理时的内存访问效率。

2.对比PCIe

PCIe 4.0以上延迟较小,但其支持的主板和cpu也较贵。

项目 NVLink PCIe 4.0 PCIe 3.0
单连接带宽 ~25–50 GB/s(双向) ~32 GB/s(x16,双向) ~16 GB/s(x16,双向)
可扩展性 多连接聚合(2–6 个 NVLink) 固定插槽数 固定插槽数
延迟 更低 相对较低 更高
拓扑结构 可构建全互联(如 NVSwitch) 星形拓扑(以 CPU 为中心) 星形拓扑(以 CPU 为中心)
GPU间通信效率 高效支持 P2P 与 AllReduce 有限,需通过 CPU 或交换芯片 较差,延迟和瓶颈更明显

3.测试

本案例在华南X99平台(f8d p, E5-2680V4)下测试 Nvlink2.0的2080ti-22g双卡互联,给出三种测试方式:

3.1 命令行测试:

最基本的操作即nvida命令:

nvdia-smi nvlink -s

注意:这个结果只能检测到nvlink,实际是否起作用,需要在代码中测试。

  • 测试结果
    在这里插入图片描述

3.2 cupy包测试

需要安装cupy,其提供了cuda.runtime.deviceCanAccessPeer(i, j)方法,可实现双卡的交互访问

代码如下:

def check_nvlink_with_cupy():
    num_gpus = torch.cuda.device_count()
    print(f"Detected {
     
     num_gpus} CUDA devices")

    for i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值