Como instalar o kit de ferramentas CUDA no Debian 12, 11 ou 10

O CUDA da NVIDIA, ou Compute Unified Device Architecture, é uma ferramenta poderosa para computação paralela. Ele usa unidades de processamento gráfico (GPUs) NVIDIA para aumentar a velocidade das tarefas de computação. Este guia mostrará como instalar CUDA no Debian 12 Bookworm, Debian 11 Bullseye e Debian 10 Buster. Usaremos o repositório APT da NVIDIA para cada versão Debian para garantir que tudo corra bem.

O que faz o kit de ferramentas CUDA se destacar:

  • Processamento paralelo: CUDA permite que seu software execute muitas tarefas simultaneamente em GPUs NVIDIA. Isso é ótimo para trabalhos que precisam de muito poder de computação.
  • Suporte para vários idiomas: Você pode usar CUDA com linguagens de programação como C, C++ e Fortran. Também funciona com outras ferramentas de computação como OpenCL e DirectCompute.
  • Ferramentas de desenvolvimento completas: A NVIDIA oferece aos desenvolvedores um conjunto completo de ferramentas com o Nsight Eclipse Edition. Ajuda na construção, depuração e melhoria de aplicativos CUDA.
  • Bibliotecas prontas para uso: CUDA possui suas bibliotecas para tarefas de GPU. Os exemplos incluem cuBLAS para operações matemáticas e cuFFT para análise de dados.
  • Design pronto para o futuro: CUDA foi feito para funcionar com GPUs NVIDIA novas e futuras. Isso significa que seu software pode melhorar sem alterar muito o seu código.

Antes de instalar o CUDA no Debian:

  • Verifique seu sistema: Certifique-se de que o hardware e software do seu computador estejam prontos para CUDA. A NVIDIA tem uma lista de GPUs e necessidades de sistema que você pode verificar.
  • Use a fonte certa: Este guia se concentra no repositório APT da NVIDIA para Debian. É a melhor maneira de obter uma versão estável e funcional do CUDA para o seu sistema Debian.
  • Ficar atualizado: É uma boa ideia procurar atualizações de vez em quando. A NVIDIA frequentemente traz novos recursos e correções para melhorar o CUDA.

Para finalizar esta introdução, compreender e usar CUDA no Debian pode impulsionar significativamente suas aplicações. À medida que avançamos, nos aprofundaremos no processo de instalação e nas melhores práticas para aproveitar ao máximo o kit de ferramentas CUDA da NVIDIA em seu sistema Debian.

Limpando instalações existentes de CUDA e NVIDIA (situacional)

Antes de instalar drivers NVIDIA ou considerar atualizações de versão no Debian, é crucial começar do zero. Isso significa remover quaisquer instalações NVIDIA existentes do seu sistema Debian. Esta etapa garante que você evite possíveis problemas decorrentes de instalações sobrepostas. Se você é novo nas instalações de drivers NVIDIA, pode pular esta seção e prosseguir para a próxima.

Método 1: Desinstalando pacotes NVIDIA instalados via APT

Se você já usou o gerenciador de pacotes APT para instalar drivers NVIDIA, você pode usar um único comando para remover todos os pacotes relacionados à NVIDIA. Esta ação removerá efetivamente a NVIDIA do seu sistema. Digite o seguinte comando em seu terminal:

sudo apt autoremove cuda* nvidia* --purge

Este comando usa o autoremove característica do apt comando. Ele remove pacotes que foram instalados automaticamente para satisfazer dependências de outros pacotes, mas que não são mais necessários. O nvidia* padrão identifica todos os pacotes que começam com 'nvidia'. O --purge opção diz apt para remover não apenas os pacotes, mas também seus arquivos de configuração associados.

Método 2: Desinstalar drivers NVIDIA instalados via Runfile

Se você instalou drivers NVIDIA usando um .run arquivo (geralmente não recomendado devido a alternativas melhores, como o repositório NVIDIA CUDA), uma abordagem diferente é necessária para sua remoção.

Para remover o tipo de arquivo runfile de instalação, execute o seguinte comando:

sudo /usr/bin/nvidia-uninstall

Este comando executa o nvidia-uninstall script que vem com a instalação do runfile. O script remove metodicamente o driver NVIDIA que foi instalado usando o runfile.

Método 3: Desinstalando o CUDA Toolkit instalado via Runfile

Se você instalou o kit de ferramentas CUDA usando um arquivo run, também é essencial removê-lo. O processo de remoção é semelhante ao dos drivers NVIDIA. Para remover o kit de ferramentas CUDA, execute o seguinte comando:

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

No comando acima, substitua X.Y com o número da versão do seu kit de ferramentas CUDA instalado. Este comando executa o cuda-uninstall script, que está incluído na instalação do runfile do kit de ferramentas CUDA. O script foi projetado para remover metodicamente o kit de ferramentas CUDA do seu sistema Debian.

Ativar repositórios Contribub e não gratuitos

A etapa inicial envolve adicionar os repositórios “contrib” e “non-free” à sua lista de repositórios Debian. O procedimento varia a partir do Debian 12 Bookworm, portanto, usar o comando que corresponde à sua versão específica da distribuição Debian é crucial.

Em primeiro lugar, verifique se o seguinte está instalado no seu sistema Debian:

sudo apt install software-properties-common -y

Leitor ávido e em diante:

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

Bullseye e Buster para baixo:

sudo add-apt-repository contrib non-free

Antes de continuar, certifique-se de executar uma atualização rápida do APT para atualizar o índice do seu pacote:

sudo apt update

Adicionar repositório NVIDIA APT no Debian

O método mais eficiente para instalação do CUDA é diretamente do repositório NVIDIA CUDA. Essa abordagem garante que os usuários recebam atualizações oportunas, incluindo novos recursos, correções de bugs, patches de segurança e melhorias.

