Cómo comprobar la versión de CUDA en Ubuntu (Guía de compatibilidad con cuDNN)

目次

1. Introducción

CUDA (Compute Unified Device Architecture) es una plataforma de computación paralela desarrollada por NVIDIA que utiliza GPUs. Se usa ampliamente para aprendizaje automático, deep learning, renderizado 3D y muchas otras cargas de trabajo computacionales.

Al usar CUDA en un entorno Ubuntu, es importante comprobar la versión de CUDA por las siguientes razones:

Compatibilidad del controlador

CUDA solo es compatible con versiones específicas del controlador NVIDIA, y la incompatibilidad puede impedir que CUDA funcione correctamente.

Compatibilidad de bibliotecas

Bibliotecas como TensorFlow y PyTorch requieren versiones concretas de CUDA y cuDNN, por lo que es esencial verificar que las versiones correctas estén instaladas.

Evitar conflictos de entorno

Si hay varias versiones de CUDA instaladas en el sistema, debes saber cuál está activa en ese momento y cambiar entre ellas según sea necesario.

Esta guía explica claramente cómo comprobar la versión de CUDA en Ubuntu.

2. Cómo comprobar la versión de CUDA en Ubuntu

En Ubuntu, puedes comprobar la versión de CUDA mediante los siguientes métodos.

Método 1: Comprobar con nvidia-smi (Método más sencillo)

El controlador NVIDIA incluye una herramienta llamada nvidia-smi (NVIDIA System Management Interface) que muestra información de la GPU.

Comando

nvidia-smi

Salida de ejemplo

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03    Driver Version: 530.41.03    CUDA Version: 12.1     |
+-----------------------------------------------------------------------------+

Puntos clave

  • La línea CUDA Version: 12.1 muestra la versión máxima de CUDA compatible con el controlador.
  • Esto puede diferir de la versión real del Toolkit de CUDA instalado, por lo que también debes revisar los siguientes métodos.

Método 2: Comprobar con nvcc -V (Para desarrolladores)

Si CUDA está correctamente instalado, puedes comprobar la versión de nvcc, el compilador de CUDA.

Comando

nvcc -V

Salida de ejemplo

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Sun_Jul_30_19:09:40_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105

Puntos clave

  • release 12.1, V12.1.105 → Indica la versión del Toolkit de CUDA instalada.
  • Puede no coincidir con la versión mostrada por nvidia-smi.

Método 3: Comprobar version.txt (Comprobación manual)

Si CUDA está instalado bajo /usr/local/cuda, el archivo version.txt contiene la información de la versión.

Comando

cat /usr/local/cuda/version.txt

Salida de ejemplo

CUDA Version 12.1.105

Puntos clave

  • Útil cuando nvcc -V no está disponible.
  • Debes asegurarte de que /usr/local/cuda esté enlazado correctamente.

3. Cómo comprobar la versión de cuDNN

cuDNN (CUDA Deep Neural Network) es una biblioteca de deep learning que se usa con CUDA.
Es importante comprobar la versión de cuDNN junto con la de CUDA.

Método 1: Comprobar cudnn_version.h

La versión de cuDNN se almacena en el archivo de encabezado cudnn_version.h.

Comando

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

Salida de ejemplo

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1

Puntos clave

  • Indica que cuDNN 8.9.1 está instalado.
  • El comando grep ayuda a extraer la información de la versión de forma sencilla.
  • cuDNN y CUDA deben ser compatibles; verifica que la combinación sea la correcta.

Método 2: Comprobar con dpkg (Solo Linux basado en Debian)

En sistemas basados en Debian como Ubuntu, puedes comprobar los paquetes de cuDNN instalados con dpkg.

Comando

dpkg -l | grep libcudnn

Salida de ejemplo

ii  libcudnn8    8.9.1-1+cuda12.1    amd64    NVIDIA cuDNN Library

Puntos clave

  • La versión de cuDNN (8.9.1) se muestra en el nombre del paquete.
  • cuda12.1 indica la versión de CUDA compatible.

Utiliza estos métodos para asegurarte de que tu entorno CUDA esté configurado correctamente.

4. Cómo manejar varias versiones de CUDA instaladas

En Ubuntu es posible instalar varias versiones de CUDA. Sin embargo, esto puede generar confusión sobre cuál versión está activa.
En esos casos, debes cambiar a la versión correcta manualmente.

Método 1: Cambiar de versión usando update-alternatives

