Cómo instalar CUDA Toolkit en Debian 12, 11 o 10

CUDA de NVIDIA, o Compute Unified Device Architecture, es una poderosa herramienta para la computación paralela. Utiliza unidades de procesamiento de gráficos (GPU) NVIDIA para aumentar la velocidad de las tareas informáticas. Esta guía le mostrará cómo instalar CUDA en Debian 12 Bookworm, Debian 11 Bullseye y Debian 10 Buster. Usaremos el repositorio APT de NVIDIA para cada versión de Debian para garantizar que todo funcione sin problemas.

Lo que hace que CUDA Toolkit se destaque:

  • Procesamiento en paralelo: CUDA permite que su software ejecute muchas tareas simultáneamente en las GPU NVIDIA. Esto es ideal para trabajos que necesitan mucha potencia informática.
  • Soporte para muchos idiomas: Puede utilizar CUDA con lenguajes de programación como C, C++ y Fortran. También funciona con otras herramientas informáticas como OpenCL y DirectCompute.
  • Herramientas de desarrollo completas: NVIDIA ofrece a los desarrolladores un conjunto completo de herramientas con Nsight Eclipse Edition. Ayuda a crear, depurar y mejorar aplicaciones CUDA.
  • Bibliotecas listas para usar: CUDA tiene sus bibliotecas para tareas de GPU. Los ejemplos incluyen cuBLAS para operaciones matemáticas y cuFFT para análisis de datos.
  • Diseño preparado para el futuro: CUDA está diseñado para funcionar con las GPU NVIDIA nuevas y futuras. Esto significa que su software puede mejorar sin cambiar gran parte de su código.

Antes de instalar CUDA en Debian:

  • Verifique su sistema: Asegúrese de que el hardware y el software de su computadora estén listos para CUDA. NVIDIA tiene una lista de GPU y necesidades del sistema que puedes consultar.
  • Utilice la fuente correcta: Esta guía se centra en el repositorio APT de NVIDIA para Debian. Es la mejor manera de obtener una versión estable y que funcione bien de CUDA para su sistema Debian.
  • Mantente actualizado: Es una buena idea buscar actualizaciones de vez en cuando. NVIDIA suele presentar nuevas funciones y correcciones para mejorar CUDA.

Para concluir esta introducción, comprender y usar CUDA en Debian puede mejorar significativamente sus aplicaciones. A medida que avancemos, profundizaremos en el proceso de instalación y las mejores prácticas para aprovechar al máximo el kit de herramientas CUDA de NVIDIA en su sistema Debian.

Borrar instalaciones existentes de CUDA y NVIDIA (situacional)

Antes de instalar los controladores NVIDIA o considerar actualizaciones de versión en Debian, es fundamental comenzar desde cero. Esto significa eliminar cualquier instalación de NVIDIA existente de su sistema Debian. Este paso garantiza que evitará posibles problemas derivados de instalaciones superpuestas. Si es nuevo en la instalación de controladores NVIDIA, puede omitir esta sección y continuar con la siguiente.

Método 1: desinstalar los paquetes NVIDIA instalados a través de APT

Si anteriormente usó el administrador de paquetes APT para instalar los controladores NVIDIA, puede usar un solo comando para eliminar todos los paquetes relacionados con NVIDIA. Esta acción eliminará efectivamente NVIDIA de su sistema. Ingresa el siguiente comando en tu terminal:

sudo apt autoremove cuda* nvidia* --purge

Este comando utiliza el autoremove característica de la apt dominio. Elimina paquetes que se instalaron automáticamente para satisfacer dependencias de otros paquetes pero que ya no son necesarios. El nvidia* El patrón identifica todos los paquetes que comienzan con 'nvidia'. El --purge la opción dice apt para eliminar no solo los paquetes sino también sus archivos de configuración asociados.

Método 2: desinstalar los controladores NVIDIA instalados mediante Runfile

Si ha instalado los controladores NVIDIA mediante un .run archivo (generalmente no recomendado debido a mejores alternativas como el repositorio NVIDIA CUDA), se necesita un enfoque diferente para su eliminación.

Para eliminar el tipo de instalación runfile, ejecute el siguiente comando:

sudo /usr/bin/nvidia-uninstall

Este comando ejecuta el nvidia-uninstall script que viene con la instalación del archivo de ejecución. El script elimina metódicamente el controlador NVIDIA que se instaló mediante el archivo de ejecución.

