特定对之间的多 GPU 点对点慢

Multi-GPU Peer-to-Peer Slow between Particular Pairs

我有 8 个 RTX GPU。 运行 p2pBandwidthLatencyTest 时,GPU0 和 GPU1、GPU2 和 GPU3、GPU4 和 GPU5、GPU6 和 GPU7 之间的延迟比其他对慢 40,000 倍:

P2P=Enabled Latency (P2P Writes) Matrix (us)
   GPU     0      1      2      3      4      5      6      7 
     0   1.80 49354.72   1.70   1.70   1.74   1.74   1.74   1.72 
     1 49354.84   1.37   1.70   1.69   1.74   1.76   1.73   1.72 
     2   1.88   1.81   1.73 49355.00   1.79   1.76   1.76   1.75 
     3   1.88   1.79 49354.85   1.33   3.79   3.84   3.88   3.91 
     4   1.89   1.88   1.90   1.87   1.72 49354.96   3.49   3.56 
     5   2.30   1.93   1.88   1.89 49354.89   1.32   3.63   3.60 
     6   2.55   2.53   2.37   2.29   2.24   2.26   3.50 49354.77 
     7   2.30   2.27   2.29   1.87   1.82   1.83 49354.85   1.36 

与禁用点对点时的比较:

P2P=Disabled Latency Matrix (us)
   GPU     0      1      2      3      4      5      6      7 
     0   1.80  14.31  13.86  13.49  14.52  13.89  13.58  13.58 
     1  13.71   1.82  14.44  13.95  14.65  13.62  15.05  15.20 
     2  13.38  14.23   1.73  16.59  13.77  15.44  14.10  13.64 
     3  12.68  15.62  12.50   1.77  14.92  15.01  15.17  14.87 
     4  13.51  13.60  15.09  13.40   1.27  12.48  12.68  19.47 
     5  14.92  13.84  13.42  13.42  16.53   1.30  16.37  16.60 
     6  14.29  13.62  14.66  13.62  14.90  13.70   1.32  14.33 
     7  14.26  13.42  14.35  13.53  16.89  14.26  17.03   1.36 

这正常吗?

原来超慢点对点不正常.

我在 BIOS 中禁用 IOMMU (Intel VT-d) 后,问题消失了:

P2P=Enabled Latency (P2P Writes) Matrix (us)
   GPU     0      1      2      3      4      5      6      7 
     0   1.34   1.22   1.68   1.69   1.71   1.70   1.75   1.73 
     1   1.20   1.38   1.70   1.67   1.71   1.75   1.75   1.72 
     2   1.69   1.67   1.29   1.20   1.73   1.75   1.75   1.75 
     3   1.69   1.66   1.17   1.29   1.74   1.75   1.72   1.73 
     4   1.72   1.76   1.74   1.70   1.32   1.13   1.66   1.70 
     5   1.74   1.73   1.75   1.74   1.18   1.28   1.67   1.69 
     6   1.75   1.74   1.74   1.72   1.67   1.68   1.31   1.19 
     7   1.76   1.75   1.73   1.73   1.67   1.69   1.18   1.32 

问题似乎与以下讨论相同或非常相似:

讨论中提到了一些可能的解决方案:

禁用 IOMMU:

禁用 ACS:

我的系统出现问题只是在 BIOS 中启用了 IOMMU。 ACS 未打开,因为 lspci -vvv | grep ACS 没有返回任何信息。

================================

I/O MMU 的背景:

https://en.wikipedia.org/wiki/X86_virtualization#I/O_MMU_virtualization_(AMD-Vi_and_Intel_VT-d)

它是 x86 虚拟化的一部分。这是芯片组完成的虚拟化。除了名称 IOMMU,它也被称为 AMD-Vi 或 Intel VT-d。不要与通过 CPU.

虚拟化的 AMD-V 和 Intel VT-x 混淆