【GPU】什么是 NVLink?

目录

前言

 NVLink说明

简介

技术特点

应用领域

一 环境准备

二 NVLink使用

实际应用

注意事项

常用状态查询


前言

建议阅读官网说明或官方博客文章:

NVLink & NVSwitch: https://www.nvidia.com/en-us/data-center/nvlink/

什么是 NVLink? | NVIDIA 英伟达博客 https://blogs.nvidia.cn/blog/what-is-nvidia-nvlink/

 NVLink说明

简介

NVLink就是英伟达(NVIDIA)开发并推出的一种总线及其通信协议,主要用于GPU之间或GPU与CPU、网络接口卡(NIC)等其他外设的连接,提供更高效的传输性能(高带宽,低延迟)。

技术特点

  1. 点对点结构与串列传输:NVLink采用点对点结构,即直接在两个设备之间建立链路,这种设计极大地提高了数据传输的效率。同时,它使用串列传输方式,进一步提升了数据传输的速度。
  2. 高带宽与低延迟:相较于传统的PCIe接口,NVLink提供了更高的带宽和更低的数据传输延迟。这使得NVLink在需要大规模数据交互的高性能计算场景中表现出色。
  3. 数据缓存一致性:从NVLink 2.0版本开始,引入了数据缓存一致性功能。这意味着CPU和GPU之间可以在硬件层面实现数据一致性,大大提升了CPU和GPU之间的数据交互效率。
  4. 支持多种设备连接:NVLink不仅支持GPU之间的连接,还支持GPU与CPU、网络接口卡(NIC)等其他外设的连接,提供了灵活的设备连接方案。

应用领域

NVLink主要应用于需要大规模并行计算的高性能场景中,如深度学习、AI推理、科学模拟和金融分析等。特别是在深度学习领域,NVLink允许多个GPU之间实现高速数据传输,从而大幅加速了模型训练的速度。

技术优势

NVLink4.0 VS PCIe5.0 带宽是5倍,能效是5倍

四代 NVLink 连接主机和加速处理器的速度高达每秒 900GB/s,是传统 x86 服务器的互连通道PCIe 5.0 带宽的 7 倍多。每传输 1 字节数据仅消耗 1.3 皮焦,因此 NVLink 的能效是 PCIe 5.0 的 5 倍。

 通常通过印在计算机板上的多对导线实现,可以让处理器以闪电般的速度收发共享内存池中的数据。

一 环境准备

1. 确认硬件支持

  • GPU 支持:确保 GPU 支持 NVLink,如 NVIDIA Tesla V100、A100 或 GeForce RTX 3090 等。

  • 主板支持:主板需具备 NVLink 接口,通常为高端工作站或服务器主板。

  • NVLink 桥接器:根据 GPU 数量和布局选择合适的桥接器。

2. 安装硬件

  • 安装 GPU:将 GPU 插入主板 PCIe 插槽。

  • 连接 NVLink 桥接器:将桥接器安装在 GPU 的 NVLink 接口上,确保连接稳固。

3. 安装驱动和软件

  • 安装 NVIDIA 驱动:从 NVIDIA 官网下载并安装最新驱动。

  • 安装 CUDA 工具包:如需使用 CUDA 应用,安装相应版本的 CUDA 工具包。安装与GPU驱动版本兼容的CUDA Toolkit,以便在GPU上进行编程和计算。

4. 配置系统

  • 启用 NVLink:在 BIOS/UEFI 中启用 NVLink 支持(如有选项)。

  • 检查连接状态:使用 nvidia-smi 命令查看 GPU 状态,确认 NVLink 已启用。

二 NVLink使用

