Expand description
PCI topology parsing and device discovery utilities for RDMA device selection.
ibverbs-specific selection logic lives in crate::backend::ibverbs::device_selection.
Structs§
- PCIAddress
- A PCI address, e.g.
0000:07:00.0, as found under/sys/bus/pci/devices. - PciPath
- A classified path between two PCI endpoints: its
PathTypeand the bottleneck (minimum) PCIe link bandwidth along it, in MB/s.
Enums§
- Memory
Location - A source of memory for a transfer. A
Noneindex means “any device of this kind”: the location is then ranked against the best of all CPU nodes or all GPUs. - Path
Type - Locality of a path between two PCI endpoints, ordered best to worst. A path’s type is its worst (least local) segment.
Functions§
- cpu_
path - Path from CPU memory to the device at
addr. With a specific NUMA node, the device isPathType::Phbwhen it sits on that node andPathType::Sysotherwise; withNone(any CPU) it is judged against its own node and so is alwaysPathType::Phb. Bandwidth is the device’s PCIe chain bottleneck. - get_
cuda_ pci_ address - PCI address of the CUDA device with ordinal
idx, read from/proc/driver/nvidia/gpus/*/information(the NVIDIA driver keys each GPU’s bus id there by its device minor, which equals the CUDA ordinal). - pci_
path - The
PathTypeand bottleneck bandwidth of the PCIe path between two PCI endpoints.