Construcción del entorno de aprendizaje profundo: controlador de Nvidia e instalación de Cuda


prefacio

Para ser honesto, el autor ha estado trabajando durante muchos años después de graduarse, pero todavía hay muchos problemas con la configuración del entorno de desarrollo que confunden a las personas. Afortunadamente, el autor siempre ha tenido la costumbre de escribir notas, que han sido grabadas. en la nube privada antes, y ahora los clasifico y los comparto con ustedes. Y además de explicar los pasos, también explicará las razones para hacerlo tanto como sea posible, para que los lectores puedan aclarar la lógica.

Nota: Este artículo es para sistemas Linux.


1. Configuración y archivos del entorno

La configuración del entorno utilizada en este artículo es:

  • Controlador de gráficos: nvdia430
    • Nombre del archivo: NVIDIA-Linux-x86_64-430.14
  • cola: cola-10.0
    • Nombre del archivo: cuda_10.0.130_410.48_linux
  • oculto: oculto7.5
    • Nombre del archivo: cudnn-10.0-linux-x64-v7.5.0.56

Se puede encontrar que el controlador de la tarjeta gráfica que usamos es la versión 430, que no coincide con el controlador de la versión 410 incluido en cuda10.0, pero no es un gran problema, y ​​el controlador 430 es totalmente compatible con cuda-10. Sin embargo, debe tenerse en cuenta que si el controlador de pantalla instalado es muy diferente de la versión del controlador de pantalla predeterminado de cuda, no está claro si habrá incompatibilidad.

Además, la elección de diferentes versiones de cuda y cudnn es muy importante, porque el soporte de los principales marcos de aprendizaje profundo en la última versión puede no ser ideal.Por ejemplo, el paquete de instalación precompilado de tensorflow solo es compatible con cuda10.0 y otras versiones. debe compilarse manualmente; cuando salió cuda10 por primera vez, libtorch de pytorch solo es compatible con cuda9, así que elija según sus necesidades.

2. Pasos de instalación

2.1 Dependencias relacionadas con la instalación

sudo apt-get install build-essential #这是编译环境,包含make,GCC G++等

La computadora del autor puede instalar el controlador de la tarjeta gráfica normalmente solo después de instalar el entorno de compilación, pero después de verificar la información, se encuentra que las dependencias dadas por diferentes autores son diferentes. El siguiente es un resumen parcial. Si solo el entorno de compilación es instalado y el controlador de la tarjeta gráfica no se puede instalar normalmente, intente instalar el siguiente paquete

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

2.2 Instalar el controlador oficial

Vaya al sitio web oficial de nvidia para descargar el controlador correspondiente https://www.nvidia.com/Download/index.aspx?lang=cn
inserte la descripción de la imagen aquí
y seleccione el controlador correspondiente a su tarjeta gráfica para descargar.

2.3 Deshabilitar nouveau y cerrar la interfaz gráfica (Xserver)

Nouveau es un controlador 3D de código abierto desarrollado por un tercero para tarjetas gráficas NVIDIA, y NVIDIA no lo reconoce ni lo admite. Aunque Nouveau Gallium3D está lejos de ser comparable con el controlador privado oficial de NVIDIA en términos de velocidad de juego, facilita que Linux haga frente a varios entornos complejos de tarjetas gráficas NVIDIA, lo que permite a los usuarios ingresar al escritorio después de instalar el sistema y tener una buena pantalla. Por lo tanto, muchas distribuciones de Linux integran el controlador Nouveau de forma predeterminada, que se instala de forma predeterminada cuando se encuentra con una tarjeta gráfica NVIDIA. Esto es especialmente cierto para la versión empresarial de Linux.Casi todas las distribuciones empresariales de Linux que admiten interfaces gráficas incluyen Nouveau.

Sin embargo, para los usuarios de escritorio personal, Nouveau en la etapa de crecimiento no es perfecto. A diferencia de la versión empresarial, los usuarios individuales a menudo necesitan algunos efectos especiales en 3D además de querer mostrar la interfaz gráfica normalmente. Nouveau no puede completarla la mayor parte del tiempo. , y los usuarios de Nouveau se convirtieron en un estorbo al instalar el controlador privado oficial de NVIDIA. Si no matas a Nouveau, siempre obtienes un error al instalar.

