Les GPU actuellement disponibles prennent-ils en charge l'arithmétique à virgule flottante double précision?

17

J'ai exécuté le code de dynamique moléculaire (MD) GROMACS sur un cluster Linux Ubuntu composé de nœuds contenant 24 processeurs Intel Xeon. Mon point d'intérêt particulier se révèle être quelque peu sensible à la précision arithmétique à virgule flottante, j'ai donc dû exécuter GROMACS en double précision plutôt qu'en simple précision - malgré le coût de calcul plus élevé de la double précision. Donc sur le cluster, j'ai compilé GROMACS en double précision.

J'envisage d'acheter certains GPU, car il peut y avoir une accélération relative ("accélération du GPU") par rapport aux CPU. Cependant, j'ai besoin d'un GPU qui me permettra de faire de l'arithmétique double précision. Savez-vous si un tel matériel est disponible dans le commerce? Un récent post sur la liste de diffusion GROMACS suggère que les GPU double précision ne sont pas disponibles dans le commerce:

Le matériel ne le supporte pas [arithmétique double précision] pour le moment AFAIK.

Cette page Wikipedia semble suggérer que les GPU à double précision sont rares car ils peuvent être inefficaces:

Les implémentations de virgule flottante sur les GPU Nvidia sont pour la plupart conformes IEEE; cependant, ce n'est pas vrai pour tous les fournisseurs. Cela a des implications pour l'exactitude qui sont considérées comme importantes pour certaines applications scientifiques. Bien que les valeurs à virgule flottante 64 bits (flottant double précision) soient couramment disponibles sur les processeurs, elles ne sont pas universellement prises en charge sur les GPU; certaines architectures GPU sacrifient la conformité IEEE tandis que d'autres manquent complètement de double précision. Des efforts ont été faits pour émuler des valeurs à virgule flottante double précision sur les GPU; cependant, le compromis de vitesse annule tout avantage à décharger le calcul sur le GPU en premier lieu.

Cette page NVIDIA Tesla , en faisant référence à "Performances en virgule flottante double précision de pointe" dans le graphique, semble suggérer que les calculs en double précision peuvent , en fait, être effectués sur leurs GPU (bien qu'à un coût de calcul plus élevé).

Alors, que dois-je croire? Avez-vous une expérience avec ce problème?

Andrew
la source
consultez le titan gtx, il est basé sur gk110 et a un support à double prix ..... bien que son peu coûteux ..... environ 1k $
Wikipédia n'a pas toujours d'informations à jour sur des sujets en évolution rapide ...
Jeff

Réponses:

17

La double précision est assez courante sur les nouveaux GPU. Par exemple, je possède une NVIDIA GTX560 Ti (assez bas de gamme en matière d'informatique) qui n'a aucun problème à exécuter ViennaCL en double précision. À partir d' ici (section 4) , toutes les cartes NVIDIA à partir de GTX4xx prennent en charge la double précision en natif.

Je suppose que les informations GROMACS sont tout simplement obsolètes.

Godric Seer
la source
5
Très obsolète. Les processeurs NVIDIA en particulier bénéficient d'un support double précision depuis des années. Franchement, il était beaucoup plus lent que la capacité de simple précision, mais il était là (et pas seulement émulé) dans les tout premiers GPU de marque Tesla, et probablement avant cela. Des incarnations plus récentes ont considérablement réduit l'écart entre le signal et le support de double précision.
Michael Grant
Oui, le papier que j'ai lié mentionnait des chiffres d'environ un facteur de différence de performances de 8 lorsque l'émulation était nécessaire, mais maintenant que les puces sont conçues pour cela, il est plus proche d'un facteur de 2. Je dirais que cela est probablement dû à latence de la mémoire de la carte de la VRAM aux processeurs, mais c'est tout simplement une supposition de ma part.
Godric Seer
En fait, la principale raison était que les GPU antérieurs ne consacraient tout simplement pas beaucoup d'espace aux puces au calcul en double précision. Selon cette page , la série GK110 a 8 fois plus d'unités double précision par "bloc SMX" (quoi que cela signifie) que la série GK104.
Michael Grant
1
Ah, oui, je faisais référence à la différence de 2x des GPU actuels en ce qui concerne le commentaire sur la bande passante mémoire.
Godric Seer
Je t'ai eu. Je ne voulais pas descendre ce terrier de lapin. Votre réponse est correcte, c'est pourquoi j'ai commenté et voté pour vous au lieu d'ajouter ma propre réponse ;-)
Michael Grant
8

Chaque GPU avec SM 1.3 (Tesla / GTX2xx) ou mieux a un support matériel double précision. À partir de l'architecture Fermi, les variantes Quadro et Tesla ont un meilleur support en double précision que les modèles Ge Force grand public.

Ce qui est bizarre, c'est que le support à double précision Ge Force Kepler / GTX6xx est inférieur au support GeForce Fermi / GTX5xx pour améliorer la différenciation Tesla dans Kepler K20 / K20x. Pour aggraver l'étrangeté, les Tesla K10 ont un support à double précision de niveau Ge Force. Et plus récemment, cela a été complètement désorganisé par l'introduction de la Ge Force GTX Titan, qui prend en charge la double précision et de nombreuses fonctionnalités CUDA uniquement présentes sur les modèles Tesla jusqu'à présent. Un GTX Titan coûte ~ 1000 $ - une aubaine criante OMI.


la source
2

Vous devriez également lire le post de suivi de la liste de diffusion GROMACS: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . Il est au moins aussi important de savoir si la mise en œuvre du GPU dans le MD prend en charge l'utilisation de la double précision dans une mesure comparable que si la double précision est disponible sur le matériel.

mabraham
la source
0

Selon cette discussion , les GPU Tesla et Titan sont les plus appropriés (des GPU Nvidia) pour la double précision.

En regardant par exemple une liste de GPU Nvidia sur Wikipedia (un tableau similaire pour les GPU AMD est ici ) et en comparant la puissance de traitement de précision simple et double (en termes de GFLOP), on constate que les performances de double précision sont beaucoup plus petites que la moitié de la précision simple performances pour la plupart des autres GPU. Par exemple, pour la série GTX 900, l'article mentionne que les performances en double précision représentent 1/32 des performances en simple précision, tandis que cet article Wikipedia indique que pour les séries GTX 700, les performances en double précision représentent 1/24 de la précision simple performances (sauf pour Titan où il peut atteindre 1/3 des performances en simple précision).

Andre Holzner
la source