Une nouvelle approche peut nous aider à nous débarrasser des calculs en virgule flottante



En 1985, l'Institut des ingénieurs électriciens et électroniciens ( IEEE ) a établi la norme IEEE 754 , qui est responsable des formats à virgule flottante et arithmétiques, qui sera le modèle de tous les matériels et logiciels pour les 30 prochaines années.

Et bien que la plupart des programmeurs utilisent un virgule flottante à tout moment sans discernement, lorsqu'ils doivent effectuer des opérations mathématiques avec des nombres réels, en raison de certaines restrictions sur la représentation de ces nombres, la vitesse et la précision de ces opérations laissent souvent beaucoup à désirer.

Pendant de nombreuses années, la norme a été vivement critiquée par les informaticiens qui connaissaient ces problèmes, mais John Gustafson était le plus éminent d'entre eux, qui a mené une croisade seule pour remplacer la virgule flottante par quelque chose de plus approprié. Dans ce cas, posit ou unum est considéré comme une option plus appropriée - la troisième option est le résultat de son étude des «nombres universels». Il dit que les nombres positifs résoudront la plupart des problèmes majeurs de la norme IEEE 754, amélioreront les performances et la précision et utiliseront moins de bits. Ce qui est encore mieux, il déclare que le nouveau format peut remplacer les nombres à virgule flottante standard «à la volée», sans avoir à changer le code source des applications.

Nous avons rencontré Gustafson lors de la conférence ISC19. Et pour les spécialistes du supercalculateur qui y sont installés, l'un des principaux avantages du format positif est que vous pouvez obtenir une précision et une plage dynamique plus grandes en utilisant moins de bits que de chiffres de l'IEEE 754. Et pas seulement un peu moins. Gustafson a déclaré que le posit 32 bits remplace le float 64 bits dans presque tous les cas, ce qui pourrait avoir de graves conséquences pour le calcul scientifique. Si vous divisez par deux le nombre de bits, vous pouvez non seulement réduire le cache, la mémoire et le stockage de ces nombres, mais également réduire sérieusement la largeur de canal requise pour les transférer vers le processeur et vice versa. C'est la principale raison pour laquelle l'arithmétique basée sur les valeurs, à son avis, donnera une vitesse de calcul double à quadruple par rapport aux nombres à virgule flottante IEEE.