Xserver es la interfaz gráfica de Linux

Modifique el archivo //etc/modprobe.d/blacklist.conf y agregue el siguiente comando al final de este archivo:

blacklist nouveau
options nouveau modeset = 0

Como se muestra en la figura después de la modificación:
inserte la descripción de la imagen aquí

Luego ejecute el comando para actualizar el archivo de inicio y reinicie:

sudo update-initramfs -u
sudo reboot

Verifique si nouveau está cerrado después de reiniciar, ingrese el siguiente comando:

lsmod | grep nouveau

Si no hay salida, nouveau está deshabilitado.
Finalmente cierre la GUI:

 service lightdm stop

Tenga en cuenta que es posible que su computadora no tenga instalada la interfaz gráfica lightdm, pero está usando gdm3, en este caso debe ejecutar

service gdm3 stop

O ciérrelo después de instalar lightdm (esto se recomienda porque, por experiencia, probablemente aún tendrá que instalarlo en el futuro), el comando de instalación es el siguiente:

sudo apt install lightdm

2.4 Instalar el controlador

Ingrese al directorio donde se encuentra el archivo de instalación del controlador de la tarjeta gráfica y ejecute el siguiente comando para instalar:

sudo ./NVIDIA-Linux-x86_64-430.14.run –no-opengl-files

Dado que la versión del controlador que descargó puede ser diferente a la mía, consulte su propio nombre de archivo. Además, el parámetro –no-opengl-files significa no instalar archivos OpenGL. Este parámetro puede evitar el problema de no poder ingresar la interfaz gráfica durante el proceso de instalación
. Simplemente acepte o continúe hasta el final. Una vez completada la instalación, ejecute el siguiente comando para ver si la instalación es exitosa:

nvidia-smi

Si tiene éxito, se mostrará de la siguiente manera:
inserte la descripción de la imagen aquí
Encontrará que la versión cuda de la unidad de pantalla es 10.2, pero no parece entrar en conflicto con la cuda10.0 que estamos a punto de instalar.
Luego inicie Xserver y reinicie para verificar si hay errores:

service lightdm start
sudo reboot

Si su Xserver no se puede iniciar normalmente o se atasca en la interfaz de inicio de sesión, es muy probable que el Xserver no se haya cerrado correctamente en los pasos de instalación anteriores o que el parámetro –no-opengl-files no se haya agregado durante la instalación del controlador, verifique , el método de manejo de errores se concentra en el siguiente capítulo de manejo de errores.

2.5 instalar cuda

Después de instalar el controlador de la tarjeta gráfica, comience a instalar cuda. ​​También debe ir a la página de cuda de nvidia para descargar el paquete de instalación correspondiente.

página de descarga de cuda: https://developer.nvidia.com/cuda-downloads

La página de inicio proporciona la versión 10.1 de forma predeterminada, lo que necesitamos es 10.0, haga clic en versiones heredadas para descargar la versión anterior:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
descargue de acuerdo con su propia versión del sistema, el autor usa ubuntu18,
inserte la descripción de la imagen aquí
descargue el primer instalador base y se puede usar normalmente, parche 1 es el parche, también se puede descargar si es necesario.

A continuación, inicie la instalación. Tenga en cuenta que también debe cerrar primero el Xserver y luego ejecutar el archivo de instalación de cuda10:

service lightdm stop
sudo ./cuda_10.0.130_410.48_linux.run

En este momento, habrá muchas indicaciones para que confirme. Dado que el controlador de la tarjeta gráfica se instaló correctamente anteriormente, no es necesario instalarlo nuevamente aquí.

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 XXX.XX ?

Elija aquí no, el resto son sí o aceptar

Después de que la instalación sea exitosa, comience a agregar variables del sistema. Aquí puede elegir agregarlo en el perfil o agregarlo en el archivo .bashrc bajo su propio usuario:

vim ~/.bashrc #打开配置文件
添加以下变量:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.0

