¿Cómo instalo CUDA en Ubuntu 18.04?

61

¿Hay algún tutorial para instalar CUDA en Ubuntu 18.04?

Las instrucciones en el sitio web de Nvidia para 17.04 y 16.04 no funcionan para 18.04.

Recibo un mensaje que me dice que reinicie y luego vuelva a ejecutar el instalador. Sin embargo, cuando hago esto recibo el mismo mensaje nuevamente.

Gabs
fuente
A mi me funciono. ¿Qué parte de esto no te funciona?
user3667089
Se dice que un reinicio es necesario y, a continuación, vuelva a ejecutar el instalador, pero reinicie el equipo e intente volver a instalar y todo lo que consigo es el mismo mensaje ...
Gabs
Intente seguir las instrucciones aquí que utilizan el archivo de ejecución para instalar el controlador y el kit de herramientas de Cuda.
Cono

Respuestas:

19

He instalado CUDA 9.1 en Ubuntu 18.04 y funciona muy bien.

Sin embargo, debería modificar gcc, g ++ predeterminado y usar archivos .run en lugar de archivos .deb.

  1. instale gcc-6, g ++ - 6 (¡CUDA requiere gcc-6!)
  2. En / usr / bin como root, rm gcc, gcc-ar, gcc-nm, gcc-ranlib g ++, luego ln -s gcc-6 gcc; ln -s gcc-ar-6 gcc-ar; ln -s gcc-nm-6 gcc-nm; ln -s gcc-ranlib-6 gcc-ranlib; y ln -s g ++ - 6 g ++
  3. instale CUDA usando archivos .run. No puede instalar el controlador. En su lugar, instale el controlador más reciente (si es necesario, descargue NVIDIA-Linux-xxxxxxx.run de Nvidia) sería mejor.

Eso es todo.

Intenté instalar usando archivos .deb, pero causa un conflicto de paquetes, por lo que he cambiado la forma.

¡¡Disfrútala!!

Dae-Chul Jo 조대철
fuente
10
Recomiendo usar alternativas de actualización en lugar de reemplazar gcc, consulte askubuntu.com/questions/26498/choose-gcc-and-g-version para obtener más detalles
Mr.WorshipMe
100

En una terminal, escriba:


sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo ubuntu-drivers autoinstall

reiniciar


sudo apt install nvidia-cuda-toolkit gcc-6

nvcc --version

Tengo una tarjeta gráfica gtx970 y una nueva instalación de Ubuntu 18.04

Esto funciono para mi

Eromod
fuente
10
Esto debe ser aceptado respuesta
luboskrnac
66
Esto funcionó principalmente para mí. El único problema fue que ubuntu-drivers no se encontró y tuvo que solucionarlo ejecutando: sudo apt-get install ubuntu-drivers-common (lo encontró aquí: askubuntu.com/a/361868/766963 )
Volkan Paksoy
Esto funcionó para mí, aunque tuve que volver a cambiar a Nouveau desde la interfaz de usuario antes de ejecutar la instalación automática (informó conflictos de instalación de la v396 mientras estaba instalada la v390)
Alex Reinking
1
Esto funcionó perfectamente. Sin embargo, sudo apt upgraderompió todo nuevamente, ¡tenga cuidado con las actualizaciones!
Luis
1
Para mí, el autoinstallcomando da como resultadoThe following packages have unmet dependencies: nvidia-driver-415
MrMartin
12

Habilite el repositorio multiverso, instale los controladores de nvidia y nvidia-cuda-toolkit y gcc6 (preferiblemente usando alternativas de actualización para cambiar fácilmente las versiones):

  1. En software y actualizaciones, seleccione los repositorios restringidos y multiverso
  2. En la pestaña Controladores adicionales en software y actualizaciones, seleccione el controlador propietario de NVIDIA (390 para CUDA 9)
  3. sudo apt update && sudo apt install nvidia-cuda-toolkit, o instálelo desde el centro de software de ubuntu.
  4. CUDA requiere gcc6, use alternativas de actualización para mantener tanto gcc7 como gcc6 como se explica aquí .

Alternativamente, puede seguir las instrucciones de Taylor :

  1. Después de instalar el controlador NVIDIA patentado, descargue la instalación de CUDA 9 desde su sitio (obtenga Ubuntu la versión 17.04 runfile)
  2. hacer que el archivo descargado sea ejecutable con sudo chmod +x
  3. ejecútelo con la bandera de anulación
  4. Acepte los términos y condiciones, diga sí a la instalación con una configuración no compatible y no a "¿Instalar el controlador de gráficos acelerados NVIDIA para Linux-x86_64 384.81?". Asegúrese de no aceptar instalar el nuevo controlador.
  5. Ver arriba sobre el uso de gcc6

El segundo método tiene el inconveniente de que no es tan fácil de actualizar o eliminar.

