Skip to content

nvidia 5090 p2p bandwidth so small #6

@wolftankk

Description

@wolftankk

NVIDIA Open GPU Kernel Modules Version

580.82.09

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.

  • I confirm that this does not happen with the proprietary driver package.

Operating System and Version

Ubuntu 22.04.5 LTS

Kernel Release

5.15.0-136-generic

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.

  • I am running on a stable kernel release.

Hardware: GPU

NVIDIA GeForce RTX 5090

Describe the bug

install driver, p2p has enabled, but test simpleP2P failed and bandwidth only 3.39GB/s.

./simpleP2P
[./simpleP2P] - Starting...
Checking for multiple GPUs...
CUDA-capable device count: 8

Checking GPU(s) for support of peer to peer memory access...
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU0) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU1) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU2) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU3) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU4) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU5) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU6) -> NVIDIA GeForce RTX 5090 (GPU7) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU0) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU1) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU2) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU3) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU4) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU5) : Yes
> Peer access from NVIDIA GeForce RTX 5090 (GPU7) -> NVIDIA GeForce RTX 5090 (GPU6) : Yes
Enabling peer access between GPU0 and GPU1...
Allocating buffers (64MB on GPU0, GPU1 and CPU Host)...
Creating event handles...
cudaMemcpyPeer / cudaMemcpy between GPU0 and GPU1: 3.39GB/s
Preparing host buffer and memcpy to GPU0...
Run kernel on GPU1, taking source data from GPU0 and writing to GPU1...
Run kernel on GPU0, taking source data from GPU1 and writing to GPU0...
Copy data back to host from GPU0 and verify results...
Verification error @ element 0: val = nan, ref = 0.000000
Verification error @ element 1: val = nan, ref = 4.000000
Verification error @ element 2: val = nan, ref = 8.000000
Verification error @ element 3: val = nan, ref = 12.000000
Verification error @ element 4: val = nan, ref = 16.000000
Verification error @ element 5: val = nan, ref = 20.000000
Verification error @ element 6: val = nan, ref = 24.000000
Verification error @ element 7: val = nan, ref = 28.000000
Verification error @ element 8: val = nan, ref = 32.000000
Verification error @ element 9: val = nan, ref = 36.000000
Verification error @ element 10: val = nan, ref = 40.000000
Verification error @ element 11: val = nan, ref = 44.000000
Disabling peer access...
Shutting down...
Test failed!

p2pBandwidthLatencyTest

[P2P (Peer-to-Peer) GPU Bandwidth Latency Test]
Device: 0, NVIDIA GeForce RTX 5090, pciBusID: 16, pciDeviceID: 0, pciDomainID:0
Device: 1, NVIDIA GeForce RTX 5090, pciBusID: 27, pciDeviceID: 0, pciDomainID:0
Device: 2, NVIDIA GeForce RTX 5090, pciBusID: 38, pciDeviceID: 0, pciDomainID:0
Device: 3, NVIDIA GeForce RTX 5090, pciBusID: 5a, pciDeviceID: 0, pciDomainID:0
Device: 4, NVIDIA GeForce RTX 5090, pciBusID: 98, pciDeviceID: 0, pciDomainID:0
Device: 5, NVIDIA GeForce RTX 5090, pciBusID: a8, pciDeviceID: 0, pciDomainID:0
Device: 6, NVIDIA GeForce RTX 5090, pciBusID: b8, pciDeviceID: 0, pciDomainID:0
Device: 7, NVIDIA GeForce RTX 5090, pciBusID: d8, pciDeviceID: 0, pciDomainID:0
Device=0 CAN Access Peer Device=1
Device=0 CAN Access Peer Device=2
Device=0 CAN Access Peer Device=3
Device=0 CAN Access Peer Device=4
Device=0 CAN Access Peer Device=5
Device=0 CAN Access Peer Device=6
Device=0 CAN Access Peer Device=7
Device=1 CAN Access Peer Device=0
Device=1 CAN Access Peer Device=2
Device=1 CAN Access Peer Device=3
Device=1 CAN Access Peer Device=4
Device=1 CAN Access Peer Device=5
Device=1 CAN Access Peer Device=6
Device=1 CAN Access Peer Device=7
Device=2 CAN Access Peer Device=0
Device=2 CAN Access Peer Device=1
Device=2 CAN Access Peer Device=3
Device=2 CAN Access Peer Device=4
Device=2 CAN Access Peer Device=5
Device=2 CAN Access Peer Device=6
Device=2 CAN Access Peer Device=7
Device=3 CAN Access Peer Device=0
Device=3 CAN Access Peer Device=1
Device=3 CAN Access Peer Device=2
Device=3 CAN Access Peer Device=4
Device=3 CAN Access Peer Device=5
Device=3 CAN Access Peer Device=6
Device=3 CAN Access Peer Device=7
Device=4 CAN Access Peer Device=0
Device=4 CAN Access Peer Device=1
Device=4 CAN Access Peer Device=2
Device=4 CAN Access Peer Device=3
Device=4 CAN Access Peer Device=5
Device=4 CAN Access Peer Device=6
Device=4 CAN Access Peer Device=7
Device=5 CAN Access Peer Device=0
Device=5 CAN Access Peer Device=1
Device=5 CAN Access Peer Device=2
Device=5 CAN Access Peer Device=3
Device=5 CAN Access Peer Device=4
Device=5 CAN Access Peer Device=6
Device=5 CAN Access Peer Device=7
Device=6 CAN Access Peer Device=0
Device=6 CAN Access Peer Device=1
Device=6 CAN Access Peer Device=2
Device=6 CAN Access Peer Device=3
Device=6 CAN Access Peer Device=4
Device=6 CAN Access Peer Device=5
Device=6 CAN Access Peer Device=7
Device=7 CAN Access Peer Device=0
Device=7 CAN Access Peer Device=1
Device=7 CAN Access Peer Device=2
Device=7 CAN Access Peer Device=3
Device=7 CAN Access Peer Device=4
Device=7 CAN Access Peer Device=5
Device=7 CAN Access Peer Device=6

