Escolhendo placa-de-vídeo e computador para cálculos em GPU com CUDA
Posted by robertocolistete em 27/07/2012
De 2007 para cá ficou muito acessível a computação paralela para GPU (Graphical Processing Units) usando CUDA (Compute Unified Device Architecture), que é uma arquitetura proprietária da NVidia e compatível somente com placas-de-vídeo da marca NVidia. A placa-de-vídeo se comunica com a CPU do computador e tem seu próprio processador (GPU) e memória.
Em Março de 2012 foi lançada a família Kepler das GPU’s NVidia, a anterior é a família Fermi. Ambas são recomendadas pois suportam cálculos de precisão dupla, muito comuns em aplicações científicas. A nomenclatura da NVidia é muito confusa, logo recomenda-se sempre pesquisar na Internet (além dos sites da NVidia citados acima, tabela do NotebookCheck, GPU-Review, etc) sobre a placa-de-vídeo em questão para saber os detalhes em termos de :
- número de núcleos (em inglês “cores”), atualmente o mínimo é de 48 (p.e., GeForce GT 610) nos modelos de 2012, até 1536 (na GeForce GTX-680, vide matéria minha anterior);
- velocidade da GPU, até família Fermi tinha shader speed com o dobro da core speed, agora na Kepler é a mesma frequência (mas quadruplicaram o número de núcleos). A core speed é da ordem de centenas de MHz;
- memória : tamanho (GB), tipo (DDR3 ou GDD5 que é mais rápida), velocidade (centenhas de MHz até 6 GHz), tamanho em bits do barramento (64 a 384 bits), largura de banda (em GB/s, desde poucas dezenas a algumas centenas);
- capacidade computacional (CC), sendo 2.0/2.1 para Fermi e 3.0 para Kepler;
- potência dissipada (W);
- tipo de saída de vídeo, etc.
Há 3 famílias de placas-de-vídeo/GPU’s da NVidia, em termos crescente de profissionalismo científico :
- NVidia GeForce : optimizadas para velocidade em jogos e cálculos com precisão simples (SP, Single Precision, ou FP32), tem baixo custo e fácil disponibilidade nas versões de desktop e notebook;
- NVidia Quadro : orientadas para workstations de visualização, têm drivers e firmwares optimizados para visualização (CAD/CAM, OpenGL, etc), mais memória (até 6GB na Quadro 6000), maior estabilidade (clock mais baixo e memórias mais testadas e com menor chance de gerar erros nos resultados), memória ECC (com correção de erros) nas Quadro 5000 e 6000, precisão dupla (DP, Double Precision, ou FP64) com desempenho melhorado nas Quadro 4000, 5000 e 6000, potência dissipada reduzida (Quadro 2000 com 192 núcleos dissipa 60 W), menor tamanho ocupando menos slots, etc. Vide tabela comparativa detalhada das Quadro. Tem preço bem maior que as GeForce com mesmo número de núcleos;
- NVidia Tesla : optimizada para desempenho em computação científica de precisão dupla (caso das Teslas Fermi), maior estabilidade (clock mais baixo e memórias mais testadas e com menor chance de gerar erros nos resultados), memória ECC (com correção de erros), mais memória (até 6GB na Tesla C2070/2075), GPU Direct (duas ou mais GPU’s se comunicam diretamente, sem passar pela CPU), potência reduzida, suporte profissional da NVidia, etc. Tem preço bem maior que as GeForce com mesmo número de núcleos.
Para cálculos científicos em CUDA, o que se deve analisar para se escolher uma GPU com CUDA ? Vejamos :
- a frequência da necessidade de calcular em precisão dupla (15 algarismos) no lugar de simples (7-8 algarismos);
- o desempenho em GFlop/s de pico em SP e DP, às vezes via relação de desempenho DP/SP da placa-de-vídeo;
- o custo-benefício de desempenho em SP e DP;
- necessidade de memória RAM e de largura de banda em função dos tipos de problemas a serem resolvidos na GPU;
- a necessidade das famílias Quadro e Tesla para se ter baixíssima taxa de erro nos resultados, também em função do tipo de cálculos.
GPU | Família | Núcleos | DP/SP | GFlop/s DP | GFlop/s SP | Banda GB/s | Preço R$ |
---|---|---|---|---|---|---|---|
GeForce GT 540M | Fermi | 96 | 1/12 | 22 | 258 | 29 | R$200 no notebook |
GeForce GT 430 | Fermi | 96 | 1/12 | 22 | 269 | 26 | 200 |
GeForce GT 640M | Kepler | 384 | 1/24 | 20 | 480 | 29 | R$400 no notebook |
GeForce GT 640 | Kepler | 384 | 1/24 | 29 | 691 | 29 | 400 |
GeForce GTX 560 Ti | Fermi | 384 | 1/12 | 105 | 1263 | 128 | 1.000 |
GeForce GTX 580 | Fermi | 512 | 1/8 | 200 | 1581 | 192 | 2.100 |
GeForce GTX 680 | Kepler | 1536 | 1/24 | 129 | 3090 | 192 | 2.500 |
GeForce GTX 590 | Fermi | 2×512 | 1/8 | 311 | 2488 | 328 | 4.000 |
GeForce GTX 690 | Kepler | 2×1536 | 1/24 | 234 | 5.622 | 385 | 5.200 |
Quadro 600 | Fermi | 96 | 1/12 | 21 | 246 | 26 | 700 |
Quadro 2000 | Fermi | 192 | 1/12 | 40 | 480 | 42 | 2.400 |
Quadro 4000 | Fermi | 256 | 1/2 | 243 | 486 | 90 | 3.300 |
Quadro 5000 | Fermi | 352 | 1/2 | 359 | 718 | 120 | 8.500 |
Tesla C2050 | Fermi | 448 | 1/2 | 515 | 1030 | 144 | 7.000 |
Tesla C2075 | Fermi | 448 | 1/2 | 515 | 1030 | 144 | 12.800 |
Tabela comparativa de GPU’s NVidia com valores parcelados no Brasil pesquisados em 07/2012.
Comentários sobre a tabela acima :
- sim, a GeForce GTX 680 realiza 3 TeraFlop/s de pico em SP (trilhões de cálculos de ponto flutuante em precisão simples por segundo) !
- sim, a Tesla C2050/70/75 calcula 0,5 TeraFlop/s de pico em DP (trilhões de cálculos de ponto flutuante em precisão dupla por segundo) ! No teste nbody (do CUDA Toolkit) que eu rodei alcançou 489 TeraFlop/s em SP e 245 TeraFlop/s em DP;
- para efeitos de comparação, um núcleo de uma CPU Intel Core i7 tem desempenho de pico entre 10 e 23 GFlop/s (SP ou DP), porém isso é dificilmente alcançado;
- GTX 590 e GTX 690 são basicamente duas GTX 580 e GTX 680 juntas, respectivamente;
- a geração Kepler tem baixa (1/24) relação DP/SP, logo se precisão dupla for essencial é às vezes melhor continuar na família Fermi por enquanto;
- embora o número de núcleos tenha quadruplicado (p.e., GT 540M x GT 640M) na família Kepler, o desempenho em SP é aprox. 2x e o mesmo em DP;
- as Quadro e Tesla são imbatíveis em precisão dupla, mas a relação custo x benefício precisa ser analisada;
- a Tesla K10 da família Kepler não foi incluída pois não foi encontrada no Brasil e por ter desempenho fraco em DP, tanto que mesmo no exterior não foi adotada como sucessora das Tesla Fermi. Tem duas GPU’s da GTX 680, i.e., 2 x 1536 núcleos, 190 GFlop/s em DP, 4.577 GFlop/s em SP, 1/24 de DP/SP, 320 GB/s, preço em torno de US$2.500;
- a Tesla K20 da família Kepler será lançada no final de 2012, com promessa de 1,5 TeraFlop/s em DP, aí sim será uma substituta melhor que as Tesla 20xx Fermi atuais;
- para cálculos de precisão simples, a relação custo x benefício de uma GeForce Kepler chega a ser 10-15x melhor que uma Quadro/Tesla;
Daqui em diante nesse artigo eu vou focar em hardware sugerido para programação de GPU usando CUDA, atualmente e no Brasil. Abordarei computadores notebooks e desktops novos, bem como adicionar placa-de-vídeo NVidia a computador desktop já existente.
Comecemos pelos notebooks, onde os valores citados são parcelados e em lojas de renome. Vemos que a partir de R$2 mil há bons modelos com NVidia GeForce:
1) Apple MacBook (Air e Pro) alternam placas-de-vídeo Intel, AMD ATI e NVidia. Por exemplo, os MacBook (inclusive Air) de 2010 tinham GeForce 320M. Atualmente só o MacBook Pro (15,4″, Core i7QM) a partir de R$7.999 tem GeForce GT 650M (512MB/1GB GDDR5, 384 núcleos, Kepler);
2) Asus :
- N43SN (14″, Core i7QM) a partir de R$2.715, com GeForce GT 550M (1GB, 96 núcleos, Fermi);
- G53SW (15,6″, Core i7QM) a partir de R$5.299, com GeForce GTX 460M (1,5GB GDDR5, 192 núcleos, Fermi);
- Lamborghini VX7 (15,6″, Core i7QM) a partir de R$7.999, com GeForce GTX 460M (3GB GDDR5, 192 núcleos, Fermi);
3) Dell :
- Inspiron 14R (14″, Core i5M) a partir de R$2.099 e Vostro 3460 (14″, Core i5M) a partir de R$2.299, ambos com GeForce GT 630M (1GB, 96 núcleos, Fermi);
- XPS 15 (15,6″, Core i5M) a partir de R$2.299, com GeForce GT 525M (1GB, 96 núcleos, Fermi);
- XPS 15z (15.6″, Core i7M)a partir de R$5.899, com GeForce GT 525M (2GB, 96 núcleos, Fermi);
4) LG P430 (14″, Core i7M) a partir de R$2.249, com GeForce GT 520M (1GB, 48 núcleos, Fermi);
5) Samsung :
- RF511 SD6 (15,6″, Core i5M) a partir de R$1.979, com GeForce GT 540M (1GB, 96 núcleos, Fermi);
- RF511 SD3 (15,6″, Core i7QM) a partir de R$2.909, com GeForce GT 540M (2GB, 96 núcleos, Fermi);
6) Sony :
- SVS13115FB (13,3″, Core i3M) por R$3.299, com GeForce GT 640M LTE (1GB, 384 núcleos, Kepler);
- SVS13A17GB (13,3″, Core i7M) por R$3.899, com GeForce GT 640M LTE (1GB, 384 núcleos, Kepler);
- SVS15115FB (15,5″, Core i7M) por R$3.999, com GeForce GT 640M LTE (1GB, 384 núcleos, Kepler).
Quanto a computadores desktops novos com placas-de-vídeo NVidia, há muitas lojas pequenas e médias que montam configurações dedicadas para “gamers”, em que a fonte de energia e gabinete precisam ser adequados à potência consumida pela placa-de-vídeo (desde 60 a 300W). Citarei as lojas maiores e com valores parcelados :
1) Dell :
- Vostro 260 Slim (Core i5) a partir de R$2.099, com GeForce GT 620 (1GB DDR3, 96 núcleos, Fermi);
- XPS 8500 (Core i7) a partir de R$3.699, com GeForce GT 640 (1 GB DDR5, 384 núcleos, Kepler);
- Precision T3500 (Xeon) a partir de R$5,6 mil, com Quadro 2000 (1GB GDDR5, 192 núcleos, Fermi);
- Precision T5500 (Xeon) a partir de R$8,6 mil, com Quadro 2000 (1GB GDDR5, 192 núcleos, Fermi) ou Quadro 5000 (2,5GB GDDR5, 352 núcleos, Fermi) ou Quadro 6000 (6GB GDDR5, 448 núcleos, Fermi);
- Precision R5500 (Xeon) com preço sob consulta, configurável várias Quadro até Tesla C2050 (3GB GDDR5, 448 núcleos, Fermi).
2) FirstPlace : tem várias configurações já prontas, de R$2 mil a R$22 mil, permitindo personalizá-las, com a linha gamer (NVidia GeForce) e a linha de workstations profissionais (usando as NVidia Quadro e Tesla). Citarei algumas configurações (que têm CPU, RAM, etc bem diferentes) :
- i7 FireStorm por R$3.892, com GeForce GTX 560 Ti (1GB GDDR5, 384 núcleos, Fermi);
- i7 Ghost por R$5.972, com GeForce GTX 580 (1,5GB GDDR5, 512 núcleos, Fermi);
- i7 Razor por R$8.281, com GeForce GTX 680 (2GB GDDR5, 1536 núcleos, Kepler);
- i7 Render por R$6.110, com Quadro 2000 (1GB GDDR5, 192 núcleos, Fermi);
- i7 Harvest por R$11.605, com Quadro 4000 (2GB GDDR5, 256 núcleos, Fermi);
- i7 Maximus por R$24.898, com Quadro 2000 (1GB GDDR5, 192 núcleos, Fermi) e uma Tesla C2075 (6GB GDDR5, 448 núcleos, Fermi).
3) X5 Computadores : tem mais de uma centena de configurações prontas, com GeForce, Quadro (600, 2000, 4000 e 6000) e Tesla (C2075), variando de R$2,5 mil a R$75 mil (à vista).
Adição de placa-de-vídeo NVidia a computador desktop já existente. Como isso implica normalmente em mudar a fonte e gabinete do computador para placas-de-vídeo que consomem acima de 75W (limite de um slot PCI-E), vou evitar tais pesados gastos e sugerir somente aquelas com menos de 70W de consumo máximo (aí basta abrir o gabinete e colocar a placa-de-vídeo no slot PCI-E) :
- GeForce GT 430 ou GeForce GT 620 : 1GB DDR3, 96 núcleos, Fermi, 49W, aprox. R$200;
- GeForce GT 545 : 1,5 GB DDR3, 144 núcleos, Fermi, 70 W, aprox. R$370; (Adicionada em 10/08/2012)
- GeForce GT 640 : 1-2GB DDR3, 384 núcleos, Kepler, 65W, aprox. R$400;
- Quadro 600 : 1GB GDDR5, 96 núcleos, Fermi, 40W, aprox. R$700;
- Quadro 2000 : 1GB GDDR5, 192 núcleos, Fermi, 62W, aprox. R$2.000.
Conclusão : para quem quer iniciar no mundo de computação paralela de GPU & CUDA, o custo básico é uns R$200 quer seja adicionando uma placa-de-vídeo NVidia em computador desktop usado ou a mais no preço de um notebook ou desktop novo. E para cálculos da ordem de TFlop/s, sai por R$3 mil em diante um computador desktop completo.
Renato said
Como poucas pessoas tem conhecimento do mercado de fontes e da realidade quanto às desonestidades do mercado, dou uma dica simples, compre apenas fontes com PFC ativo e jamais use estabilizadores ou módulos isoladores, em vez disso tenha um BOM filtro de linha na faixa de uns R$100, e use no-break apenas se for extremamente necessário.
robertocolistete said
Uma realidade em muitas universidades é a baixa qualidade de fornecimento de energia elétrica, tendo quedas mais frequentes que na cidade em torno da universidade. Logo o uso de no-break é quase obrigatório em certas universidades. Face a isso, alguma recomendação de tipo de no-break ? Precisa ser com saída senoidal pura ?
Renato said
Nao sei muito de no-breaks, aqui pode-se encontrar tudo sobre http://forum.clubedohardware.com.br/fontes-energia/f206
em suma, os fabricantes que dizem que seu produto é semi-senoidal ou senoidal por aproximacao, na verdade a onda que o seu produto produz é quadrada, que extressa muito as fontes e depois de um tempo irá mata-las de infarto, e nisso infartar outras pecas do PC.
Um no-break que nao tenha esse problema ira custar uns 2 mil reais, que seria um no-break online de dupla conversao se nao me engano.
robertocolistete said
Obrigado pelas informações, muito útil.
Andrea said
Olá, Roberto.
Pensei na XPS 8500 da Dell para trabalhos graficos utilizando Corel Draw e Adobe CS6. Achas uma boa escolha?
robertocolistete said
Olá Andrea,
Para tal tipo de uso, softwares gráficos de desenho e editoração, eu não sei quais placas-de-vídeo são melhores em termos de marca e modelos.
Sobre o Dell XPS 8500, veja que acabou de sair o XPS 8700, com placas AMD Radeon ou NVidia Geforce, CPU’s recentes, etc.
No geral, esses XPS 8500 e 8700 me parecem bem equilibrados. Eu sugiro configuração com 16GB de RAM.