Preparando o sistema Debian antes da instalação do CUDA

Antes de iniciar o processo de instalação, preparar adequadamente o seu sistema Debian é crucial. Isso significa que você precisará instalar vários pacotes de pré-requisitos. Mesmo que alguns desses pacotes já estejam em seu sistema, é aconselhável verificar novamente. Execute o seguinte comando em seu terminal:

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

Este comando instala pacotes essenciais que serão cruciais para as etapas subsequentes. Entre eles, dirmngr gerencia chaves, ca-certificates lida com certificados SSL, software-properties-common gerencia repositórios de software, apt-transport-https garante downloads seguros de pacotes, dkms gerencia módulos do kernel e curl facilita downloads de arquivos da internet.

Autenticando a instalação com a chave GPG do repositório NVIDIA

É crucial garantir a autenticidade e integridade dos pacotes de software. Ao importar a chave GPG para sua versão específica do Debian, você verifica a autenticidade dos pacotes do repositório. A chave assina os pacotes e, ao importá-los, você diz ao seu sistema para confiar nesses pacotes assinados.

Leitor ávido, execute:

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

Alvo, corra:

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, use:

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

Integrando o repositório NVIDIA ao seu sistema Debian

Com a chave GPG, agora você pode adicionar o repositório NVIDIA ao seu sistema Debian. Este repositório contém os pacotes necessários para instalação do CUDA.

Leitor ávido, use:

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

Alvo, use:

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, use:

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

Etapa 4: atualizando a lista de pacotes

Depois de adicionar o repositório NVIDIA, atualizar a lista de pacotes do seu sistema é vital. Isso garante que seu sistema reconheça os novos pacotes do repositório NVIDIA. Para atualizar, execute:

sudo apt update

Instale CUDA com drivers NVIDIA

Pesquisar drivers CUDA

Você pode instalar o CUDA e os drivers NVIDIA mais recentes assim que tiver os pré-requisitos. No entanto, recomendamos verificar as versões de driver disponíveis usando o comando APT show antes de continuar:

apt show cuda-drivers -a

Isso exibirá uma lista de pacotes disponíveis para várias versões de driver NVIDIA.

Alternativamente, você também pode confirmar a versão CUDA disponível usando o comando APT Policy:

sudo apt policy cuda

Prossiga para instalar os drivers Cuda

Este comando exibirá as versões CUDA disponíveis. Selecione a versão que melhor atende às suas necessidades. Este guia demonstrará como instalar a versão mais recente disponível.

Lembre-se de substituir 545 com 535,530, 525, 520, 515, etc., com base na sua escolha.

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

Conclua a instalação e reinicie

Após a conclusão da instalação, reinicie o sistema para garantir que todas as alterações tenham efeito:

sudo reboot

Esta etapa finaliza a configuração do CUDA em seu sistema Debian, garantindo que você possa aproveitar efetivamente seus recursos.

Introdução ao CUDA

Avaliando os recursos da GPU

Antes de mergulhar na programação CUDA, é vital compreender os recursos da sua GPU. Diferentes GPUs suportam versões variadas de CUDA, cada uma com atributos exclusivos, como número de núcleos, tamanhos de memória e muito mais. Para obter informações detalhadas sobre sua GPU, use o nvidia-smi comando:

nvidia-smi

Este comando fornece insights sobre vários atributos da GPU, como nome, memória total e versão CUDA compatível.

Criando seu primeiro programa CUDA

Para começar, desenvolveremos um programa CUDA básico, compilaremos e executaremos para garantir que tudo funcione corretamente. Comece criando um novo arquivo com o .cu extensão, que é padrão para programas CUDA. Você pode usar qualquer editor de texto para isso:

nano helloworld.cu

Insira o seguinte código no arquivo. Este programa simples exibe uma mensagem “Hello, World!” mensagem da 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, utilize o nvcc comando, que significa compilador NVIDIA CUDA:

nvcc helloworld.cu -o helloworld

Agora, execute o programa compilado:

./helloworld

A saída deve exibir o seguinte:

Olá mundo da CPU! Olá mundo da GPU!

Programação CUDA Avançada: Multiplicação de Matrizes

Para demonstrar ainda mais os recursos do CUDA, vamos desenvolver um programa que realiza multiplicação de matrizes usando CUDA. Isso mostrará como o CUDA pode lidar com tarefas altamente paralelas com eficiência.

Comece criando um novo arquivo:

nano matrixmul.cu

Insira o seguinte código no matrixmul.cu arquivo. Este programa realiza multiplicação de matrizes na 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 o programa usando o nvcc comando:

nvcc matrixmul.cu -o matrixmul

Em seguida, execute o programa compilado:

./matrixmul

A saída apresentará o resultado da operação de multiplicação de matrizes. Este exemplo ilustra como CUDA pode lidar com tarefas paralelas com eficiência, como multiplicação de matrizes, oferecendo um aumento significativo de desempenho em comparação com a execução tradicional de CPU.

Conclusão

Neste guia abrangente, instalamos meticulosamente o CUDA Toolkit no Debian 12 Bookworm, Debian 11 Bullseye e Debian 10 Buster. Seguindo as etapas descritas, os usuários podem aproveitar o poder computacional das GPUs NVIDIA, abrindo um leque de possibilidades para tarefas de computação de alto desempenho. Garantir que a instalação esteja alinhada com a versão específica do Debian é essencial para garantir estabilidade e desempenho ideal. Manter-se atualizado com os lançamentos mais recentes e a documentação oficial é crucial à medida que a tecnologia evolui. Os recursos e fóruns oficiais da NVIDIA são inestimáveis ​​para quem deseja se aprofundar nos recursos do CUDA ou solucionar problemas específicos.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário