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?
fonte
Respostas:
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.
fonte
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
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.
fonte
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).
fonte