いずれにせよ、プロ用GPU(GeForce以外)または P2P が有効なドライバを持っているが、nvlink ブリッジがなく、vllm を試すとハングします....
実際には、vllm は裏で NCCL に依存しており、 nvlink を持っていると仮定して p2p を試みます。しかし、GPU が PCIe 経由の p2p を可能にしていても nvlink が失敗することがあります。
それが、至る所で NCCL_P2P_DISABLE=0 を見る理由です。
では PCIe 上で p2p をどう使えますか? nccl にどのレベルの p2p が許容されるかを伝えることです。 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/env.html#nccl-p2p-level
以下を追加することで VLLM_SKIP_P2P_CHECK=1 NCCL_P2P_LEVEL=SYS(もちろん、あなたの iommu が適切に設定されている場合) nccl に対して、マザーボード上で跨ぐ必要があるものはすべて問題なく通過すると伝えます
注意: Sapphire Rapid PCIe P2P は NTB の制限のため Gen 4 に制限されています
NCCL_P2P_LEVEL の受け入れ可能な値は以下
LOC : P2P を一切使わない(常に無効) NVL : GPU が NVLink 経由で接続されている場合に P2P を使用 PIX : GPU が同じ PCI スイッチ上にある場合は P2P を使用 PXB : PCI スイッチを介して接続されている GPU に対して P2P を使用(複数ホップの可能性) PHB : GPU が同じ NUMA ノード上にある場合は P2P を使用。トラフィックは CPU を通る SYS : NUMA ノード間で P2P を使用、SMP イントコネクトを跨る可能性(例: QPI/UPI) [リンク] [コメント]