Ubuntu permite cambiar entre versiones de CUDA usando la herramienta update-alternatives.

Verificar la configuración actual

update-alternatives --query cuda

Cambiar de versión

sudo update-alternatives --config cuda

Salida de ejemplo

There are 3 choices for the alternative cuda (providing /usr/local/cuda).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/local/cuda-11.8  100       auto mode
  1            /usr/local/cuda-10.2  50        manual mode
  2            /usr/local/cuda-11.8  100       manual mode
  3            /usr/local/cuda-12.1  110       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Puntos clave

  • Ejecutar update-alternatives --config cuda muestra todas las versiones de CUDA disponibles.
  • Puedes seleccionar la versión a usar ingresando el número correspondiente.
  • Existen los modos auto y manual; elige manual para cambiar manualmente.

Método 2: Configurar manualmente los enlaces simbólicos

También puedes activar una versión específica de CUDA ajustando manualmente los enlaces simbólicos.

Verificar el enlace simbólico existente

ls -l /usr/local/cuda

Salida de ejemplo

lrwxrwxrwx 1 root root 20 Feb  1 12:34 /usr/local/cuda -> /usr/local/cuda-11.8

Cambiar la versión de CUDA

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.1 /usr/local/cuda

Verificar

ls -l /usr/local/cuda

Puntos clave

  • /usr/local/cuda se usa como la ruta predeterminada de CUDA, por lo que actualizar este enlace cambia la versión activa.
  • Usar ln -s facilita el cambio entre versiones.

Con estos métodos puedes gestionar varias instalaciones de CUDA y asegurarte de que la versión correcta esté activa.

5. Preguntas frecuentes (FAQ)

Esta sección resume los problemas más comunes relacionados con la verificación de versiones de CUDA. Úsala para la solución de problemas.

Q1: ¡nvcc -V no se encuentra!

Si el comando nvcc falta, es posible que la ruta de CUDA no esté configurada.

Solución 1: Verificar si CUDA está instalado

ls /usr/local/cuda/

Solución 2: Añadir nvcc al PATH

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

Después de esto, ejecuta nvcc -V nuevamente para confirmar que funciona.

Q2: ¿Por qué la versión de CUDA que muestra nvidia-smi es diferente?

La versión de CUDA que muestra nvidia-smi representa la versión máxima de CUDA compatible con el controlador NVIDIA.

Ejemplo de verificación:

nvidia-smi

Salida de ejemplo:

CUDA Version: 12.1

Sin embargo, esto no indica la versión del Toolkit de CUDA instalado. Usa nvcc -V o version.txt para verificar la versión realmente instalada.

Q3: ¿Cómo verifico la compatibilidad entre CUDA y cuDNN?

La forma más precisa es consultar la matriz de soporte oficial de NVIDIA.

Sitio oficial:

NVIDIA cuDNN Support Matrix

También deberías confirmar la compatibilidad revisando las versiones instaladas:

Verificar la versión de CUDA

nvcc -V

Verificar la versión de cuDNN

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

Al gestionar adecuadamente estas versiones, puedes evitar problemas relacionados con CUDA y cuDNN.

6. Resumen

Este artículo explicó cómo comprobar la versión de CUDA en un entorno Ubuntu.
Repasemos los puntos clave.

Cómo comprobar versiones de CUDA

MethodCommandDescription
nvidia-sminvidia-smiShows the CUDA version supported by the driver
nvcc -Vnvcc -VShows the installed CUDA Toolkit version
version.txtcat /usr/local/cuda/version.txtManually check the installed CUDA version

Cómo comprobar cuDNN

MethodCommandDescription
cudnn_version.hcat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2Check version from the header file
dpkgdpkg -l | grep libcudnnCheck installed cuDNN packages

Cómo cambiar versiones de CUDA

MethodCommandDescription
update-alternativessudo update-alternatives --config cudaSwitch between multiple CUDA versions
Symbolic Linksudo ln -s /usr/local/cuda-XX.X /usr/local/cudaManually switch CUDA versions

Conclusiones clave

  • Siempre verifique su versión de CUDA antes del desarrollo
  • Compruebe la compatibilidad entre CUDA y cuDNN
  • Entienda cómo cambiar de versión cuando existen múltiples instalaciones de CUDA

Al gestionar adecuadamente su entorno, puede maximizar el rendimiento y la estabilidad de CUDA.
Esperamos que esta guía le ayude a verificar las versiones de CUDA de manera eficaz en Ubuntu.