L’influence de la température sur les calculs GPU

Taux d’erreurs

En janvier se tenait le Compas’ 2013, un événement dédié au parallélisme en informatique. Et un papier a suscité notre attention : « Températures, erreurs matérielles et GPU ».

Les erreurs de calcul liées à la température

L’idée de David Defour et Eric Petit est simple : vérifier la tolérance des cartes de calcul quand la température est élevée. Ils ont donc récupéré plusieurs cartes NVIDIA (Telsa, etc.) et effectué des tests en OpenCL pour vérifier si les cartes restaient fiables à haute température. Ce n’est pas un test anodin : les cartes sont de plus en plus souvent installées dans des ordinateurs portables ou dans des ordinateurs de type All In One et subissent donc des contraintes bien supérieures à des cartes installées dans une tour classique, bien ventilée.

Selon les auteurs, les erreurs de calcul ne sont pas rares : avec un programme comme Folding@Home, les statistiques indiquent que 2/3 des GPU grand public font des erreurs détectables et que dans certains cas (2 % des GPU), le taux d’erreurs n’est pas négligeable et atteint environ un calcul sur 10 000. Sur les cartes Tesla, plus contrôlées, ce taux d’erreur est négligeable selon les études.

Pour mesurer les taux d’erreurs, plusieurs cartes ont été placées dans un boîtier externe, fourni par NVIDIA avec certaines cartes Tesla (les D870). Le système de refroidissement et le boîtier ont été modifiés pour augmenter la température des cartes de façon artificielle. Enfin, un programme de test dédié a été écrit en OpenCL pour tester les différentes unités des cartes.

Les cartes testées sont les suivantes : Tesla C870, GeForce 9800GX2, Tesla T10P, GeForce GTX480, GeForce GTX560 et GeForce GTX670. Les cartes ont toutes une limite de température qui arrête physiquement le GPU, sauf la Tesla C870. Les températures limites sont de (respectivement) 130°C, 115°C, 110°C, 105°C et 100°C. Comme on le voit, plus on avance dans le temps et plus la température limite diminue. De plus, les cartes ont une limite en température qui diminue la fréquence : à partir de 105°C (et tous les 5°C), la Tesla C870 divise sa fréquence de fonctionnement par deux (600 MHz au départ). La GeForce 9800GX2 divise sa fréquence par deux à 105°C et passe à seulement 37 MHz au-delà de 115°C. La Tesla T10P divise sa fréquence par deux à 105°C alors que les autres modèles divisent la fréquence par deux à partir de 100°C.

Sur les cartes acceptant de fonctionner à 130°C (GeForce 9800GX2 et Tesla C870), il n’y a pas eu d’erreur de calcul, même après plusieurs jours. À 160°C, une des cartes est morte après 11 jours de tests. À 170°C, les erreurs au niveau des calculs sont fréquentes. Visiblement, les auteurs de l’article n’ont pas réussi à obtenir des erreurs sur les autres cartes, et pour une bonne raison : les mécanismes de protection permettent de protéger les cartes.

Notons que le test OpenCL utilisé a un avantage : il permet de cibler précisément les unités qui effectuent des calculs dont la réponse est fausse. Il est donc techniquement possible d’isoler ces derniers pour ne garder que les unités qui ne font pas d’erreurs.

Pour les amateurs, l’étude est disponible au téléchargement. Il s’agit de l’étude numéro 2 dans la partie Architecture.