文档
注册
评分
提单
论坛
小智

介绍

在同一个PCIe节点内两个GPU,GPU0和GPU1,如果GPU0的计算结果或者数据想传到GPU1中,两个GPU之间的通信完全依赖CPU以及PCIe总线,即GPU0首先将数据传送到CPU, CPU再把数据传送到GPU1中。此时可以看到数据传输带宽受限于CPU带宽,且由于copy两次,数据延迟也较大。

为了解决以上问题,英伟达提出了GPUDirect peer to peer(P2P)技术,主要用于单机不同GPU间的高速通信,它使得GPU可以通过PCIe直接访问目标GPU的显存,避免了通过拷贝到CPU host memory作为中转,大大降低了数据交换的延迟。

GPU P2P需要软硬件都支持才能发挥作用,即硬件上需要GPU、CPU和主板等硬件具备P2P特性,软件上需要 BIOS 、CUDA和GPU驱动版本支持P2P功能以及应用有调用P2P的API才能使能P2P,充分发挥GPU的带宽以及降低GPU之间数据传输延迟的作用。

鲲鹏平台默认不开启P2P。

单节点P2P性能评估如下图所示。

PCIe各版本8通道和16通道最大带宽数据如表1所示。

表1 PCIe各版本带宽数据

PCIe版本

发布年份

x8

x16

1.0

2003

2.0 GB/s

4.0 GB/s

2.0

2007

4.0 GB/s

8.0 GB/s

3.0

2010

7.88 GB/s

15.75 GB/s

4.0

2017

15.75 GB/s

31.51 GB/s

5.0

2019

31.51 GB/s

63.02 GB/s

6.0

2021

63.02 GB/s

126.03 GB/s

鲲鹏920处理器暂不支持NVLink技术,当前采用PCIe 4.0技术,最大带宽为31.51GB/s,默认不开启GPU P2P特性,可通过以下方式强制打开。

  1. 编辑“/etc/modprobe.d/nvidia.conf”文件。
    vim /etc/modprobe.d/nvidia.conf
  2. 在文件末尾追加一行:
    options nvidia NVreg_RegistryDwords="ForceP2P=0x11"
  1. 卸载重装NVIDIA驱动。
    nvidia-uninstall
    ./NVIDIA-Linux-aarch64-xxx.xx.xx.run
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词