***NOTE: In case a device doesn't have P2P access to other one, it falls back to normal memcopy procedure.
So you can see lesser Bandwidth (GB/s) and unstable Latency (us) in those cases.

P2P Connectivity Matrix
     D\D     0     1     2     3     4     5     6     7
     0	     1     1     1     1     1     1     1     1
     1	     1     1     1     1     1     1     1     1
     2	     1     1     1     1     1     1     1     1
     3	     1     1     1     1     1     1     1     1
     4	     1     1     1     1     1     1     1     1
     5	     1     1     1     1     1     1     1     1
     6	     1     1     1     1     1     1     1     1
     7	     1     1     1     1     1     1     1     1
Unidirectional P2P=Disabled Bandwidth Matrix (GB/s)
   D\D     0      1      2      3      4      5      6      7
     0 1534.87  43.67  44.03  43.78  42.46  42.50  42.42  42.56
     1  43.25 1553.18  43.64  43.39  42.36  42.52  42.45  42.38
     2  43.65  43.34 1559.48  43.43  42.37  42.39  42.33  42.39
     3  43.95  43.68  43.21 1547.13  42.40  42.43  42.37  42.42
     4  42.50  42.66  42.30  42.57 1559.38  42.40  42.40  42.54
     5  42.43  42.55  42.39  42.56  42.47 1556.27  42.51  42.44
     6  42.27  42.53  42.32  42.60  42.45  42.45 1559.43  42.43
     7  42.54  42.62  42.33  42.64  42.55  42.44  42.67 1556.27
Unidirectional P2P=Enabled Bandwidth (P2P Writes) Matrix (GB/s)
   D\D     0      1      2      3      4      5      6      7
     0 1522.90   2.00   1.99   2.00   1.99   1.99   1.99   1.99
     1  21.07 1537.99   1.99   2.00   1.99   1.99   1.99   1.99
     2   1.99  21.07 1543.97   1.99   1.99   1.99   1.99   1.99
     3   1.99   1.99   2.00 1543.97   1.99   1.99   1.99   1.99
     4   1.99   1.99   1.99   1.99 1540.93   2.00   1.99   2.00
     5   1.99   1.99   1.99   1.99  21.07 1540.93   1.99   2.00
     6   1.99   1.99   1.99   1.99   2.00  21.07 1540.93   2.00
     7   1.99   1.99   1.99   1.99   1.99   1.99   2.00 1556.27
Bidirectional P2P=Disabled Bandwidth Matrix (GB/s)
   D\D     0      1      2      3      4      5      6      7
     0 1527.30  57.34  57.22  57.23  57.08  57.18  56.71  57.11
     1  57.50 1538.60  57.73  57.41  57.14  57.04  56.73  57.47
     2  57.36  57.22 1540.88  57.41  57.88  57.25  57.23  56.87
     3  57.42  57.24  57.91 1540.10  57.16  56.67  56.76  56.96
     4  56.87  57.13  56.84  56.64 1540.12  52.52  53.22  53.40
     5  56.45  56.41  56.40  57.51  52.90 1540.12  53.20  53.34
     6  56.44  56.51  57.17  56.93  53.30  53.24 1541.64  53.35
     7  56.85  57.70  56.77  56.86  53.37  53.36  53.30 1540.12
