Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior Próxima revisão Ambos lados da revisão seguinte | ||
faq:cuda [2019/03/22 09:57] 127.0.0.1 edição externa |
faq:cuda [2021/02/25 17:11] prppedro Tonico & Tinoco |
||
---|---|---|---|
Linha 2: | Linha 2: | ||
===== Qual Máquina tem o CUDA disponível? | ===== Qual Máquina tem o CUDA disponível? | ||
+ | Há duas máquinas capazes de CUDA na Rede Linux: '' | ||
+ | Cada uma está equipada com uma Nvidia Tesla K20c SM35. | ||
+ | Para acessá-las, | ||
- | A única | + | A máquina |
- | |||
===== Qual a versão do CUDA Toolkit disponível? | ===== Qual a versão do CUDA Toolkit disponível? | ||
+ | A versão atual é o CUDA Toolkit 10.1. | ||
- | A versão atual é o CUDA Toolkit 9.1 e planejamos mantê-lo atualizado sempre que possível. | + | ===== Caso o nvcc não funcione ===== |
+ | Para poder usar o '' | ||
+ | adicionar a pasta / | ||
+ | <code bash> | ||
+ | PATH=$PATH:/ | ||
+ | echo " | ||
+ | </ | ||
- | ===== Como faço para usar o CUDA? ===== | + | ===== 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. | ||
- | ==== 0. Conectar ==== | + | <code bash> |
- | Para poder usar qualquer parte do CUDA (compilar e executar comandos) é necessário que você faça '' | + | nvcc codigo.cu |
+ | </ | ||
- | <code bash> ssh dota</ | + | Para rodar o executável gerado também é como qualquer outro. |
- | Uma vez logado na dota, podemos iniciar a preparação. | + | <note important> |
+ | Não crie seu próprio '' | ||
+ | '' | ||
+ | das gpus que é executado pela raíz e não atrapalha a | ||
+ | execução do seu processo. | ||
+ | </ | ||
- | ==== 1. Preparação caso o nvcc não funcione | + | ===== Comando Úteis |
- | + | ||
- | Para poder usar o nvcc e outros comandos do CUDA toolkit, é necessário adicionar a pasta / | + | |
- | O comando abaixo deve funcionar se o seu shell for o bash(padrão na rede linux): | + | |
- | + | ||
- | <code bash> echo " | + | |
- | + | ||
- | ==== 2. Exemplos ==== | + | |
- | + | ||
- | A Nvidia provê vários exemplos pequenos, mas muito abrangentes, | + | |
- | + | ||
- | <code bash> cp -r / | + | |
- | + | ||
- | ==== 3. 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 </ | + | |
- | + | ||
- | Para rodar o executável gerado também é como qualquer outro. __IMPORTANTE__ Não crie seu próprio nvidia-cuda-mps-server, | + | |
- | + | ||
- | ==== -------IMPORTANTE!------- ==== | + | |
- | + | ||
- | Como o servidor possui duas GPUS, é necessário informar em qual delas seu '' | + | |
- | + | ||
- | <code c> cudaSetDevice(id); | + | |
- | + | ||
- | 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 // | + | |
- | Lembrando que mais de um programa pode rodar em cada GPU, mesmo sendo de outro usuário. | + | |
- | + | ||
- | ==== 4. Comando Úteis ==== | + | |
^ Comando | ^ Comando | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
- | O comando '' | + | O comando '' |
- | + | juntos num comando só (vide '' | |
- | === Infos === | + | obter informações como id, uso e memória livre das GPUs e quais |
- | + | processos estão rodando nelas (grealmente os processos serão | |
- | O '' | + | gerenciados pelo '' |
- | + | o que facilita na hora de escolher uma GPU mais livre para rodar o | |
- | ==== 5. Uso ==== | + | seu programa. |
- | + | ||
- | O fim do servidor de GPUs da Rede Linux é o uso por parte dos alunos para fins acadêmicos como EPs, projetos, testes, experimentos, | + | |
+ | ===== Uso ===== | ||
+ | Eu vou pessoalmente bater em quem usar isso pra minerar bitcoin. | ||
+ | --- // |