Ferramentas do usuário

Ferramentas do site


faq:cuda

Essa é uma revisão anterior do documento!


CUDA

Qual Máquina tem o CUDA disponível?

A única máquina que tem placas de vídeo Nvidia com capacidade CUDA é a neozil. Ela está equipada com duas Nvidia Tesla K20c SM35.

Qual a versão do CUDA Toolkit disponível?

A versão atual é o CUDA Toolkit 9.1.

Como faço para usar o CUDA?

Caso o nvcc não funcione

Para poder usar o nvcc e outros comandos do CUDA toolkit, é necessário adicionar a pasta /usr/local/cuda/bin para a sua variável de ambiente PATH.

PATH=$PATH:/usr/local/cuda/bin"
echo "export PATH=$PATH:/usr/local/cuda/bin" >> ~/.bashrc 

Exemplos

A Nvidia provê vários exemplos pequenos, mas muito abrangentes, de código CUDA. Eles estão localizados na pasta /nvidia/NVIDIA_CUDA-X.X_Samples, Para poder compilar, modificar ou executar esses códigos, você deve copiá-los para alguma pasta de sua preferência dentro de sua home:

cp -r /nvidia/NVIDIA_CUDA-9.1_Samples ~/cuda_samples

Compilando e Rodando

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.
Como o servidor possui duas GPUS, é necessário informar em qual delas seu kernel irá rodar.

Para isso basta, antes de chama-lo, colocar a linha:

cudaSetDevice(id); 

Comando Úteis

Comando Descrição
nvcc Compilador de código CUDA
cudatop 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.

5. Uso

A finalidade do servidor de GPUs da Rede Linux é o uso para fins acadêmicos como EPs, projetos, testes, experimentos, entre outros. O uso das GPUs para fins não acadêmicos é expressamente proibido.

Em particular, o uso de qualquer computador da Rede Linux para mineração de criptomoedas é proibido. Essa atividade causa prejuízo acadêmico, pois inutiliza aquele recurso para os outros estudantes, e causa prejuízo financeiro, pois é uma atividade de alto custo de energia. A violação dessa regra pode resultar em banimento permanente da Rede Linux. Como isso pode configurar uso indevido de patrimônio público, medidas em outras esferas também podem ser aplicadas.

faq/cuda.1588415944.txt.gz · Última modificação: 2020/05/02 07:39 por josealvim