Edit Info Other
Login

CUDA"

Differences between revisions 3 and 37 (spanning 34 versions)
Revision 3 as of 2016-12-14 11:14:40
Size: 2240
Comment:
Revision 37 as of 2019-12-16 20:52:26
Size: 6239
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Howto/NVIDIA_CUDA
Line 5: Line 6:
== Repository ==
Th
is repository contains a given version of CUDA that is parallel installable along with another version.
== NVIDIA official repositories ==
These repositories
contain versions of CUDA that are parallel installables along with another version.

=== CUDA Toolkit ===
Line 10: Line 13:
* RHEL/CentOS 7 {{{
sudo yum install http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-8.0.44-1.x86_64.rpm
 * RHEL/CentOS 8 {{{
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
sudo dnf clean all
sudo dnf -y install cuda
}}}
 * RHEL/CentOS 7 {{{
sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
sudo yum clean all
Line 14: Line 23:
* Fedora 23 (and later) {{{
sudo dnf install http://developer.download.nvidia.com/compute/cuda/repos/fedora23/x86_64/cuda-repo-fedora23-8.0.44-1.x86_64.rpm
 * RHEL/CentOS 6 {{{
sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-rhel6.repo
sudo yum clean all
sudo yum install cuda
}}}
 * Fedora 29 (and later) {{{
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/fedora29/x86_64/cuda-fedora29.repo
sudo dnf clean all
Line 19: Line 34:
== GCC version issue ==
When using a later version of Fedora than what is supported by the NVIDIA CUDA Official repository, you might be unable to compile.
You can either:
* Tweak the /usr/local/cuda-8.0/targets/x86_64-linux/include/host_defines.h to accept the Fedora default compiler.
* Install the appropriate gcc version for CentOS developper toolset. Please see https://www.softwarecollections.org/en/scls/rhscl/devtoolset-4/
{{{
sudo dnf install http://ftp.ciril.fr/pub/linux/centos/7.3.1611/extras/x86_64/Packages/centos-release-scl-2-2.el7.centos.noarch.rpm
sudo dnf install devtoolset-4-toolchain

=== Machine Learning repository ===

Please use the official link: https://developer.nvidia.com/nccl/nccl-download

 * RHEL/CentOS 7 {{{
sudo yum install https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
sudo yum install libcudnn7 libcudnn7-devel libnccl libnccl-devel
Line 28: Line 43:
You cannot install the whole devtoolset-4 collection, but the toolchain is enough , then each time you need to build using cuda, you start by
{{{
scl run devtoolset-4 bash
gcc --version
gcc (GCC) 5.2.1 20150902 (Red Hat 5.2.1-2)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
exit
gcc --version
gcc (GCC) 6.2.1 20160916 (Red Hat 6.2.1-2)
Copyright © 2016 Free Software Foundation, Inc.
Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS
GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER

 * Fedora {{{
sudo dnf install https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
sudo dnf install libcudnn7 libcudnn7-devel libnccl libnccl-devel
Line 45: Line 50:
=== Legacy NVIDIA 340xx/CUDA 6.5 ===
This repository contains a legacy version of CUDA 6.5 that will works with the NVIDIA 340xx serie

Please use the Official link: https://developer.nvidia.com/cuda-toolkit-65

 * RHEL/CentOS 6 {{{
sudo yum install http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-6.5-14.x86_64.rpm
sudo yum install cuda
}}}
 * Fedora 20 (and later) {{{
sudo yum install install http://developer.download.nvidia.com/compute/cuda/repos/fedora20/x86_64/cuda-repo-fedora20-6.5-14.x86_64.rpm
sudo yum install cuda
}}}

Please verify to have a compatible compiler.

== Known issues ==
=== GCC version ===
When using a later version of Fedora than what is supported by the NVIDIA CUDA Official repository, you might be unable to compile.
You can either:

 * Tweak the /usr/local/cuda-9.2/targets/x86_64-linux/include/host_defines.h to accept the Fedora default compiler. (Not recommended).

 * Install the appropriate gcc version from developper toolset. It will install in parallel. Please see https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/

{{{
sudo dnf install https://rpmfind.net/linux/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
sudo dnf install http://dl.kwizart.net/compat-libgfortran5-8.3.1-1.fc29.noarch.rpm
sudo dnf install devtoolset-8-toolchain
}}}
You cannot install the whole devtoolset-8 collection, but the toolchain is enough , then each time you need to build using cuda, you start by
{{{
scl run devtoolset-8 bash
gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
exit
gcc --version
gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1-1)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}}}

=== Which driver Package ===
Both "CUDA" and "RPM Fusion" repositories provide the nvidia driver packages. Usually, the package provided by RPM Fusion is higher. But in case you want to avoid the risk, add this:
{{{
#/etc/yum.repos.d/cuda.repo
[cuda]
name=cuda
...
exclude=akmod-nvidia*,kmod-nvidia*,*nvidia*,nvidia-*,cuda-nvidia-kmod-common,dkms-nvidia,nvidia-libXNVCtrl
}}}

=== NVIDIA driver higher in CUDA repo ===
Often when NVIDIA release a newer CUDA version or even in the case of pre-release software the NVIDIA driver is at a higher version than the driver provided by RPM Fusion. There is no way for us to provide a version that will match the newer CUDA requirement "ahead" of any NVIDIA public driver release. With that said, the dependencies can sometime be faked at the RPM level with:
{{{
dnf download cuda-drivers
rpm -Uvh cuda-drivers*.rpm --nodeps
dnf update
}}}

Please remind to remove the cuda-drivers package when the RPM Fusion provided driver is high enough.
Complain to NVIDIA for this bad behaviour, not to us.


=== NVIDIA provided libOpenCL ===
NVIDIA only advertise OpenCL 1.2 with the binary driver at this time. As a consequence, they provide an old version of libOpenCL.so.1 which works fine with their binary driver.
As most software in Fedora and RPM Fusion are built using a newer libOpenCL, the system linker detects that and issues the following message:
{{{
 /usr/local/cuda-9.2/targets/x86_64-linux/lib/libOpenCL.so.1: no version information available (required by ffmpeg)
}}}

You can either ignore the message or manually delete the libOpenCL.so.1 provided by NVIDIA (run sudo ldconfig once deleted). Please verify to not have other OpenCL providers that might interfere with NVIDIA OpenCL usage.
(looking at /etc/OpenCL/vendors ).

=== Running blender ===
Even when only running blender, you need a CUDA compatible compiler as described above. This is because blender will compile the "CUDA Kernels" optimized for your own GPU. You can run blender with:
{{{
 scl run devtoolset-7 blender
}}}
Once the "CUDA kernels" are compiled, you can run blender normally

Line 46: Line 137:
* CUDA Start quide: https://developer.nvidia.com/compute/cuda/8.0/prod/docs/sidebar/CUDA_Quick_Start_Guide-pdf
* CUDA documentation: https://docs.nvidia.com/cuda/index.html
 * CUDA whatsnew : https://developer.nvidia.com/cuda-toolkit/whatsnew

 
* CUDA documentation: https://docs.nvidia.com/cuda/index.html

Installation

This Howto provides a way to install the official NVIDIA packages for CUDA.

NVIDIA official repositories

These repositories contain versions of CUDA that are parallel installables along with another version.

CUDA Toolkit

Please use the Official link: https://developer.nvidia.com/cuda-downloads

  • RHEL/CentOS 8

    sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
    sudo dnf clean all
    sudo dnf -y install cuda
  • RHEL/CentOS 7

    sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
    sudo yum clean all
    sudo yum install cuda
  • RHEL/CentOS 6

    sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-rhel6.repo
    sudo yum clean all
    sudo yum install cuda
  • Fedora 29 (and later)

    sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/fedora29/x86_64/cuda-fedora29.repo
    sudo dnf clean all
    sudo dnf install cuda

Machine Learning repository

Please use the official link: https://developer.nvidia.com/nccl/nccl-download

  • RHEL/CentOS 7

    sudo yum install https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
    sudo yum install libcudnn7 libcudnn7-devel libnccl libnccl-devel
  • Fedora

    sudo dnf install https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm
    sudo dnf install libcudnn7 libcudnn7-devel libnccl libnccl-devel

Legacy NVIDIA 340xx/CUDA 6.5

This repository contains a legacy version of CUDA 6.5 that will works with the NVIDIA 340xx serie

Please use the Official link: https://developer.nvidia.com/cuda-toolkit-65

  • RHEL/CentOS 6

    sudo yum install http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-6.5-14.x86_64.rpm
    sudo yum install cuda
  • Fedora 20 (and later)

    sudo yum install install http://developer.download.nvidia.com/compute/cuda/repos/fedora20/x86_64/cuda-repo-fedora20-6.5-14.x86_64.rpm
    sudo yum install cuda

Please verify to have a compatible compiler.

Known issues

GCC version

When using a later version of Fedora than what is supported by the NVIDIA CUDA Official repository, you might be unable to compile. You can either:

sudo dnf install https://rpmfind.net/linux/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
sudo dnf install http://dl.kwizart.net/compat-libgfortran5-8.3.1-1.fc29.noarch.rpm
sudo dnf install devtoolset-8-toolchain

You cannot install the whole devtoolset-8 collection, but the toolchain is enough , then each time you need to build using cuda, you start by

scl run devtoolset-8 bash
gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
exit
gcc --version
gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1-1)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Which driver Package

Both "CUDA" and "RPM Fusion" repositories provide the nvidia driver packages. Usually, the package provided by RPM Fusion is higher. But in case you want to avoid the risk, add this:

#/etc/yum.repos.d/cuda.repo
[cuda]
name=cuda
...
exclude=akmod-nvidia*,kmod-nvidia*,*nvidia*,nvidia-*,cuda-nvidia-kmod-common,dkms-nvidia,nvidia-libXNVCtrl

NVIDIA driver higher in CUDA repo

Often when NVIDIA release a newer CUDA version or even in the case of pre-release software the NVIDIA driver is at a higher version than the driver provided by RPM Fusion. There is no way for us to provide a version that will match the newer CUDA requirement "ahead" of any NVIDIA public driver release. With that said, the dependencies can sometime be faked at the RPM level with:

dnf download cuda-drivers
rpm -Uvh cuda-drivers*.rpm --nodeps
dnf update

Please remind to remove the cuda-drivers package when the RPM Fusion provided driver is high enough. Complain to NVIDIA for this bad behaviour, not to us.

NVIDIA provided libOpenCL

NVIDIA only advertise OpenCL 1.2 with the binary driver at this time. As a consequence, they provide an old version of libOpenCL.so.1 which works fine with their binary driver. As most software in Fedora and RPM Fusion are built using a newer libOpenCL, the system linker detects that and issues the following message:

 /usr/local/cuda-9.2/targets/x86_64-linux/lib/libOpenCL.so.1: no version information available (required by ffmpeg)

You can either ignore the message or manually delete the libOpenCL.so.1 provided by NVIDIA (run sudo ldconfig once deleted). Please verify to not have other OpenCL providers that might interfere with NVIDIA OpenCL usage. (looking at /etc/OpenCL/vendors ).

Running blender

Even when only running blender, you need a CUDA compatible compiler as described above. This is because blender will compile the "CUDA Kernels" optimized for your own GPU. You can run blender with:

 scl run devtoolset-7 blender

Once the "CUDA kernels" are compiled, you can run blender normally

References


CategoryHowto

Howto/CUDA (last edited 2024-10-15 07:26:21 by NicolasChauvet)