Hi there,
Did anyone else notice that the recently announced [1] “repackaging” of the Linux kernel driver in the CUDA packages repository [2] seems to be pulling the whole X11 stack (from Xorg server to gtk3, fonts and hicolor-icon-theme)?
Does that mean that all headless compute systems now need to install a full graphical stack just to run CUDA compute kernels? That seems quite unpractical…
But here what happens on a freshly deployed CentOS 7.6 system:
# cd /etc/yum.repos.d/
# wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
# # yum install nvidia-kmod
Package nvidia-kmod is obsoleted by kmod-nvidia-latest-dkms, trying to install 3:kmod-nvidia-latest-dkms-418.87.00-1.el7.x86_64 instead
Resolving Dependencies
--> Running transaction check
---> Package kmod-nvidia-latest-dkms.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-driver = 3:418.87.00 for package: 3:kmod-nvidia-latest-dkms-418.87.00-1.el7.x86_64
--> Running transaction check
---> Package nvidia-driver-latest.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-modprobe-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-xconfig-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-settings-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-NvFBCOpenGL(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-libs(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-devel(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-cuda(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-cuda-libs(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-libXNVCtrl-latest-devel(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-NVML(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-libXNVCtrl-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: xorg-x11-server-Xorg(x86-64) >= 1.16 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: yum-plugin-nvidia for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: libnvidia-tls.so.418.87.00()(64bit) for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: libnvidia-glcore.so.418.87.00()(64bit) for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Running transaction check
---> Package nvidia-driver-latest-NVML.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-NvFBCOpenGL.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libGL.so.1()(64bit) for package: 3:nvidia-driver-latest-NvFBCOpenGL-418.87.00-1.el7.x86_64
---> Package nvidia-driver-latest-cuda.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-persistenced-latest = 3:418.87.00 for package: 3:nvidia-driver-latest-cuda-418.87.00-1.el7.x86_64
---> Package nvidia-driver-latest-cuda-libs.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-devel.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-libs.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libglvnd-gles(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libvdpau(x86-64) >= 0.5 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd-opengl(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd-egl(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: vulkan-filesystem for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
---> Package nvidia-libXNVCtrl-latest.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-libXNVCtrl-latest-devel.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libX11-devel for package: 3:nvidia-libXNVCtrl-latest-devel-418.87.00-1.el7.x86_64
[...]
Dependencies Resolved
========================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================
Installing:
kmod-nvidia-latest-dkms x86_64 3:418.87.00-1.el7 cuda 13 M
Installing for dependencies:
adwaita-cursor-theme noarch 3.28.0-1.el7 base 641 k
adwaita-icon-theme noarch 3.28.0-1.el7 base 11 M
at-spi2-atk x86_64 2.26.2-1.el7 base 81 k
at-spi2-core x86_64 2.28.0-1.el7 base 158 k
atk x86_64 2.28.1-1.el7 base 263 k
cairo x86_64 1.15.12-3.el7 base 741 k
cairo-gobject x86_64 1.15.12-3.el7 base 25 k
colord-libs x86_64 1.3.4-1.el7 base 185 k
dconf x86_64 0.28.0-4.el7 base 106 k
dejavu-fonts-common noarch 2.33-6.el7 base 64 k
dejavu-sans-fonts noarch 2.33-6.el7 base 1.4 M
fontconfig x86_64 2.13.0-4.3.el7 base 254 k
fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k
fribidi x86_64 1.0.2-1.el7 base 79 k
gdk-pixbuf2 x86_64 2.36.12-3.el7 base 570 k
glib-networking x86_64 2.56.1-1.el7 base 145 k
graphite2 x86_64 1.3.10-1.el7_3 base 115 k
gsettings-desktop-schemas x86_64 3.28.0-2.el7 base 605 k
gtk-update-icon-cache x86_64 3.22.30-3.el7 base 28 k
gtk2 x86_64 2.24.31-1.el7 base 3.4 M
gtk3 x86_64 3.22.30-3.el7 base 4.4 M
harfbuzz x86_64 1.7.5-2.el7 base 267 k
hicolor-icon-theme noarch 0.12-7.el7 base 42 k
jasper-libs x86_64 1.900.1-33.el7 base 150 k
jbigkit-libs x86_64 2.0-11.el7 base 46 k
json-glib x86_64 1.4.2-2.el7 base 134 k
lcms2 x86_64 2.6-3.el7 base 150 k
libX11-devel x86_64 1.6.5-2.el7 base 980 k
libXau-devel x86_64 1.0.8-2.1.el7 base 14 k
libXcomposite x86_64 0.4.4-4.1.el7 base 22 k
libXcursor x86_64 1.1.15-1.el7 base 30 k
libXdamage x86_64 1.1.4-4.1.el7 base 20 k
libXdmcp x86_64 1.1.2-6.el7 base 34 k
libXfixes x86_64 5.0.3-1.el7 base 18 k
libXfont2 x86_64 2.0.3-1.el7 base 143 k
libXft x86_64 2.3.2-2.el7 base 58 k
libXi x86_64 1.7.9-1.el7 base 40 k
libXinerama x86_64 1.1.3-2.1.el7 base 14 k
libXrandr x86_64 1.5.1-2.el7 base 27 k
libXrender x86_64 0.9.10-1.el7 base 26 k
libXtst x86_64 1.2.3-1.el7 base 20 k
libXxf86vm x86_64 1.1.4-1.el7 base 18 k
libdrm x86_64 2.4.91-3.el7 base 153 k
libepoxy x86_64 1.5.2-1.el7 base 211 k
libfontenc x86_64 1.1.3-3.el7 base 31 k
libglvnd x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 89 k
libglvnd-egl x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 44 k
libglvnd-gles x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 34 k
libglvnd-glx x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 125 k
libglvnd-opengl x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 43 k
libgusb x86_64 0.2.9-1.el7 base 40 k
libjpeg-turbo x86_64 1.2.90-6.el7 base 134 k
libmodman x86_64 2.0.1-8.el7 base 28 k
libpciaccess x86_64 0.14-1.el7 base 26 k
libproxy x86_64 0.4.11-11.el7 base 64 k
libsoup x86_64 2.62.2-2.el7 base 411 k
libthai x86_64 0.1.14-9.el7 base 187 k
libtiff x86_64 4.0.3-27.el7_3 base 170 k
libvdpau x86_64 1.1.1-3.el7 base 34 k
libwayland-client x86_64 1.15.0-1.el7 base 33 k
libwayland-cursor x86_64 1.15.0-1.el7 base 20 k
libwayland-egl x86_64 1.15.0-1.el7 base 13 k
libwayland-server x86_64 1.15.0-1.el7 base 39 k
libxcb-devel x86_64 1.13-1.el7 base 1.1 M
libxkbcommon x86_64 0.7.1-1.el7 base 108 k
libxkbfile x86_64 1.0.9-3.el7 base 83 k
libxshmfence x86_64 1.2-1.el7 base 7.2 k
mesa-libEGL x86_64 18.0.5-4.el7_6 updates 102 k
mesa-libGL x86_64 18.0.5-4.el7_6 updates 162 k
mesa-libgbm x86_64 18.0.5-4.el7_6 updates 38 k
mesa-libglapi x86_64 18.0.5-4.el7_6 updates 44 k
nvidia-driver-latest x86_64 3:418.87.00-1.el7 cuda 5.6 M
nvidia-driver-latest-NVML x86_64 3:418.87.00-1.el7 cuda 568 k
nvidia-driver-latest-NvFBCOpenGL x86_64 3:418.87.00-1.el7 cuda 137 k
nvidia-driver-latest-cuda x86_64 3:418.87.00-1.el7 cuda 395 k
nvidia-driver-latest-cuda-libs x86_64 3:418.87.00-1.el7 cuda 32 M
nvidia-driver-latest-devel x86_64 3:418.87.00-1.el7 cuda 18 k
nvidia-driver-latest-libs x86_64 3:418.87.00-1.el7 cuda 45 M
nvidia-libXNVCtrl-latest x86_64 3:418.87.00-1.el7 cuda 54 k
nvidia-libXNVCtrl-latest-devel x86_64 3:418.87.00-1.el7 cuda 62 k
nvidia-modprobe-latest x86_64 3:418.87.00-1.el7 cuda 72 k
nvidia-persistenced-latest x86_64 3:418.87.00-1.el7 cuda 100 k
nvidia-settings-latest x86_64 3:418.87.00-1.el7 cuda 3.9 M
nvidia-xconfig-latest x86_64 3:418.87.00-1.el7 cuda 272 k
pango x86_64 1.42.4-2.el7_6 updates 280 k
pixman x86_64 0.34.0-1.el7 base 248 k
rest x86_64 0.8.1-2.el7 base 63 k
vulkan-filesystem noarch 1.1.73.0-1.el7 base 6.2 k
xkeyboard-config noarch 2.24-1.el7 base 834 k
xorg-x11-proto-devel noarch 2018.4-1.el7 base 280 k
xorg-x11-server-Xorg x86_64 1.20.1-5.6.el7_6 updates 1.4 M
xorg-x11-server-common x86_64 1.20.1-5.6.el7_6 updates 54 k
xorg-x11-xkb-utils x86_64 7.7-14.el7 base 103 k
yum-plugin-nvidia noarch 0.3-1.el7 cuda 9.9 k
Transaction Summary
========================================================================================================================================
Install 1 Package (+94 Dependent packages)
Total download size: 135 M
Installed size: 411 M
Is this ok [y/d/N]:
I’ll go with “No”, it’s not ok to pull 411M of dependencies, including icon packs and fonts, just to install a kernel module…
From what I can see, the problem comes from the fact that all the nvidia-* RPMs depend on nvidia-settings, which in turns depends on Xorg and the whole shebang.
It would be great if that dependency issue could be fixed quickly.
[1] https://news.developer.nvidia.com/nvidia-and-red-hat-simplifying-nvidia-gpu-driver-deployment-on-red-hat-enterprise-linux/
[2] https://developer.download.nvidia.com/compute/cuda/repos