Skip to content

NVIDIA Linux open GPU kernel module source (P2P for RTX 3090 enabled)

License

Notifications You must be signed in to change notification settings

guru1987/open-gpu-kernel-modules

 
 

NVIDIA Open GPU Kernel Modules - P2P Enabled

P2P on RTX 3090/4090 with the 580.105.08 driver.

Results

  • Bandwidth: 10 GB/s → 26 GB/s (2.6x faster)
  • Latency: 15-20 μs → 1.5 μs (10x faster)

BIOS Settings

  • IOMMU / AMD-Vi / VT-d: Disabled
  • Above 4G Decoding: Enabled
  • Resizable BAR: Enabled
  • ACS: Disabled (if available)

Kernel Parameters

Add to /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="pci=realloc pci=hpmmioprefsize=128G"

Then run:

sudo update-grub && sudo reboot

Module Configuration

Create /etc/modprobe.d/nvidia.conf:

options nvidia NVreg_OpenRmEnableUnsupportedGpus=1 NVreg_EnableResizableBar=1

Install

# Download driver
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/580.105.08/NVIDIA-Linux-x86_64-580.105.08.run

# Install NVIDIA driver without kernel modules
sudo sh NVIDIA-Linux-x86_64-580.105.08.run --no-kernel-modules --silent --accept-license

# Build and install P2P-enabled kernel modules
git clone -b 580.105.08-p2p https://github.com/guru1987/open-gpu-kernel-modules
cd open-gpu-kernel-modules
./install.sh

Verify

nvidia-smi topo -p2p r   # Should show "OK" for all pairs

Credits

Special Thanks

Claude Opus 4.5 by Anthropic - Patch development, debugging, and documentation


See INSTALL.md for detailed instructions and docs/ for benchmarks.

About

NVIDIA Linux open GPU kernel module source (P2P for RTX 3090 enabled)

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.3%
  • C++ 1.4%
  • Shell 0.2%
  • Makefile 0.1%
  • Python 0.0%
  • Rust 0.0%