Bidirectional P2P=Enabled Bandwidth Matrix (GB/s)
   D\D     0      1      2      3      4      5      6      7
     0 1527.30   3.99   3.99   3.99   3.99   3.99   3.99   3.99
     1   3.99 1539.36   3.99   3.99   3.99   3.99   3.99   3.99
     2   3.99   3.99 1541.62   3.99   3.99   3.99   3.99   3.99
     3   3.99   3.99   3.99 1540.86   3.99   3.99   3.99   3.99
     4   3.99   3.99   3.99   3.99 1540.88   3.99   3.99   3.99
     5   3.99   3.99   3.99   3.99   3.99 1540.10   3.99   3.99
     6   3.99   3.99   3.99   3.99   3.99   3.99 1540.12   3.99
     7   3.99   3.99   3.99   3.99   3.99   3.99   3.99 1540.88
P2P=Disabled Latency Matrix (us)
   GPU     0      1      2      3      4      5      6      7
     0   2.07  14.31  14.30  14.29  14.32  14.32  14.36  14.31
     1  14.31   2.07  14.37  14.17  14.31  14.33  14.33  14.38
     2  13.19  13.02   2.07  14.32  14.34  14.34  14.31  14.40
     3  14.32  14.27  14.15   2.07  14.31  14.41  14.31  14.31
     4  14.33  14.34  14.37  14.37   2.07  14.33  14.12  14.25
     5  14.32  14.36  14.31  14.38  14.23   2.07  14.33  14.31
     6  14.34  14.51  14.34  14.31  14.32  14.33   2.07  14.33
     7  14.32  14.36  14.36  14.33  14.32  14.32  14.31   2.07

   CPU     0      1      2      3      4      5      6      7
     0   3.20   8.82   8.52   8.50   8.96   9.15   9.07   9.27
     1   8.98   3.01   8.63   8.74   9.25   9.36   9.26   9.41
     2   9.13   9.07   3.05   8.86   9.31   9.51   9.66   9.84
     3   9.43   9.15   9.27   3.16   9.90   9.96   9.93  10.03
     4   9.93  10.00   9.95  10.10   3.53  10.61  10.65  10.91
     5  10.50  10.40  10.41  10.48  11.26   3.68  11.32  11.31
     6  10.82  10.51  10.78  10.95  11.46  11.73   3.74  12.02
     7  11.84  11.54  11.41  11.47  12.05  12.33  12.23   3.90
P2P=Enabled Latency (P2P Writes) Matrix (us)
   GPU     0      1      2      3      4      5      6      7
     0   2.07   0.44   0.37   0.37   0.38   0.38   0.38   0.44
     1   0.43   2.07   0.37   0.43   0.36   0.44   0.37   0.36
     2   0.38   0.43   2.07   0.36   0.37   0.37   0.37   0.44
     3   0.38   0.36   0.37   2.07   0.37   0.38   0.44   0.37
     4   0.40   0.40   0.46   0.42   2.07   0.47   0.45   0.40
     5   0.41   0.40   0.40   0.41   0.44   2.07   0.39   0.46
     6   0.47   0.40   0.39   0.40   0.46   0.36   2.07   0.44
     7   0.46   0.40   0.41   0.47   0.38   0.40   0.46   2.07

   CPU     0      1      2      3      4      5      6      7
     0   3.68   2.83   2.75   2.72   2.81   2.71   2.70   2.81
     1   2.85   3.60   2.75   2.74   2.73   2.74   2.73   2.72
     2   2.89   2.74   3.59   2.84   2.76   2.75   2.75   2.71
     3   2.92   2.75   2.84   3.72   2.77   2.73   2.84   2.76
     4   3.23   3.02   3.03   3.03   3.87   2.99   3.04   3.00
     5   3.17   3.14   3.05   3.03   3.05   4.03   3.02   3.02
     6   2.90   2.79   2.79   2.79   2.89   2.81   3.94   2.76
     7   3.19   3.10   3.13   3.07   3.07   3.07   3.05   3.91

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

in dmesg err:

[  291.329035] NVRM: nvAssertFailedNoLog: Assertion failed: ((base & RM_PAGE_MASK) == 0) @ kern_bus.c:295
[  291.329054] NVRM: nvAssertFailedNoLog: Assertion failed: remoteWMBoxLocalAddr != ~0ULL @ kern_bus_gm200.c:89

To Reproduce

in ubuntu, download nvidia driver from https://www.nvidia.com/en-us/drivers/details/254126/

install nvidia driver

exec ./install

reboot

Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions