Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
|
faq:cuda [2019/10/26 22:55] 127.0.0.1 edição externa |
— (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 __dota__. 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 e planejamos mantê-lo atualizado sempre que possível. | ||
| - | |||
| - | |||
| - | ===== Como faço para usar o CUDA? ===== | ||
| - | |||
| - | ==== 0. Conectar ==== | ||
| - | Para poder usar qualquer parte do CUDA (compilar e executar comandos) é necessário que você faça '' | ||
| - | |||
| - | <code bash> ssh dota</ | ||
| - | |||
| - | Uma vez logado na dota, podemos iniciar a preparação. Não se preocupe, esse passo só é necessário na primeira vez. | ||
| - | |||
| - | ==== 1. Preparação caso o nvcc não funcione ==== | ||
| - | |||
| - | 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 | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | O comando '' | ||
| - | |||
| - | === Infos === | ||
| - | |||
| - | O '' | ||
| - | |||
| - | ==== 5. Uso ==== | ||
| - | |||
| - | A finalidade do servidor de GPUs da Rede Linux é o uso para fins acadêmicos como EPs, projetos, testes, experimentos, | ||
| - | |||
| - | 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. | ||