El efecto después de agregar es como se muestra en la figura:
inserte la descripción de la imagen aquí
Estas variables permiten a Python encontrar la biblioteca cuda y los archivos de encabezado, evitando errores como no find.Ejecute
el comando source para que el archivo bashrc surta efecto:

source ~/.bashrc

Finalmente, verifique si cuda se instaló correctamente. Tenga en cuenta que debe instalar la muestra correspondiente al instalar cuda. ​​Si sigue el tutorial de este artículo, la muestra también se ha instalado correctamente:

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

Si ve la siguiente información, la instalación se ha realizado correctamente:
inserte la descripción de la imagen aquí

2.6 Cudnn instalación

Después de instalar cuda, también debemos instalar cudnn: https://developer.nvidia.com/cudnn
Cabe señalar que es necesario registrar cudnn antes de descargar. El autor usa la versión 7.5 de cudnn, por lo que también debe elegir una versión anterior versión para descargar:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Instale cudnn:
cudnn es fácil de instalar, simplemente descomprima el archivo y cópielo en el directorio raíz de cuda:

tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz #解压
cd cudnn-10.0-linux-x64-v7.5.0.56 #进入cudnn文件夹
sudo cp -r cuda/* /usr/local/cuda-10.0/ #将文件夹下的所有文件拷贝进cuda10下

En este punto, ha terminado y todas las instalaciones se han realizado correctamente.

3. Manejo de errores

Aquí hay una introducción a los errores y soluciones relevantes que el autor ha encontrado en la unidad de pantalla y cudnn:

3.1 Inicio de sesión circular o imposibilidad de entrar en Xserver

Se especula que la razón principal del inicio de sesión circular o la imposibilidad de ingresar a la interfaz gráfica es un error en openGL.Se refleja en la operación de que Xserver no está deshabilitado o nouveau no está deshabilitado durante el proceso de instalación (pero en teoría, el El programa de instalación no se puede ejecutar sin nouveau y se informará un error), por lo que la solución es desinstalar el controlador de la tarjeta gráfica actual e instalarlo de nuevo de acuerdo con el tutorial. Aquí está el comando para desinstalar el controlador de la tarjeta gráfica:

service lightdm stop #关闭Xerver服务
sudo /usr/bin/nvidia-uninstall #nvidia自带的卸载程序
sudo apt-get install autoremove --purge nvidia* #通过apt来卸载

Los dos comandos anteriores se pueden ejecutar de nuevo para evitar la desinstalación.

3.2 Falta el controlador de la tarjeta gráfica y nvidia-smi informa un error

Si se encuentra que cuda no se inicia normalmente, ingrese nvidia-smi para informar un error:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

Aquí hay dos posibilidades, permítanme hablar primero sobre la primera: si informa este error justo después de instalar el controlador, es porque el kernel no ha cargado el controlador nvidia, puede intentar ejecutar el siguiente comando para verificar si hay un archivo kernel:

cd /lib/modules
find . -name "*.ko" | grep -i nvidia

El resultado en circunstancias normales debería ser:
inserte la descripción de la imagen aquí
compare y vea si le falta el archivo nvidia.ko (o posiblemente nvidia_xxx.ko).
Si falta, necesita instalar la fuente del kernel:

sudo apt-get install linux-source
sudo apt-get install linux-headers-4.18.0-25-generic

Entre ellos: 4.18.0-25-generic proviene de la salida del comando uname -r.
El segundo caso es que se ha utilizado durante un período de tiempo después de la instalación normal y, de repente, un día se notifica un error. En este caso, el entorno cuda se ha cambiado recientemente, lo que resulta en El controlador de la tarjeta gráfica está dañado.
En este caso, el método más simple y rudo es desinstalar y reinstalar todos los controladores de tarjetas gráficas y cuda:

service lightdm stop #关闭Xserver服务
sudo /usr/bin/nvidia-uninstall #nvidia自带的卸载程序
sudo apt-get autoremove --purge nvidia* #通过apt来卸载
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl #卸载cuda

Una vez completada la desinstalación, vuelva a instalarlo.

Supongo que te gusta

Origin blog.csdn.net/TchaikovskyBear/article/details/129144438
Recomendado
Clasificación