Roberto Colistete Jr.

Blog sobre computação física, científica e móvel : (Micro)Python, CUDA, smartphones, Linux, etc

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 :

  1. a frequência da necessidade de calcular em precisão dupla (15 algarismos) no lugar de simples (7-8 algarismos);
  2. 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;
  3. o custo-benefício de desempenho em SP e DP;
  4. necessidade de memória RAM e de largura de banda em função dos tipos de problemas a serem resolvidos na GPU;
  5. 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 :

3) Dell :

4) LG P430 (14″, Core i7M) a partir de R$2.249, com GeForce GT 520M (1GB, 48 núcleos, Fermi);

5) Samsung :

6) Sony :

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 :

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) :

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) :

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.

6 Respostas to “Escolhendo placa-de-vídeo e computador para cálculos em GPU com CUDA”

  1. 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.

    • 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.

  2. Obrigado pelas informações, muito útil.

  3. Andrea said

    Olá, Roberto.
    Pensei na XPS 8500 da Dell para trabalhos graficos utilizando Corel Draw e Adobe CS6. Achas uma boa escolha?

    • 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.

Deixe um comentário