flashinfer.comm.UlyssesRankTopology

class flashinfer.comm.UlyssesRankTopology(rank: int, hostname: str = '', device_index: int = -1, device_uuid: str = '', pci_bus_id: str = '', numa_node: int = -1, nic_name: str = '', peer_p2p: ~typing.Dict[str, bool] = <factory>, peer_nvlink: ~typing.Dict[str, bool] = <factory>, pair_errors: ~typing.Dict[str, str] = <factory>, route: str = 'auto', nics: str = '', pcie_error: str | None = None, probe_error: str | None = None, gid_index: int = -1, gid_indices_override: ~typing.Tuple[int, ...] | None = None, gid_error: str | None = None)

Per-rank topology probe result, exchanged across the group.

peer_p2p / peer_nvlink are keyed by the peer GPU’s UUID so the decision layer can join results across ranks regardless of each process’s CUDA_VISIBLE_DEVICES ordering. A peer GPU that is not visible to this rank is simply absent from the dicts (treated as no-P2P).

__init__(rank: int, hostname: str = '', device_index: int = -1, device_uuid: str = '', pci_bus_id: str = '', numa_node: int = -1, nic_name: str = '', peer_p2p: ~typing.Dict[str, bool] = <factory>, peer_nvlink: ~typing.Dict[str, bool] = <factory>, pair_errors: ~typing.Dict[str, str] = <factory>, route: str = 'auto', nics: str = '', pcie_error: str | None = None, probe_error: str | None = None, gid_index: int = -1, gid_indices_override: ~typing.Tuple[int, ...] | None = None, gid_error: str | None = None) → None

Methods

__init__(rank[, hostname, device_index, ...])

Attributes

device_index

device_uuid

gid_error

gid_index

gid_indices_override

hostname

nic_name

nics

numa_node

pci_bus_id

pcie_error

probe_error

route

rank

peer_p2p

peer_nvlink

pair_errors