rocm-smi 查看 GPU 间链路的方法

ROCM-SMI查看GPU链路方法

在ROCm的性能测试中,常常需要确认系统上的GPU之间的topology信息,以此来评估数据传输理论速度和性能。另外在调试性能问题时,也需要经常确认topology信息。这里给出了rocm-smi给出的一些常用命令。

1. 命令总览

rocm-smi --showtopo           # 显示完整拓扑(推荐首选)
rocm-smi --showtopoaccess     # GPU间链路可访问性
rocm-smi --showtopoweight     # GPU间权重/距离
rocm-smi --showtopohops       # GPU间跳数
rocm-smi --showtopotype       # 链路类型(PCIE/XGMI)
rocm-smi --showtoponuma       # NUMA节点信息

2. 详细说明

1. 完整拓扑信息(最常用)

该命令是–showtopoweight --showtopohops --showtopotype --showtoponuma 四个参数的集合,所以最常用。

rocm-smi --showtopo

输出内容:

  • Weight between two GPUs: GPU间的"距离"权重
  • Hops between two GPUs: GPU间需要经过的跳数
  • Link Type: 连接类型(PCIE、XGMI等)
  • Numa Nodes: NUMA节点分配

示例输出:

      GPU0    GPU1    GPU2
GPU0    0      40      40
GPU1   40       0      40
GPU2   40      40       0

解释:

  • 对角线为0(自己到自己)
  • GPU0↔GPU1 权重=40,表示"较远"的连接
  • 权重越大 = 距离越远 = 性能越差

2. 链路可访问性

rocm-smi --showtopoaccess

输出内容: GPU间是否可以直接访问(P2P)

示例输出:

        GPU0    GPU1    GPU2
GPU0   True    False   False
GPU1   False   True    False
GPU2   False   False   True

解释:

  • True: 可以访问(但仅限于自己)
  • False: 不可访问(GPU0↔GPU1之间)

3. GPU间权重

rocm-smi --showtopoweight

输出内容: 相对权重值(距离度量)

权重值含义:

权重范围含义说明
0同一设备GPU自己到自己
10-15非常近同一XGMI域
20-30较近1跳PCIe
40-50较远2跳PCIe,需要经过CPU
>50很远跨NUMA节点

4. GPU间跳数

rocm-smi --showtopohops

输出内容: GPU间的物理跳数

示例输出:

       GPU0    GPU1    GPU2
GPU0   0       2       2
GPU1   2       0       2
GPU2   2       2       0

跳数含义:

跳数含义说明
0跳同一设备GPU内部
1跳直接相连同一PCIe Switch
2跳需要经过CPU跨Root Port
3+跳多级交换/路由复杂拓扑

5. 链路类型

rocm-smi --showtopotype

输出内容: GPU间的物理连接类型

可能的链路类型:

  • PCIE: PCIe连接
  • XGMI: AMD Infinity Fabric高速互连(仅MI系列)
  • N/A: 不适用

示例输出:

       GPU0    GPU1    GPU2
GPU0   0       PCIE    PCIE
GPU1   PCIE    0       PCIE

PCIE vs XGMI对比:

类型带宽适用产品
PCIE 4.0 x16~31 GB/s消费级显卡
XGMI~200-600 GB/sMI250X/MI300系列

6. NUMA节点

rocm-smi --showtoponuma

输出内容: GPU所属的NUMA节点

示例输出:

GPU[0]: Numa Node: 0, Affinity: -1
GPU[1]: Numa Node: 0, Affinity: -1
GPU[2]: Numa Node: 0, Affinity: -1

NUMA Affinity = -1 表示:

  • GPU可以从任何NUMA节点访问
  • 没有特定的NUMA亲和性绑定

3. 组合使用示例

完整诊断脚本

cat << 'SCRIPT' > check_gpu_topology.sh
#!/bin/bash
echo "===== GPU 拓扑完整诊断 ====="
echo ""
echo "1. 完整拓扑信息:"
rocm-smi --showtopo
echo ""
echo "2. P2P访问能力:"
rocm-smi --showtopoaccess
echo ""
echo "3. PCIe链路状态:"
for gpu in 03:00.0 09:00.0 10:00.0; do
    echo "GPU $gpu:"
    sudo lspci -vv -s $gpu 2>/dev/null | grep "LnkSta:" | head -1
done
echo ""
echo "4. GPU信息:"
rocm-smi --showproductname
SCRIPT
chmod +x check_gpu_topology.sh

运行:

./check_gpu_topology.sh

4. 常见问题

Q: 为什么 --showtopoaccess 全是 False?

A: RX系列是消费级显卡,不支持GPU Direct P2P。只有AMD Instinct MI系列专业卡支持。

Q: 权重40是什么意思?

A: 权重是相对度量,数值越大表示GPU间"距离"越远。40表示2跳PCIe连接,需要经过CPU。

Q: 如何提升GPU间通信性能?

A: 通信性能差的硬件:

  1. 无法启用P2P(硬件不支持)
  2. 通过CPU内存中转(目前唯一选择)
  3. 或升级到MI系列专业卡

Q: XGMI是什么?

A: AMD Infinity Fabric的GPU互连技术

  • 仅在MI250X/MI300等专业卡上可用
  • 提供远超PCIe的带宽(200-600 GB/s)
  • 支持GPU间直接内存访问

5. 显卡对比:消费级 vs 专业级

特性
链路类型PCIE
P2P支持❌ False
跳数2
GPU间带宽无法直接传输

AMD Instinct MI250X(专业卡):

特性
链路类型XGMI
P2P支持✓ True
跳数0-1(Infinity Fabric直连)
GPU间带宽~200 GB/s

6. 快速参考

最常用命令:

rocm-smi --showtopo        # 一次性查看所有信息

检查P2P:

rocm-smi --showtopoaccess  # 看是否支持GPU间直接访问

检查距离:

rocm-smi --showtopohops    # 看跳数
rocm-smi --showtopoweight  # 看权重

检查连接:

rocm-smi --showtopotype    # PCIE还是XGMI

完整诊断:

./check_gpu_topology.sh    # 运行上面创建的脚本

命令速查表

命令说明示例系统结果
rocm-smi --showtopo完整拓扑信息推荐首选
rocm-smi --showtopoaccessP2P访问能力False(不支持)
rocm-smi --showtopoweightGPU间距离40(较远)
rocm-smi --showtopohopsGPU间跳数2跳
rocm-smi --showtopotype链路类型PCIE
rocm-smi --showtoponumaNUMA信息全部在节点0

<think>嗯,用户之前问过如何在Ubuntu 18.04上用glances监测AMD GPU使用率,我建议他们安装rocm-smi,但现在他们遇到了“unable to locate package rocm-smi”的问题。首先,我需要确认这个错误的原因。可能的情况有几个: 首先,Ubuntu 18.04的默认仓库可能没有rocm-smi包,尤其是如果用户没有添加ROCm的官方仓库。ROCm是AMD的开源计算平台,通常需要手动添加其存储库才能安装相关软件包。用户可能没有正确配置APT源,导致系统找不到这个包。 其次,用户可能拼错了包名,但根据问题描述,用户是直接复制我的之前的命令,所以拼写错误可能性较低。不过还是要提醒用户检查是否有打字错误。 接下来,我需要考虑Ubuntu 18.04是否支持当前版本的ROCm。因为ROCm的版本更新较快,可能旧版Ubuntu不再被支持。例如,ROCm 5.x可能不支持Ubuntu 18.04,而需要更高版本的Ubuntu。这会导致即使添加了仓库也无法安装。 然后,我应该引导用户检查他们的系统架构。ROCm主要支持AMD的特定显卡,如Radeon VII、Vega系列等,而且可能需要特定的内核版本和硬件支持。如果用户的GPU不在支持列表中,安装可能不会成功,或者需要其他驱动。 另外,用户可能没有启用Universe或Multiverse仓库,这些仓库可能包含额外的软件包。不过,通常ROCm需要自己的仓库,所以这可能不是主要原因。 接下来,我需要提供解决方案。首先,添加ROCm的APT仓库,然后更新并安装。如果Ubuntu 18.04不被支持,可能需要升级系统或使用其他方法,如手动下载旧版ROCm包,或者使用替代工具如radeontop。 同时,用户可能需要检查他们的用户组权限,比如是否在video或render组中,否则即使安装了工具也可能无法访问GPU设备。 最后,如果所有方法都失败,建议用户使用替代工具,如radeontop,或者检查AMD官方文档,获取针对他们特定GPU型号的支持信息。 总结起来,用户的问题可能源于缺少ROCm仓库、系统版本不兼容或硬件不支持。我需要分步骤引导用户检查这些方面,并提供替代方案,确保他们能够监测GPU使用率。</think>在Ubuntu 18.04中遇到`unable to locate package rocm-smi`错误,通常是由于**未正确配置AMD ROCm软件仓库**或**系统版本不兼容**导致。以下是详细解决方案: --- ### 一、问题原因分析 1. **未添加ROCm仓库** `rocm-smi`属于AMD ROCm工具链组件,Ubuntu官方仓库不直接提供此包。 2. **Ubuntu 18.04兼容性问题** ROCm 5.0+ 已不再支持Ubuntu 18.04(官方支持截止到ROCm 4.5)。 3. **硬件限制** 仅支持特定AMD GPU(如Radeon VII/Vega系列/Instinct系列)。 --- ### 二、解决方案 #### 方案1:添加ROCm仓库(适用于支持ROCm 4.5的设备) ```bash # 添加官方GPG密钥 wget -qO- https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - # 添加仓库(注意:ROCm 4.5是最后一个支持Ubuntu 18.04的版本) echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/4.5/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list # 更新并安装 sudo apt update sudo apt install rocm-smi ``` #### 方案2:手动下载.deb包(若仓库失效) 从[ROCm 4.5历史版本页面](https://repo.radeon.com/rocm/apt/4.5/)手动下载: ```bash wget https://repo.radeon.com/rocm/apt/4.5/pool/main/r/rocm-smi/rocm-smi_4.5.0.40500-63_amd64.deb sudo dpkg -i rocm-smi_4.5.0.40500-63_amd64.deb ``` #### 方案3:使用替代工具 ```bash # 安装开源工具radeontop(支持旧AMD GPU) sudo apt install radeontop sudo radeontop # 需要root权限 ``` --- ### 三、验证安装 ```bash # 检查ROCm设备 /opt/rocm/bin/rocminfo # 运行rocm-smi rocm-smi --showuse ``` --- ### 四、常见问题处理 1. **依赖错误** 若出现依赖问题,执行: ```bash sudo apt --fix-broken install ``` 2. **权限问题** 将用户加入`video`组: ```bash sudo usermod -aG video $USER ``` 3. **内核要求** ROCm 4.5需要Linux内核≥5.3,可通过`uname -r`检查。若内核版本过低: ```bash sudo apt install linux-generic-hwe-18.04 ``` --- ### 五、兼容性说明 | GPU型号 | ROCm 4.5支持 | radeontop支持 | |------------------|--------------|---------------| | Radeon RX 580 | ❌ | ✔️ | | Radeon VII | ✔️ | ✔️ | | Vega 56/64 | ✔️ | ✔️ | | RDNA/RDNA2架构 | ❌ | ❌ | > 📌 建议:若GPU为Polaris/Vega架构可尝试ROCm,其他型号优先使用`radeontop`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeeplyMind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值