===== GPUs =====
Há três máquinas na rede com GPU:
* a máquina **goku**, com uma Radeon RX 5700.
* a máquina **vegeta** com uma RTX 3060, permitindo uso de CUDA.
* a máquina **c**, com placa RX 580, voltada voltada para desenvolvimento em kernel para drivers AMD. Entre em contato com a administração para saber mais.
Para acessar qualquer uma das máquinas, utilize **''ssh goku''** ou **''ssh vegeta''** a partir da neozil.
Para a máquina vegeta, você pode utilizar o comando **''tensorflow''** para entrar em um container com um ambiente tensorflow-cuda configurado.
Para a máquina goku, você pode utilizar o comando **''tensorflow''** para entrar em um container com um ambiente tensorflow-rocm configurado, ou utilizar o comando **''pytorch''** para entrar em um container com um ambiente pytorch-rocm configurado.
Os ambientes das máquinas vegeta e goku montam automaticamente a home do usuário, mas não providenciam algumas ferramentas úteis como editor de texto, por exemplo. Use esses ambientes quando quiser executar algum programa. Outro aviso importante: Os ambientes da máquina goku são lentos para inicialização, tente usar a máquina vegeta quando possível.
Caso queira desenvolver para kernel e precise de uma máquina para deploy de imagens de kernel, peça o acesso para os administradores da rede o acessoa à máquina c.
===== Qual a versão do CUDA Toolkit disponível na vegeta? =====
A versão atual é o CUDA Toolkit 11.8.
===== Compilando e Rodando código CUDA =====
O compilador do CUDA aceita códigos C e C++, além do próprio CUDA. Para
compilar um arquivo de código, basta chamar o **nvcc** como se fosse
qualquer outro compilador de C.
nvcc codigo.cu
Para rodar o executável gerado também é como qualquer outro.
Não crie seu próprio ''nvidia-cuda-mps-server''. O
''nvidia-cuda-mps-server'' é um processo gerenciador
das gpus que é executado pela raíz e não atrapalha a
execução do seu processo.
===== Comando Úteis para uso de CUDA =====
^ Comando ^ Descrição^
| ''nvcc'' | Compilador de código CUDA|
| ''nvtop'' | Exibe informações de proessos dos usuários e uso das GPUS|
| ''nvidia-smi'' | Display de informações gerais das gpus|
O comando ''nvidia-smi'' é na verdade uma variedade de comandos
juntos num comando só (vide ''nvidia-smi -h'') . Com ele é possível
obter informações como id, uso e memória livre das GPUs e quais
processos estão rodando nelas (grealmente os processos serão
gerenciados pelo ''mps-server'' e não aparecerão individualmente),
o que facilita na hora de escolher uma GPU mais livre para rodar o
seu programa.
===== Uso =====
Eu vou pessoalmente bater em quem usar isso pra minerar bitcoin.
--- //[[jose.alvim@usp.br|Jose Goudet Alvim]] 2020/05/02 07:39//