Mr.WorshipMe
fuente
2
Aunque el enlace a la página del paquete es útil, y hay suficiente información aquí que no es una "respuesta de solo enlace" ni nada, le recomiendo que edite esto para explicar cómo hacer lo que está recomendando.
Eliah Kagan
6

Dudo que las respuestas anteriores califiquen, porque parecen abandonar el sistema sin todo el subsistema del controlador NVidia. Puedo adivinar por qué Cuda no saca los controladores, aunque probablemente preferiría tenerlo de otra manera. Tampoco estoy seguro de cuál es la forma correcta de obtener el controlador más reciente, pero en este momento esto parece hacerlo:

sudo apt-get install nvidia-driver-390

Hayvan M
fuente
3
Correcto, si no instala los controladores de Nvidia desde los repositorios de Ubuntu, puede que tenga que reinstalarlos después de cada actualización del núcleo.
ubfan1
Probablemente también necesite nvidia-driver-390-dev
Mr.WorshipMe
4

Esto es lo que hice. Es posible que se agreguen cosas adicionales que probablemente no habría tenido que hacer, pero de todos modos las incluiré.

Primero obtenga los controladores del repositorio de ppa. (Diría que esto es necesario antes de la instalación, a menos que desee arriesgarse a un bucle de inicio de sesión de muerte).

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

Luego instale el último controlador. Utilizo el actualizador de GUI en su mayor parte llamado Software y actualizaciones, en la pestaña Controladores adicionales. A partir de hoy, el controlador nvidia 396 está disponible.

Obtenga g ++ - 6 y gcc-6. (Necesario)

sudo apt install g++-6
sudo apt install gcc-6

Puede intentar usar nvidia-cuda-toolkit, pero las rutas a las bibliotecas no me eran familiares. No quería meterme con eso.

(Probablemente me saltearía este, pero vaya si otras cosas están dando problemas)

sudo apt install nvidia-cuda-toolkit

Terminé instalando el archivo de ejecución 9.1 para Ubuntu 17.04. Descargalo. Marque el archivo como ejecutable (hago clic derecho en el archivo en el escritorio). Entra en la terminal y pon. (Necesario)

./cuda_9.1.85_387.26_linux.run --override

Lo instalará utilizando los nuevos compiladores gcc. Le hará un montón de preguntas y querrá que las respondan de inmediato.

Responda sí a la configuración no admitida.

No al controlador nvidia.

Sí, al kit de herramientas

Usé ubicaciones de instalación predeterminadas

Después de que esté instalado, asegúrese de configurar sus rutas. El archivo de ejecución también te dará un recordatorio. Además, la documentación de nvidia le dirá qué exportar.

echo 'export PATH=/usr/local/cuda-9.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH' >> ~/.bash.rc
source ~/.bashrc

Finalmente, debe configurar enlaces sim para gcc-6 y g ++ - 6 o recibirá una advertencia al compilar su propio código. (Obligatorio)

sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++

Reinicia el sistema. (Necesario)

Derek Stinson
fuente
Buena respuesta, pero en mi situación, el controlador de Ubuntu Repo nvidia era la sub-versión incorrecta. Al momento de publicar esto, el nvidia-396paquete es la versión 396.37 que no funciona para mi GeForce GTX 950. ¡Así que tuve que instalar 396.18 manualmente! Así que asegúrese de verificar que el controlador es el que realmente necesita.
salotz
2

Veamos cómo va mi respuesta para 16.04 :

  1. Descargar CUDA para Ubuntu 17.10 (archivo de ejecución local) - Tensorflow recomienda CUDA 9.0 - Parece que CUDA 9.2 no funciona con tf
  2. Instale los requisitos de CUDA (consulte la sección a continuación)
  3. correr sudo sh cuda_7.5.18_linux.run
  4. Siga las indicaciones de la línea de comando.

Siguiente paso: Instalar cuDNN

CUDA 9.2

$ nvidia-smi
Fri Jun  8 18:09:24 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48                 Driver Version: 390.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  GeForce 940MX       Off  | 00000000:02:00.0 Off |                  N/A |
| N/A   72C    P0    N/A /  N/A |    512MiB /  2004MiB |     90%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1031      G   /usr/lib/xorg/Xorg                           276MiB |
|    0      3072      G   ...-token=0F06A89A68C1B8739F1AB9EF1C5654F9   232MiB |
+-----------------------------------------------------------------------------+

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Wed_Apr_11_23:16:29_CDT_2018
Cuda compilation tools, release 9.2, V9.2.88

Advertencia : ¡No instale el controlador de pantalla! (Al menos no funcionó en mi Thinkpad T460p)

CUDA 9.0 para tf

