As GPUs disponíveis atualmente suportam aritmética de ponto flutuante de precisão dupla?

17

Eu executei o código de dinâmica molecular (MD) GROMACS em um cluster Ubuntu Linux que consiste em nós contendo 24 CPUs Intel Xeon. Meu ponto de interesse específico acaba sendo um pouco sensível à precisão aritmética de ponto flutuante, por isso tive que executar o GROMACS em precisão dupla ao invés de precisão única - apesar do alto custo computacional da precisão dupla. Portanto, no cluster, compilei o GROMACS em dupla precisão.

Estou pensando em comprar algumas GPUs, pois pode haver uma aceleração relativa ("aceleração da GPU") em relação às CPUs. No entanto, preciso de uma GPU que me permita fazer aritmética de precisão dupla. Você sabe se esse hardware está disponível comercialmente? Uma publicação recente na lista de correspondência GROMACS sugere que GPUs de precisão dupla não estão disponíveis comercialmente:

O hardware ainda não suporta [aritmética de precisão dupla] ainda o AFAIK.

Esta página da Wikipedia parece sugerir que GPUs de precisão dupla são incomuns, pois podem ser ineficientes:

As implementações de ponto flutuante nas GPUs da Nvidia são principalmente compatíveis com IEEE; no entanto, isso não é verdade em todos os fornecedores. Isso tem implicações na correção, consideradas importantes para algumas aplicações científicas. Embora os valores de ponto flutuante de 64 bits (flutuação de precisão dupla) estejam geralmente disponíveis nas CPUs, eles não são universalmente suportados nas GPUs; algumas arquiteturas de GPU sacrificam a conformidade com o IEEE, enquanto outras não possuem precisão dupla. Houve um esforço para emular valores de ponto flutuante de precisão dupla nas GPUs; no entanto, a troca de velocidade anula qualquer benefício em descarregar a computação na GPU em primeiro lugar.

Esta página da NVIDIA Tesla , ao referenciar "Desempenho de ponto flutuante de precisão de pico duplo" no gráfico, parece sugerir que cálculos de precisão dupla podem , de fato, ser feitos em suas GPUs (embora a um custo computacional mais alto).

Então, no que devo acreditar? Você tem alguma experiência com esse problema?

Andrew
fonte
consulte a gtx titan é baseado em gk110 e tem suporte duplo pricision ..... embora o seu pouco caro ..... cerca de US $ 1k
Wikipedia nem sempre tem informações atuais sobre temas que mudam rapidamente ...
Jeff

Respostas:

17

A precisão dupla é bastante comum em GPUs mais recentes. Por exemplo, eu possuo uma NVIDIA GTX560 Ti (extremidade bastante baixa quando se trata de computação) que não tem nenhum problema ao executar o ViennaCL em dupla precisão. A partir daqui (seção 4) , todas as placas NVIDIA do GTX4xx em diante suportam precisão dupla nativamente.

Eu acho que as informações do GROMACS estão simplesmente desatualizadas.

Godric Seer
fonte
5
Muito desatualizado. Os processadores NVIDIA, em particular, têm suporte de dupla precisão há anos. Francamente, era significativamente mais lento que o recurso de precisão única, mas estava presente (e não apenas emulado) nas primeiras GPUs da marca Tesla, e provavelmente antes disso. Encarnações mais recentes reduziram consideravelmente a diferença entre o sinal e o suporte de dupla precisão.
Michael Grant
Sim, o artigo que vinculei mencionou números de aproximadamente um fator 8 de diferença de desempenho quando a emulação era necessária, mas agora que os chips foram projetados para isso, está mais próximo de um fator 2. Eu diria que isso provavelmente se deve a latência da memória do cartão do VRAM para os processadores, mas isso é simplesmente um palpite da minha parte.
Godric Seer
Na verdade, o principal motivo foi que as GPUs anteriores simplesmente não dedicaram muito espaço de chip ao cálculo de precisão dupla. De acordo com esta página , a série GK110 possui 8 vezes mais unidades de precisão dupla por "bloco SMX" (o que isso significa) do que a série GK104.
Michael Grant
11
Ah, sim, na verdade eu estava me referindo à diferença de 2x das GPUs atuais em relação ao comentário da largura de banda da memória.
quer
Peguei vocês. Eu não quis descer por essa toca de coelho. A sua resposta é bom, é por isso que eu comentei e votou-lo em vez de adicionar a minha própria resposta ;-)
Michael Grant
8

Toda GPU com SM 1.3 (Tesla / GTX2xx) ou melhor tem suporte a precisão dupla de hardware. Começando com a arquitetura Fermi, as variantes Quadro e Tesla têm melhor suporte à precisão dupla do que os modelos Ge Force de consumo.

O estranho é que o suporte de dupla precisão Ge Force Kepler / GTX6xx é inferior ao suporte GeForce Fermi / GTX5xx para melhorar a diferenciação de Tesla no Kepler K20 / K20x. Para aumentar a estranheza, os Tesla K10s têm suporte de precisão dupla no nível Ge Force. E, mais recentemente, isso foi completamente desorganizado com a introdução do Ge Force GTX Titan, que tem suporte total à precisão dupla e muitos recursos CUDA presentes apenas nos modelos Tesla até agora. Um GTX Titan custa ~ US $ 1.000 - uma IMO barganha gritante.


fonte
2

Você também deve ler a postagem de acompanhamento na lista de correspondência do GROMACS: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . Se a implementação da GPU no MD suporta ou não o uso de precisão dupla em uma extensão comparável é pelo menos tão importante quanto se a precisão dupla está disponível no hardware.

mabraham
fonte
0

De acordo com esta discussão , as GPUs Tesla e Titan são as mais adequadas (das GPUs Nvidia) para precisão dupla.

Olhando, por exemplo, uma lista de GPUs da Nvidia na Wikipedia (uma tabela semelhante para as GPUs da AMD está aqui ) e comparando o poder de processamento de precisão única e dupla (em termos de GFLOPs), vemos que o desempenho da precisão dupla é muito menor que a metade da precisão única desempenho para a maioria das outras GPUs. Por exemplo, para a série GTX 900, o artigo menciona que o desempenho de precisão dupla é 1/32 do desempenho de precisão única, enquanto este artigo da Wikipedia diz que, para a série GTX 700, o desempenho de precisão dupla é 1/24 da precisão única desempenho (exceto no Titan, onde pode ser tão alto quanto 1/3 do desempenho de precisão única).

Andre Holzner
fonte