PCIe理论速度对照表

【教程】查看GPU与PCIe版本和匹配速率_脚本

bash脚本

#!/bin/bash

# 查找所有 NVIDIA GPU 设备的设备ID及其类型
device_info=$(lspci | grep -i nvidia | egrep "VGA compatible controller|3D controller" | awk '{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20}')

# 通过换行符分隔设备信息并遍历
echo "$device_info" | while IFS= read -r line; do
    id=$(echo $line | awk '{print $1}')
    type=$(echo $line | cut -d ' ' -f 2-)
    # 使用 lspci -n 获取特定设备的硬件信息
    device_info=$(lspci -n | grep -i $id | awk '{print $3}')

    echo "设备编号: $id"
    echo "设备类型: $type"
    echo "设备信息: $device_info"
    # 提取并打印 LnkCap 和 LnkSta 信息
    echo "带宽信息:"
    sudo lspci -n -d $device_info -vvv | grep -i width
    echo
done

运行效果

【教程】查看GPU与PCIe版本和匹配速率_linux_02

字段解释

  1. 设备编号41:00.0,在许多情况下,一个物理设备,如显卡,可以有多个功能。例如,一个显卡可能会有一个功能用于图形处理(VGA compatible controller),另一个功能用于声音处理(Audio device)。这些功能在系统中作为独立的设备处理,但它们实际上是同一个物理硬件的不同部分:
  1. 41
  2. 00 是设备号;
  3. 0 在这里是功能号,表示这是该设备的第一个功能;如果是1,就表示第二个功能;
  1. LnkCap (Link Capabilities): 这是该 PCI 设备支持的链接功能的总结。它提供了关于设备如何与计算机其他部分通信的信息。
  2. Port #0: 这指的是设备连接到的端口编号。在这种情况下,它是端口号 0。这是一个内部参考,用于区分同一设备或同一主板上的不同端口。
  3. Speed 16GT/s: 这表示链接的最大理论传输速率是每秒 16 吉比传输(GigaTransfers per second,GT/s)。GT/s 是一种测量 PCIe 总线速度的单位,它衡量的是数据包的传输速率,而不是实际的数据传输速率。每个数据包都包含一些额外的信息(如错误检测代码),所以实际的数据传输速率会稍低。
  4. Width x16: 这表明该链接的宽度为 16 通道(lanes)。PCIe 链接可以由 1, 2, 4, 8, 12, 16 或 32 通道组成,每个通道都是一个串行连接。x16 链接意味着有 16 个这样的通道,每个都可以进行独立的数据传输,从而提高总体带宽。
  5. ASPM not supported: ASPM 代表 Active State Power Management,是一种节能机制。这里表示该设备或端口不支持 ASPM,也就是说,它不能根据当前的使用情况动态调整电源消耗以节省能源。
  6. Exit Latency L0s <512ns, L1 <4us:是 PCIe (Peripheral Component Interconnect Express) 设备的电源管理特性之一,它描述了设备从低功耗状态(L0s 或 L1)恢复到全功率状态(L0)所需的时间。