PCIe是数据传输通道,一端直接连接到CPU,另一端可以连接GPU、磁盘等。内存和CPU不是通过PCIe连接的,CPU 和内存(RAM)之间使用的是内存总线
CPU端:一个主机内部可能有多个CPU,每个CPU都有自己的PCIe接口(这个端口是 Root 根端口),每个PCIe设备都是连接到某个CPU的Root(可能是直接连接,也可能是经过中转)
PCIe的连接方式(拓扑):PCIe 通常呈树形结构(Root → Switch → Endpoint)
PCIe Bridge(PCI Express 桥接器)是一种硬件组件,用于扩展 PCIe 总线,桥接不同的 PCIe 域或层级,起到连接和转发数据的作用。其本质是将一个 PCIe 链路划分成多个子链路,或者将多层 PCIe 层级结构连接起来
如果两个设备连接到同一个PCIe Bridge,那么它们之间做不经过Host的操作的时候速度会更快。拓扑结构上相隔更远,自然速度越慢、延迟越高。
设备端:有的设备可能是直接连接到CPU的根端口的,这样自然速度更快。有的设备和CPU之间是有中转的。
# 一个例子
CPU Root Port
├── PCIe Switch A
│ ├── GPU0
│ └── GPU1
└── PCIe Switch B
├── GPU2
└── GPU3
# NUMA分组 和 CPU分组 是不同的
CPU Affinity: 0-9, 20-29
NUMA Affinity: 0