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 Próxima revisão Ambos lados da revisão seguinte | ||
faq:cuda [2019/05/28 09:12] orem [5. Uso] |
faq:cuda [2024/04/09 13:28] marcelospe |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
- | ===== CUDA ===== | + | ===== GPUs ===== |
- | ===== Qual Máquina tem o CUDA disponível? | + | Há duas 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 única máquina que tem placas de vídeo Nvidia com capacidade CUDA é a __dota__. Ela está equipada com duas Nvidia Tesla K20c SM35. | + | Para acessar qualquer uma daas máquinas, utilize **'' |
+ | ===== Qual a versão do CUDA Toolkit disponível na vegeta? ===== | ||
+ | A versão atual é o CUDA Toolkit 11.8. | ||
- | ===== 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. | + | ===== 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 | ||
+ | </ | ||
- | ===== Como faço para usar o CUDA? ===== | + | Para rodar o executável gerado também é como qualquer outro. |
- | ==== 0. Conectar ==== | + | <note important> |
- | Para poder usar qualquer parte do CUDA (compilar e executar comandos) é necessário que você faça '' | + | Não crie seu próprio '' |
+ | '' | ||
+ | das gpus que é executado pela raíz e não atrapalha a | ||
+ | execução | ||
+ | </ | ||
- | <code bash> ssh dota</ | + | ===== Comando Úteis |
- | + | ||
- | 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 | ^ 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. |
- | + | ||
- | 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. | + | ===== Uso ===== |
+ | Eu vou pessoalmente bater em quem usar isso pra minerar bitcoin. | ||
+ | --- //[[jose.alvim@usp.br|Jose Goudet Alvim]] 2020/05/02 07:39// |