I’ve created experimental CUDA packages that try to follow Fedora packaging guidelines as close as possible. Those have been updated to the Nvidia Fedora 20 repository, and are installable through normal
To install them, you need to use my repository that contains the latest drivers.
Table of Contents
32 bit support
Nvidia is slowly fading out 32 bit support from CUDA, and you can see it reflected in the various packages. The Unified Video Memory kernel module (
nvidia-uvm.ko has been removed in version 346.16, CUDA graphical programs are 64 bit only, many libraries and compilers are available in 64 bit only, etc.
I’ve uploaded packages only to the Fedora 20 repository, as they are very big and this is what I’m using at the moment as my main desktop. To help test these, I’ve also added a package for ccminer, a CUDA cryptocurrency miner that links to the packages and requires them to be built. By installing it, all required CUDA runtime libraries should be installed as well.
If all goes well, my plan is to enable CUDA packages for all supported Fedora/CentOS/RHEL distributions and add also package software that in the current form do not use the Nvidia libraries.
As an example, the Blender package in Fedora does not (obviously) link to the CUDA libraries, so no CUDA rendering. On the contrary, the binary that you can download from the Blender website is linked statically to the CUDA libraries at compile time.
After some feedback I will enable them for all the other distributions. So if you need them, please test them.
A brief recap on the packages, here we have the full list of drivers and CUDA packages that are available inside the repository folder:
$ ls -1 *nvidia* *cuda* akmod-nvidia-343.22-2.fc20.x86_64.rpm cuda-6.5.19-2.fc20.x86_64.rpm cuda-cli-tools-6.5.19-2.fc20.x86_64.rpm cuda-devel-6.5.19-2.fc20.i686.rpm cuda-devel-6.5.19-2.fc20.x86_64.rpm cuda-docs-6.5.19-2.fc20.noarch.rpm cuda-extra-libs-6.5.19-2.fc20.i686.rpm cuda-extra-libs-6.5.19-2.fc20.x86_64.rpm cuda-libs-6.5.19-2.fc20.i686.rpm cuda-libs-6.5.19-2.fc20.x86_64.rpm cuda-nsight-6.5.19-2.fc20.x86_64.rpm cuda-nvvp-6.5.19-2.fc20.x86_64.rpm dkms-nvidia-343.22-2.fc20.x86_64.rpm kmod-nvidia-343.22-2.fc20.x86_64.rpm nvidia-driver-343.22-1.fc20.x86_64.rpm nvidia-driver-cuda-343.22-1.fc20.x86_64.rpm nvidia-driver-cuda-libs-343.22-1.fc20.i686.rpm nvidia-driver-cuda-libs-343.22-1.fc20.x86_64.rpm nvidia-driver-devel-343.22-1.fc20.i686.rpm nvidia-driver-devel-343.22-1.fc20.x86_64.rpm nvidia-driver-libs-343.22-1.fc20.i686.rpm nvidia-driver-libs-343.22-1.fc20.x86_64.rpm nvidia-driver-NvFBCOpenGL-343.22-1.fc20.i686.rpm nvidia-driver-NvFBCOpenGL-343.22-1.fc20.x86_64.rpm nvidia-driver-NVML-343.22-1.fc20.i686.rpm nvidia-driver-NVML-343.22-1.fc20.x86_64.rpm nvidia-driver-NVML-devel-340.29-1.fc20.i686.rpm nvidia-driver-NVML-devel-340.29-1.fc20.x86_64.rpm nvidia-healthmon-340.29-1.fc20.x86_64.rpm nvidia-libXNVCtrl-343.22-1.fc20.i686.rpm nvidia-libXNVCtrl-343.22-1.fc20.x86_64.rpm nvidia-libXNVCtrl-devel-343.22-1.fc20.i686.rpm nvidia-libXNVCtrl-devel-343.22-1.fc20.x86_64.rpm nvidia-modprobe-343.22-1.fc20.x86_64.rpm nvidia-persistenced-343.22-2.fc20.x86_64.rpm nvidia-settings-343.22-1.fc20.x86_64.rpm nvidia-xconfig-343.22-1.fc20.x86_64.rpm
From the above list, packages can be grouped as follows for an x86_64 system. For additional details, please see the repository page.
Kernel modules, in both
dkms variants. Instantiated kernel modules are available as rebuild in both by enabling the appropriate configuration on your system.
akmod-nvidia dkms-nvidia kmod-nvidia
These are the basic driver packages, they are what is required along the kernel module packages to have accelerated drivers and full OpenGL support for a normal desktop. That is gaming, office use, etc. But no CUDA support.
nvidia-driver nvidia-driver-libs.i686 nvidia-driver-libs nvidia-libXNVCtrl nvidia-libXNVCtrl.i686 nvidia-settings
Then we have the CUDA libraries and tools that are part of the drivers and not of the full CUDA toolkit, as they are closely tied to the drivers:
nvidia-driver-cuda nvidia-driver-cuda-libs.i686 nvidia-driver-cuda-libs nvidia-persistenced
Then there are extra tools and libraries, like Framebuffer Compression OpenGL libraries, GPU Deployment Kit (NVML, also called Nvidia Management Library), command line configuration for very specific X.org setups and a tool that leverages the NVML library to perform health checks on GPU clusters.
Please note that the Nvidia Management Library headers and tools do not follow the same versioning of the main driver set as they are provided by Nvidia in a separate bundle that is compatible across multiple releases of the drivers. For example, at the time of writing this, we have 340.58 (long lived), 343.22 (short lived) and 346.18 (beta) drivers available.
All works with version 340.29 of the NVML libraries.
nvidia-driver-NvFBCOpenGL.i686 nvidia-driver-NvFBCOpenGL nvidia-driver-NVML.i686 nvidia-driver-NVML nvidia-healthmon nvidia-modprobe nvidia-xconfig
Lastly, we have all the development files (unversioned library symlinks, headers and documentation) for compiling programs that link to the above driver libraries.
nvidia-driver-devel.i686 nvidia-driver-devel nvidia-driver-NVML-devel.i686 nvidia-driver-NVML-devel
After those, that have been provided here for more than a year, I’ve now added CUDA packages. These can be splitted into multiple components as well; first group contains most runtime components for simply running CUDA enabled programs:
cuda-libs.i686 cuda-libs cuda-extra-libs.i686 cuda-extra-libs
Then we have development files (headers, stub libraries, documentation, compilers, etc.) for compiling programs that link to the CUDA libraries:
cuda cuda-cli-tools cuda-devel.i686 cuda-devel cuda-docs.noarch
And then finally, we have Java GUI programs (debuggers, etc.):
Official Nvidia repositories
All the packages provide/require/obsolete the relevant driver packages in the RPMFusion repository and all the CUDA packages in the Nvidia repository; so you can enable this repository along with the official Nvidia CUDA one and RPMFusion at the same time. Packages will get upgraded accordingly.