La ola de uso de GPU, CUDA y cuDNN para cálculos de aprendizaje profundo ha estado sucediendo durante muchos años. Durante este período, el controlador de la tarjeta gráfica y la versión CUDA, así como la versión del kit de herramientas de aprendizaje profundo cudnn, se han actualizado muchas veces. . Con el lanzamiento de la nueva versión 2.0 de TensorFlow y la versión 1.3 de Pytorch, las máquinas que usamos para el aprendizaje profundo también necesitan actualizar el entorno operativo a la última versión, especialmente si todavía usa CUDA 8.0. Este artículo presentará cómo desinstalar la versión anterior de CUDA (como la versión 8.0) e instalar la nueva versión de CUDA (versión 10.0)
Preparación de material
Primero, debe descargar los archivos subordinados del sitio web oficial de NVIDIA, uno es cuda10.0 y el otro es cudnn7.4
- cuda_10.0.130_410.48_linux
- cudnn-10.0-linux-x64-v7.4.2.24.solitairetheme8 es el
propio sistema redhat, la versión de cuda descargada es:
Desinstale la versión anterior de CUDA
Antes de desinstalar, debe cerrar algunos servicios relacionados con imágenes, como X display manager lightdm. Presione ctrl + Alt + F1 en el teclado, ingrese la cuenta y la contraseña desde la línea de comando pura para iniciar sesión en el terminal, y luego ingrese el siguiente comando:
$ sudo systemctl stop lightdm
$ cd /usr/local/cuda-8.0/bin
$ sudo ./uninstall_cuda_8.0.pl
Generalmente, si cuda está instalado, aparecerá un mensaje para verificar el registro de instalación, de la siguiente manera:
RROR: Parece que un módulo del kernel de NVIDIA 'nvidia-uvm' ya está cargado en su kernel. Esto puede deberse a que está en uso (por ejemplo, por un servidor X, un programa CUDA o NVIDIA Persistence Daemon), pero esto también puede suceder si su kernel se configuró sin soporte para la descarga de módulos. Asegúrese de salir de cualquier programa que pueda estar usando la (s) GPU (s) antes de intentar actualizar su controlador. Si no se están ejecutando programas basados en GPU, sabe que su kernel admite la descarga de módulos y aún recibe este mensaje, entonces puede haber ocurrido un error que haya corrompido el recuento de uso de un módulo del kernel de NVIDIA, para lo cual el remedio más simple es reiniciar su ordenador.
ERROR: La instalación ha fallado. Por favor vea el archivo'/var/log/nvidia-installer.log'Puede encontrar sugerencias sobre cómo solucionar problemas de instalación en el archivo README disponible en la página de descarga de controladores de Linux en www.nvidia.com.
Sin embargo, si surgen problemas específicos, Baidu los puede resolver directamente. Si el problema persiste, reinícielo.
Solución 1: Si ha instalado cuda anteriormente, esto generalmente se debe a que el controlador anterior no se ha desinstalado. En este momento, la desinstalación del controlador NVIDIA es la siguiente:
yum remove "*cublas*" "cuda*"
yum remove "*nvidia*"
También hay una instrucción de desinstalación:
To uninstall the NVIDIA Driver, run nvidia-uninstall
Instalar nueva versión de CUDA
Busque los archivos cuda 10 y cudnn 7.4 que hemos descargado, y primero ingrese el siguiente comando para instalar cuda 10.
$ sudo sh cuda_10.0.130_410.48_linux
Lo primero que aparece es sobre el acuerdo de usuario de CUDA, puede presionar directamente "Ctrl + C" para omitir, e ingresar "accpet" para aceptar el acuerdo.
Logging to /tmp/cuda_install_11026.log
Using more to view the EULA.
End User License Agreement
--------------------------
Preface
-------
The Software License Agreement in Chapter 1 and the Supplement
in Chapter 2 contain license terms and conditions that govern
the use of NVIDIA software. By accepting this agreement, you
agree to comply with all the terms and conditions applicable
to the product(s) included herein.
NVIDIA Driver
Description
This package contains the operating system driver and
fundamental system software components for NVIDIA GPUs.
NVIDIA CUDA Toolkit
Description
The NVIDIA CUDA Toolkit provides command-line and graphical
tools for building, debugging and optimizing the performance
of applications accelerated by NVIDIA GPUs, runtime and math
libraries, and documentation including programming guides,
user manuals, and API references.
Default Install Location of CUDA Toolkit
Windows platform:
%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.#
Linux platform:
/usr/local/cuda-#.#
Mac platform:
/Developer/NVIDIA/CUDA-#.#
NVIDIA CUDA Samples
Description
This package includes over 100+ CUDA examples that demonstrate
various CUDA programming principles, and efficient CUDA
implementation of algorithms in specific application domains.
Do you accept the previously read EULA?
accept/decline/quit: accept
Debido a la necesidad de actualizar la versión del controlador NVIDIA, hay un "¿Instalar controlador de gráficos acelerados NVIDIA para Linux-x86_64 410.48?" Debe ingresar "y" para instalar la nueva versión del controlador. (Esto se puede instalar o no instalar).
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: y ( 如果电脑上有了显卡driver,可以不用安装)
Do you want to install the OpenGL libraries?
(y)es/(n)o/(q)uit [ default is yes ]: y
Do you want to run nvidia-xconfig?
This will update the system X configuration file so that the NVIDIA X driver
is used. The pre-existing X configuration file will be backed up.
This option should not be used on systems that require a custom
X configuration, such as systems with multiple GPU vendors.
(y)es/(n)o/(q)uit [ default is no ]:
Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-10.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: y (这个也可以不用安装)
Enter CUDA Samples Location
[ default is /home/gpu ]:
Installing the NVIDIA display driver...
Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...
Missing recommended library: libGLU.so
Missing recommended library: libXmu.so
Installing the CUDA Samples in /home/gpu ...
Copying samples to /home/gpu/NVIDIA_CUDA-10.0_Samples now...
Finished copying samples.
===========
= Summary =
===========
Driver: Installed (已有驱动可以不用安装)
Toolkit: Installed in /usr/local/cuda-10.0
Samples: Installed in /home/gpu, but missing recommended libraries (也可以不用安装)
Please make sure that
- PATH includes /usr/local/cuda-10.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-10.0/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.0/doc/pdf for detailed information on setting up CUDA.
Logfile is /tmp/cuda_install_11026.log
Signal caught, cleaning up
El mensaje anterior después de la instalación nos enseña cómo configurar el entorno:
Please make sure that
- PATH includes /usr/local/cuda-10.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root
Cuando finalmente aparece este tipo de salida y no hay otros errores, incluso si la nueva versión de CUDA se instaló correctamente. Luego, necesitamos instalar y configurar nuevas variables de entorno. En el último "~ / .bashrc", agregue:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
Entre ellos, los dos primeros (PATH, LD_LIBRARY_PATH) son las variables recomendadas en el documento de instalación del sitio web oficial de CUDA. El tercero (CUDA_HOME) es una variable requerida por la versión de tensorflow-GPU.
Después de configurar la variable de entorno, debe actualizarla; de lo contrario, no entrará en vigencia de inmediato. También puede reiniciar la computadora para que se apliquen las variables de entorno.
$ source ~/.bashrc
Nota : La configuración anterior es básicamente necesaria, lo que equivale a agregar una biblioteca dependiente en C ++, que requiere agregar lib, bin, include y otras rutas de archivo a VS. Entre ellos, / usr / local / cuda es un enlace suave. Si ya existe, el cuda recién instalado no puede reescribirlo. Puede crearlo manualmente en este momento. Nvcc está en el directorio bin de cuda, de la siguiente manera:
rm -rf /usr/local/cuda
mkdir /usr/local/cuda
sudo ln -s /usr/local/cuda-9.0/ /usr/local/cuda/
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Luego, podemos verificar los resultados de la nueva versión de la instalación del controlador de la tarjeta gráfica, porque este comando es solo después de que se instala el controlador.
$ nvidia-smi
Fri Oct 27 15:46:57 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48 Driver Version: 410.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla P100-PCIE... Off | 00000000:06:00.0 Off | 0 |
| N/A 29C P0 24W / 250W | 0MiB / 12198MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Finalmente restaure la visualización de la imagen:
$ sudo systemctl start lightdm
Configurar la biblioteca cudnn
Primero, cambie el nombre del archivo cudnn para facilitar la descompresión. Los nombres de archivo de otras versiones deben modificarse de acuerdo con la situación real.
$ cp cudnn-10.0-linux-x64-v7.4.2.24.solitairetheme8 cudnn-10.0-linux-x64-v7.4.2.24.tgz
$ tar zxvf cudnn-10.0-linux-x64-v7.4.2.24.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
** Nota: ** Si no ha creado un enlace suave, cópielo en la ubicación de instalación. Lo
siguiente es modificar los permisos de acceso al archivo:
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
Finalmente, terminamos de configurar.