5. 使用 NVLink

  • 多 GPU 应用:在支持多 GPU 的应用中启用 NVLink 加速。

  • 深度学习框架:如 TensorFlow 或 PyTorch,可通过设置启用 NVLink 优化。

    • 如果你打算使用NVLink进行深度学习,需要配置深度学习框架(如TensorFlow、PyTorch等)以利用NVLink。
    • 对于TensorFlow,可以使用以下代码片段配置:
      import tensorflow as tf
      tf.config.experimental.set_visible_devices(tf.config.experimental.list_physical_devices('GPU')[0:2], 'GPU')
      logical_gpus = tf.config.experimental.list_logical_devices('GPU')
      print(len(logical_gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
    • 对于PyTorch,可以使用以下代码片段配置:
    import torch
    torch.cuda.set_device(0)
    print(torch.cuda.device_count())

6. 监控和优化

  • 监控性能:使用 nvidia-smi 监控 GPU 使用率和 NVLink 带宽。

  • 优化应用:根据应用需求调整配置,最大化 NVLink 性能。

实际应用

  1. 编写深度学习代码
    • 在配置好深度学习框架后,可以编写深度学习代码并运行。
    • 在代码中,确保使用NVLink进行GPU之间的数据传输和同步。
  2. 运行和评估模型
    • 运行深度学习代码,并监控训练过程中的日志和性能指标。
    • 使用测试数据集评估模型的性能,并根据需要进行调整和优化。
  3. 优化NVLink性能
    • 根据实际应用场景和性能需求,调整NVLink的配置和参数以优化性能。
    • 监控NVLink的带宽利用率和延迟情况,并根据需要进行调整。

注意事项

  • 在使用NVLink时,务必确保所有连接都正确无误,以避免数据传输错误或系统崩溃。
  • 在配置深度学习框架时,需要根据实际情况选择适当的GPU设备和NVLink配置。
  • 在运行深度学习代码时,需要确保有足够的内存和计算资源来支持模型的训练和推理。

通过以上步骤,你可以成功使用NVLink进行GPU之间或GPU与其他外设之间的高效数据传输和同步。

常用状态查询

可以使用nvidia-smi命令来查看和管理NVLink的状态和配置:

  • nvidia-smi:查看 GPU 和 NVLink 状态。

  • nvidia-smi nvlink --status:查看 NVLink 连接状态。

  • nvidia-smi topo -m:查看 GPU 拓扑。

  • nvbandwidth:测试 NVLink 带宽。

  • nvidia-smi dmon:实时监控 NVLink 带宽。

以下是一些常用的NVLink命令及其功能:

  1. 查看NVLink信息

    • nvidia-smi nvlink:显示系统的NVLink信息,包括链接状态、支持的功能等。
    • nvidia-smi nvlink -i <GPU_ID>:指定GPU的ID来查看该GPU的NVLink信息。
    • nvidia-smi nvlink -l <LINK_ID>:指定链接的ID来查看特定链接的信息。
    • nvidia-smi nvlink -s:显示链接的状态(活动/非活动)。
    • nvidia-smi nvlink -c:显示链接支持的功能列表。
  2. 查看NVLink拓扑信息

    • nvidia-smi topo -m:显示NVLink的拓扑信息,包括GPU之间的连接关系。
  3. 查看NVLink带宽

    • nvidia-smi nvlink --status:显示NVLink的状态和带宽信息,包括每个通道的带宽是否已启用。
  4. 错误计数器相关命令

    • nvidia-smi nvlink -e:显示链接的错误计数器。
    • nvidia-smi nvlink -ec:显示链路的每通道CRC错误计数器。
    • nvidia-smi nvlink -re:将所有错误计数器重置为零。
  5. 吞吐量计数器相关命令

    • nvidia-smi nvlink -gt <COUNTER_TYPE>:显示指定计数器类型的链路吞吐量计数器。<COUNTER_TYPE>参数由表示计数的流量类型的字符串组成,例如d表示以KiB显示tx和rx数据有效负载。
  6. 其他命令

    • nvidia-smi nvlink -p:显示链接的远程节点PCI总线ID。
    • nvidia-smi nvlink -R:显示链接的远程设备PCI总线ID和NvLink ID。

注意事项

  • 在使用这些命令之前,请确保已经安装了NVIDIA驱动程序,并且具有管理员权限。
  • 某些命令可能需要特定的硬件和软件版本支持,请查阅NVIDIA的官方文档以获取更多信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值