Método 3: desinstalar el kit de herramientas CUDA instalado mediante Runfile

Si instaló el kit de herramientas CUDA usando un archivo de ejecución, también es esencial eliminarlo. El proceso de eliminación es similar al de los controladores NVIDIA. Para eliminar el kit de herramientas CUDA, ejecute el siguiente comando:

sudo /usr/local/cuda-X.Y/bin/cuda-uninstall

En el comando anterior, reemplace X.Y con el número de versión de su kit de herramientas CUDA instalado. Este comando ejecuta el cuda-uninstall script, que se incluye en la instalación del archivo de ejecución del kit de herramientas CUDA. El script está diseñado para eliminar metódicamente el kit de herramientas CUDA de su sistema Debian.

Activar Contrib y repositorios no gratuitos

El paso inicial consiste en agregar los repositorios "contrib" y "non-free" a su lista de repositorios de Debian. El procedimiento varía a partir de Debian 12 Bookworm, por lo que es crucial utilizar el comando que corresponda a su versión específica de la distribución Debian.

En primer lugar, verifique que lo siguiente esté instalado en su sistema Debian:

sudo apt install software-properties-common -y

Ratón de biblioteca y en adelante:

sudo add-apt-repository contrib non-free-firmware

Bullseye y Buster hacia abajo:

sudo add-apt-repository contrib non-free

Antes de continuar, asegúrese de ejecutar una actualización rápida de APT para actualizar el índice de su paquete:

sudo apt update

Agregue el repositorio NVIDIA APT en Debian

El método más eficaz para la instalación de CUDA es directamente desde el repositorio de NVIDIA CUDA. Este enfoque garantiza que los usuarios reciban actualizaciones oportunas, incluidas nuevas funciones, correcciones de errores, parches de seguridad y mejoras.

Preparación del sistema Debian antes de la instalación de CUDA

Antes de comenzar el proceso de instalación, es fundamental preparar adecuadamente su sistema Debian. Esto significa que necesitará instalar varios paquetes de requisitos previos. Incluso si algunos de estos paquetes ya están en su sistema, es aconsejable volver a verificar. Ejecute el siguiente comando en su terminal:

sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y

Este comando instala paquetes esenciales que serán cruciales para los pasos siguientes. Entre ellos, dirmngr gestiona llaves, ca-certificates maneja certificados SSL, software-properties-common gestiona repositorios de software, apt-transport-https garantiza descargas seguras de paquetes, dkms gestiona los módulos del kernel y curl Facilita la descarga de archivos desde Internet.

Autenticar la instalación con la clave GPG del repositorio de NVIDIA

Es crucial garantizar la autenticidad y la integridad de los paquetes de software. Al importar la clave GPG para su versión específica de Debian, verifica la autenticidad de los paquetes del repositorio. La clave firma los paquetes y, al importarlos, le indica a su sistema que confíe en estos paquetes firmados.

Ratón de biblioteca, corre:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Diana, corre:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Buster, utiliza:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Integración del repositorio de NVIDIA en su sistema Debian

Con la clave GPG, ahora puedes agregar el repositorio de NVIDIA a tu sistema Debian. Este repositorio contiene los paquetes necesarios para la instalación de CUDA.

Ratón de biblioteca, utilice:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Diana, utilice:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Buster, utiliza:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Paso 4: actualizar la lista de paquetes

Después de agregar el repositorio de NVIDIA, es vital actualizar la lista de paquetes de su sistema. Esto garantiza que su sistema reconozca los nuevos paquetes del repositorio de NVIDIA. Para actualizar, ejecute:

sudo apt update

Instale CUDA con controladores NVIDIA

Buscar controladores CUDA

Puede instalar CUDA y los controladores NVIDIA más recientes una vez que tenga los requisitos previos. Sin embargo, recomendamos verificar las versiones de controladores disponibles usando el comando APT show antes de continuar:

apt show cuda-drivers -a

Esto generará una lista de paquetes disponibles para varias versiones del controlador NVIDIA.

Alternativamente, también puede confirmar la versión de CUDA disponible usando el comando Política APT:

sudo apt policy cuda

Proceda a instalar los controladores Cuda

Este comando mostrará las versiones CUDA disponibles. Selecciona la versión que mejor se adapta a tus necesidades. Esta guía demostrará cómo instalar la última versión disponible.

