Ferramentas do usuário

Ferramentas do site


faq:cuda

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
faq:cuda [2020/05/02 07:33]
josealvim
— (atual)
Linha 1: Linha 1:
-===== 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. 
- 
-<code bash>  
-PATH=$PATH:/usr/local/cuda/bin" 
-echo "export PATH=$PATH:/usr/local/cuda/bin" >> ~/.bashrc  
-</code> 
- 
-==== 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//: 
- 
-<code bash>  
-cp -r /nvidia/NVIDIA_CUDA-9.1_Samples ~/cuda_samples 
-</code>  
- 
-==== 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. 
- 
-<code bash>  
-nvcc codigo.cu  
-</code> 
- 
-Para rodar o executável gerado também é como qualquer outro.  
- 
-<note important> 
-Não crie seu próprio nvidia-cuda-mps-server, já há um   
-desses para gerenciar todos os executáveis rodados  
-pelos usuários. 
-</note> 
-==== IMPORTANTE ==== 
- 
-Como o servidor possui duas GPUS, é necessário informar em qual delas seu ''kernel'' irá rodar. Para isso basta antes de chamar o ''kernel'' colocar a linha: 
- 
-<code c> cudaSetDevice(id); </code> 
- 
-Onde __id__ é 0 ou 1 dependendo de qual GPU é para ser utilizada. É possível também executar, usando esse método, programas que rodam em várias GPUs, porém eles requerem maior otimização para compensar o //overhead// da comunicação inter-GPUs. 
-Lembrando que mais de um programa pode rodar em cada GPU, mesmo sendo de outro usuário. 
- 
-==== 4. 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(livre em termos de memória). 
- 
-=== Infos === 
- 
-O ''nvidia-cuda-mps-server'' é um processo gerenciador das gpus, ele é rodado pelo root e não atrapalha a execução do seu processo.  
- 
-==== 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.1588415621.txt.gz · Última modificação: 2020/05/02 07:33 por josealvim