$ nvidia-smi
Sat Jun  9 08:55:30 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48                 Driver Version: 390.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  GeForce 940MX       Off  | 00000000:02:00.0 Off |                  N/A |
| N/A   68C    P0    N/A /  N/A |    595MiB /  2004MiB |     91%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1036      G   /usr/lib/xorg/Xorg                           350MiB |
|    0      2531      G   ...-token=FA7CF967F32AD2277A4B0EA78D1CB8D4   241MiB |
+-----------------------------------------------------------------------------+

y

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

Requisitos de CUDA

$ sudo apt-get install gcc-6 g++-6
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50

Verificar con

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.4.0-17ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.4.0 20180424 (Ubuntu 6.4.0-17ubuntu1)
Martin Thoma
fuente
0

Mi propia experiencia en la instalación de CUDA. Probado en Ubuntu 18.04. Tarea:

  • Instale el controlador gráfico para Palit GeForce GTX 1080 Ti GameRock 11GB GDDR5X [NEB108TT15LC-1020G].
  • Instale la biblioteca CUDA para todos los usuarios.

Enlaces relacionados:

Instalación del controlador NVIDIA

Vaya al sitio web de NVIDIA: https://www.nvidia.com/Download/index.aspx y obtenga el controlador más reciente para su GPU. En mi caso es:

Product Type: GeForce
Product Series: GeForce 10 Series
Product: GeForce GTX 1080 Ti
Operating System: Linux 64-bit
Language: English (US)
Press <SEARCH> button and check that founded driver is supporting your GPU
in "SUPPORTED PRODUCTS" tab.

Descargalo. En mi caso, el nombre del archivo es:NVIDIA-Linux-x86_64-410.78.run

# Change permission to run and execute it
sudo chmod +x NVIDIA-Linux-x86_64-410.78.run

# Before installation install gcc and make packages:
sudo apt install gcc
sudo apt install make

Es mejor ejecutar la instalación del controlador en modo texto. Para el modo de texto, presione <Ctrl>+<Alt>+<F3>e inicie sesión en la consola.

Lo más probable es que tenga problemas con el controlador gráfico previamente instalado llamado Nouveau.

# Remove Nouveau driver
sudo apt –purge remove xserver-xorg-video-nouveau
# Remove previously installed NVIDIA driver
sudo apt purge nvidia*

# Execute file and answer the questions during installation
sudo ./NVIDIA-Linux-x86_64-410.78.run

# Reboot Ubuntu
sudo reboot

# To check if installation is successful
nvidia-smi

Debería ver la salida del terminal de los controladores de Nvidia: ingrese la descripción de la imagen aquí

# Check again
lsmod | grep nouveau  # should be zero output
lsmod | grep nvidia   # should be non-zero output

# Another check. {tab} means you should press <Tab> button on your keyboard.
cat /proc/driver/nvidia/gpus/{tab}/information

Debería ver el modelo correcto de su GPU: ingrese la descripción de la imagen aquí

Instalar la biblioteca CUDA para todos los usuarios

# Install gcc, kernel headers and development libraries
sudo apt install gcc-6 g++-6 linux-headers-$(uname -r) freeglut3-dev libxmu-dev libpcap-dev

Descargar juego de herramientas CUDA de - https://developer.nvidia.com/cuda-downloads Seleccionar: Linux, x86_64, Ubuntu, 18.04, runfile (local).

Descargar archivo de 2.0 GB: cuda_10.0.130_410.48_linux.run

# Change permissions and run it
sudo chmod +x cuda_10.0.130_410.48_linux.run
sudo ./cuda_10.0.130_410.48_linux.run

If installation is successful, your should see the following output:
===========
= Summary =
===========

Toolkit: Installed in /usr/local/cuda-10.0
Samples: Not Selected

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

Para configurar el entorno CUDA para todos los usuarios (y aplicaciones) en su sistema, cree dos archivos (use sudo y un editor de texto de su elección)

# Create file cuda.sh
sudo touch /etc/profile.d/cuda.sh
# Open cuda.sh file
sudo nano /etc/profile.d/cuda.sh
# Add content to the file
export PATH=$PATH:/usr/local/cuda/bin
export CUDADIR=/usr/local/cuda

# Also create file cuda.conf
sudo touch /etc/ld.so.conf.d/cuda.conf
# Open cuda.conf file
sudo nano /etc/ld.so.conf.d/cuda.conf
# Add content to the file
/usr/local/cuda/lib64

# Restart ldconfig
sudo ldconfig

# Create symbolic links to GCC6 in the CUDA bin folder.
sudo ln -s /usr/bin/gcc-6 /usr/local/cuda-10.0/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda-10.0/bin/g++

# Test CUDA by building the examples
# Copy the CUDA samples source directory to someplace in your home directory
# Go to the directory with the samples and run:
make -j4

# There could be compilation error for the samples
# Error: cannot find -lGL
# I was able to fix it by following the instructions in this link:
# http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html (the final two commands)
sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
FooBar167
fuente