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