L'accélération peut être obtenue grâce à une représentation compacte des nombres réels. Au lieu de l'exposant et de la partie fractionnaire d'une taille fixe utilisée dans la norme IEEE, posit code l'exposant avec un nombre variable de bits (une combinaison de bits de mode et de bits d'exposant), de sorte que dans la plupart des cas, ils sont requis moins. En conséquence, il reste plus de bits sur la partie fractionnaire, ce qui donne une plus grande précision. Un exposant dynamique mérite d'être utilisé en raison de sa précision effilée. Cela signifie que les valeurs avec un petit exposant, qui sont le plus souvent utilisées, peuvent avoir une plus grande précision, et les très grands et très petits nombres moins couramment utilisés auront moins de précision. Le travail de Gustafson en 2017 décrivant le format positif donne une description détaillée de son fonctionnement.



Un autre avantage important du format est que, contrairement aux nombres à virgule flottante ordinaires, posit donne les mêmes résultats au niveau du bit sur n'importe quel système, ce qui ne peut souvent pas être garanti avec le format de l'IEEE (ici même les mêmes calculs sur le même système peuvent donner différents résultats). En outre, le nouveau format traite les erreurs d'arrondi, le débordement et la disparition des chiffres significatifs, des nombres dénormalisés et de nombreuses valeurs de type non-un-nombre (NaN). De plus, posit évite des bizarreries telles que les valeurs de décalage 0 et -0. Au lieu de cela, le format utilise un complément binaire pour le caractère, comme les entiers, ce qui signifie que la comparaison au niveau du bit fonctionnera correctement.

Quelque chose appelé quire est associé aux nombres positifs - un mécanisme d'accumulation qui permet aux programmeurs d'effectuer une algèbre linéaire reproductible - un processus inaccessible aux nombres IEEE réguliers. Il prend en charge le fonctionnement généralisé de la multiplication-addition combinée et d'autres opérations combinées qui vous permettent de calculer des produits scalaires ou des sommes sans erreurs d'arrondi ou débordements. Les tests lancés à l'Université de Californie à Berkeley ont démontré que les opérations de quire sont 3 à 6 fois plus rapides que l'exécution séquentielle. Gustafson dit qu'ils permettent aux nombres positifs de "combattre en dehors de leur catégorie de poids".

Bien que ce format numérique n'existe que depuis quelques années, la communauté du calculateur haute performance (HPC) a déjà un intérêt à explorer leurs applications. Pour le moment, tout le travail reste expérimental, et est basé sur la vitesse attendue du futur matériel ou sur l'utilisation d'outils qui émulent l'arithmétique positive sur les processeurs conventionnels. Pendant la production, il n'y a pas de puces qui implémentent positivement au niveau matériel.

L'une des applications potentielles de ce format est l'interféromètre radioélectrique SKA ( Square Kilometer Array ) en construction, lors de sa conception, il considère les nombres positifs comme un moyen de réduire radicalement la largeur du canal et la charge de calcul pour le traitement des données provenant du radiotélescope. Il est nécessaire que les supercalculateurs qui le desservent ne consomment pas plus de 10 MW, et l'un des moyens les plus prometteurs pour y parvenir, selon les concepteurs, est d'utiliser un format de position plus dense afin de diviser par deux la largeur estimée du canal mémoire (200 PB / s), le canal de transmission données (10 To / s) et connexion réseau (1 To / s). La puissance de calcul devrait également augmenter.

Une autre application est destinée aux prévisions météorologiques et aux prévisions climatiques. L'équipe britannique a montré que les nombres positifs à 16 bits sont clairement en avance sur les nombres à virgule flottante standard à 16 bits, et qu'ils "ont un grand potentiel d'utilisation dans des modèles plus complexes". L'émulation de posit 16 bits dans ce modèle a fonctionné ainsi que les nombres à virgule flottante 64 bits.

Le Livermore National Laboratory évalue les formats de nombres positifs et autres, explorant les moyens de réduire la quantité de données déplacées dans les superordinateurs exaflops du futur. Dans certains cas, ils ont également obtenu de meilleurs résultats. Par exemple, les nombres positifs ont pu donner une précision supérieure dans des calculs physiques tels que l'hydrodynamique des chocs, et ont généralement surpassé les nombres à virgule flottante dans diverses dimensions.



Peut-être que posit aura le plus grand potentiel dans l'apprentissage automatique, où les nombres 16 bits peuvent être utilisés pour l'apprentissage et les nombres 8 bits peuvent être utilisés pour la vérification. Gustafson a déclaré que les nombres à virgule flottante 32 bits sont exagérés pour la formation, et dans certains cas, ils ne montrent même pas de bons résultats comme posit 16 bits, expliquant que la norme IEEE 754 "n'était absolument pas destinée à être utilisée avec l'IA" .

Il n'est pas surprenant que la communauté de l'IA y ait prêté attention. Facebook Jeff Johnson a développé une plate-forme expérimentale avec FGPA utilisant posit, qui montre une meilleure efficacité énergétique par rapport à la fois à float16 et à bfloat16 d'IEEE pour les tâches d'apprentissage automatique. Ils prévoient d'explorer l'utilisation de matériel quire 16 bits pour la formation et de les comparer avec des formats concurrents.

Il convient de noter que Facebook travaille avec Intel sur le processeur Nervana Neural Network (NNP), ce qui devrait accélérer certaines des tâches liées à l'IA du géant social. L'option d'utiliser le format positif n'est pas exclue, bien qu'il soit plus probable qu'Intel laisse son format FlexPoint d'origine pour Nervana. Dans tous les cas, ce point mérite d'être suivi.

Gustafson connaît au moins une puce d'IA dans laquelle ils essaient d'utiliser des nombres positifs dans la conception, bien qu'il n'ait pas le droit de divulguer le nom de l'entreprise. La société française Kalray, en collaboration avec l'European Processor Initiative (EPI), a également montré son intérêt à soutenir positivement leur accélérateur MPPA (Massively Parallel Processor Array) de nouvelle génération, afin que cette technologie puisse être utilisée par les supercalculateurs européens exaflops .

Pour Gustafson, tout cela, bien sûr, inspire, et il pense que cette troisième tentative pour faire avancer ses nombres universels pourrait réussir. Contrairement aux versions un et deux, posit est facile à implémenter dans le matériel. Et compte tenu de la concurrence féroce dans le domaine de l'IA, nous devrions peut-être nous attendre au succès commercial du nouveau format. Parmi les autres plates-formes sur lesquelles posit peut espérer un bel avenir, citons le traitement numérique du signal, le GPU (pour les graphiques et autres ordinateurs), les appareils pour l'Internet des objets, l'informatique de pointe. Et, bien sûr, HPC.

Si la technologie est commercialisée, Gustafson ne sera probablement pas en mesure de capitaliser sur son succès. Son projet, comme indiqué dans la norme de 10 pages, est complètement ouvert et est disponible pour toute entreprise qui souhaite développer des logiciels et du matériel appropriés. Ce qui explique probablement l'attention portée à la technologie par des sociétés telles que IBM, Google, Intel, Micron, Rex Computing, Qualcomm, Fujitsu, Huawei et bien d'autres.

Cependant, remplacer l'IEEE 754 par quelque chose de plus approprié est un énorme projet, même pour une personne avec un CV aussi impressionnant que Gustafson. Avant même de travailler chez ClearSpeed, Intel et AMD, il a étudié les moyens d'améliorer les calculs scientifiques sur les processeurs modernes. «J'essaie de comprendre ce problème depuis 30 ans», a-t-il déclaré.

Source: https://habr.com/ru/post/fr462385/


All Articles