GPU A系列裸金属服务器节点内NVLINK带宽性能测试方法-pytorch模式

举报
modelarts-dev-server 发表于 2023/06/10 18:04:23 2023/06/10
【摘要】 GPU A系列裸金属服务器GPU间是走NVLINK,本文给出使用pytorch2.0测试单服务器内GPU卡间带宽性能。

0. 前置条件

GPU A系列裸金属服务器,单台服务器GPU间是走NVLINK,可以通过相关命令查询GPU拓扑模式:

nvidia-smi topo -m

环境描述: 使用Ant8或者Ant1 GPU裸金属服务器, 且服务器中已经安装相关GPU驱动软件,以及pytorch2.0.

具体安装方法可以参考:https://bbs.huaweicloud.cn/blogs/398211

1. GPU服务器内NVLINK带宽测试方法

import torch
import numpy as np

device = torch.device("cuda")

n_gpus = 8
data_size = 1024 * 1024 * 1024  # 1 GB

speed_matrix = np.zeros((n_gpus, n_gpus))

for i in range(n_gpus):
    for j in range(i + 1, n_gpus):
        print(f"Testing communication between GPU {i} and GPU {j}...")
        with torch.cuda.device(i):
            data = torch.randn(data_size, device=device)
            torch.cuda.synchronize()
        with torch.cuda.device(j):
            result = torch.randn(data_size, device=device)
            torch.cuda.synchronize()
        with torch.cuda.device(i):
            start = torch.cuda.Event(enable_timing=True)
            end = torch.cuda.Event(enable_timing=True)
            start.record()
            result.copy_(data)
            end.record()
            torch.cuda.synchronize()
            elapsed_time_ms = start.elapsed_time(end)
        transfer_rate = data_size / elapsed_time_ms * 1000 * 8 / 1e9
        speed_matrix[i][j] = transfer_rate
        speed_matrix[j][i] = transfer_rate

print(speed_matrix)

以Ant8 GPU裸金属服务器为例, 其理论GPU卡间带宽为:NVIDIA*NVLink*Bridge for 2GPUS: 400GB/s.

笔者使用上述测试脚本测得带宽性能如下分析,

(1) 正常模式-NVLINK全互通,带宽约为370GB

基本符合预期,且证明Ant GPU裸金属服务器内部GPU间确实走NVLINK模式,且完全互联.

ok.JPG

(2) 异常模式-NVLINK部分互通,出现带宽波动较大的情况

如下图中GPU0和GPU4之间带宽远低于理论值, 存在问题。

nok.JPG

出现这种现象, 笔者尝试重装nvidia/cuda/nvidia-fabricmanager, 重装后再测试又恢复到了正式模式,GPU0和GPU4之间带宽也恢复到370GB/s.

可能原因如下, 仅供参考:

(1). 驱动程序问题:可能是由于驱动程序没有正确安装或配置,导致NVLINK带宽受限。重新安装nvidia驱动、CUDA和nvidia-fabricmanager等软件后,驱动程序可能已经正确配置,从而解决了这个问题。
(2). 硬件问题:如果GPU之间的NVLINK连接存在硬件故障,那么这可能会导致带宽受限。重新安装软件后,重启系统,可能触发了某种硬件自检或修复机制,从而恢复了正常的带宽。
(3).系统负载:最初测试GPU卡间带宽时,可能存在其他系统负载,如进程、服务等,这些负载会占用一部分网络带宽,从而影响NVLINK带宽的表现。重新安装软件后,这些负载可能被清除,从而使NVLINK带宽恢复正常。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。