Recuerde reemplazar 545 con 535,530, 525, 520, 515, etc., según su elección.

sudo apt install nvidia-driver cuda-drivers-545 cuda

Complete la instalación y reinicie

Una vez completada la instalación, reinicie su sistema para asegurarse de que todos los cambios surtan efecto:

sudo reboot

Este paso finaliza la configuración de CUDA en su sistema Debian, lo que garantiza que pueda aprovechar sus capacidades de manera efectiva.

Comenzando con CUDA

Evaluación de las capacidades de la GPU

Antes de sumergirse en la programación CUDA, es vital comprender las capacidades de su GPU. Diferentes GPU admiten distintas versiones de CUDA, cada una con atributos únicos como la cantidad de núcleos, tamaños de memoria y más. Para obtener información detallada sobre su GPU, utilice el nvidia-smi dominio:

nvidia-smi

Este comando proporciona información sobre varios atributos de la GPU, como su nombre, memoria total y versión de CUDA compatible.

Creando su primer programa CUDA

Para comenzar, desarrollaremos un programa CUDA básico, lo compilaremos y lo ejecutaremos para garantizar que todo funcione correctamente. Comience creando un nuevo archivo con el .cu extensión, que es estándar para los programas CUDA. Puedes usar cualquier editor de texto para esto:

nano helloworld.cu

Inserte el siguiente código en el archivo. Este sencillo programa muestra un mensaje "¡Hola, mundo!" mensaje de la GPU:

#include <stdio.h>

__global__ void helloFromGPU (void) {
    printf("Hello World from GPU!\n");
}

int main(void) {
    printf("Hello World from CPU!\n");
    helloFromGPU <<<1, 10>>>();
    cudaDeviceReset();
    return 0;
}

Para compilar este programa, utilice el nvcc comando, que significa Compilador NVIDIA CUDA:

nvcc helloworld.cu -o helloworld

Ahora, ejecuta el programa compilado:

./helloworld

El resultado debería mostrar lo siguiente:

¡Hola mundo desde CPU! ¡Hola mundo desde GPU!

Programación CUDA avanzada: multiplicación de matrices

Para demostrar aún más las capacidades de CUDA, desarrollemos un programa que realice la multiplicación de matrices usando CUDA. Esto mostrará cómo CUDA puede manejar de manera eficiente tareas altamente paralelas.

Comience creando un nuevo archivo:

nano matrixmul.cu

Inserte el siguiente código en el matrixmul.cu archivo. Este programa realiza la multiplicación de matrices en la GPU:

__global__ void gpu_matrix_mult(int *a,int *b, int *c, int m, int n, int k)
{ 
    // Calculate the row & column index of the element
    int row = blockIdx.y * blockDim.y + threadIdx.y; 
    int col = blockIdx.x * blockDim.x + threadIdx.x;

    int sum = 0;
    if( row < m && col < k ) 
    {
        for(int j = 0; j < n; j++) 
        {
            sum += a[row * n + j] * b[j * k + col];
        }
        // Each thread computes one element of the block sub-matrix
        c[row * k + col] = sum;
    }
} 

Compile el programa usando el nvcc dominio:

nvcc matrixmul.cu -o matrixmul

Luego, ejecute el programa compilado:

./matrixmul

La salida presentará el resultado de la operación de multiplicación de matrices. Este ejemplo ilustra cómo CUDA puede manejar eficientemente tareas paralelas como la multiplicación de matrices, ofreciendo un aumento significativo del rendimiento en comparación con la ejecución tradicional de la CPU.

Conclusión

En esta guía completa, hemos instalado meticulosamente el kit de herramientas CUDA en Debian 12 Bookworm, Debian 11 Bullseye y Debian 10 Buster. Siguiendo los pasos descritos, los usuarios pueden aprovechar el poder computacional de las GPU NVIDIA, desbloqueando un abanico de posibilidades para tareas informáticas de alto rendimiento. Asegurarse de que la instalación se alinee con la versión específica de Debian es esencial para garantizar la estabilidad y el rendimiento óptimo. Mantenerse actualizado con las últimas versiones y la documentación oficial es crucial a medida que evoluciona la tecnología. Los recursos y foros oficiales de NVIDIA son invaluables para aquellos que buscan profundizar en las capacidades de CUDA o solucionar problemas específicos.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario