En quelques mots, ce coprocesseur devrait être disponible pendant le quatrième trimestre de cette année. La performance devrait être améliorée d’un facteur quatre par rapport à Knights Landing dans le cadre très particulier de l’apprentissage profond. Intel résume ces améliorations par l’exploitation d’une “nouvelle” forme de parallélisme. Trois sources de parallélisme sont exploitées depuis des années : plusieurs fils d’exécution par cœur (TLP, avec quatre fils par cœur), plusieurs instructions en parallèle dans un même fil (ILP), une instruction travaillant sur plusieurs valeurs (DLP, avec les instructions AVX-512).
Avec Knights Mill, Intel ajoute un parallélisme au niveau de chaque pipeline d’exécution (PLP), avec des instructions qui effectuent quatre opérations de type FMA (fused multiply and add) consécutives en même temps. Contrairement au jeu d’instructions AVX, qui travaille sur des données différentes (chaque opération est effectuée indépendamment des autres), ces instructions QuadFMA effectuent leur somme sur le résultat de l’instruction FMA précédente.
Ce genre de construction est souvent évitée sur les processeurs “modernes”, car elle ajoute une latence non négligeable : au vu de la fréquence des processeurs, le temps de transfert de l’information entre deux transistors ne peut pas être ignoré ! Cette lenteur certaine (une instruction QuadFMA prend trois cycles par opération FMA effectuée, c’est-à-dire un total de douze cycles) est cachée par un degré de parallélisme entre instructions suffisamment grand.
L’utilité apparaît assez rapidement : ces instructions FMA correspondent aux opérations de produit matriciel, extrêmement utilisées notamment pour l’apprentissage profond.
Une autre nouveauté de ces cœurs est la précision variable avec certaines instructions : les entrées et les sorties n’ont pas toujours la même précision. Ainsi, il est possible de mélanger des entiers sur seize bits et d’obtenir une somme sur trente-deux bits, par exemple. Selon Intel, ce stratagème permet d’obtenir le meilleur des deux mondes : les opérations avec une précision moindre s’effectuent plus rapidement, mais la sortie avec une plus grande précision facilite la convergence.
Ces opérations ne sont disponibles que sur des entiers. En effet, ils fournissent un niveau de précision similaire aux nombres à virgule flottante, mais sans les complexités d’implémentation (surtout la norme IEEE 754) : ces derniers n’ont pas vraiment d’avantages par rapport aux entiers dans le contexte de l’apprentissage profond.
Un troisième élément de Knights Mill est la partie logicielle, prévue pour exploiter les nouvelles possibilités du matériel. La MKL aura droit à ses mises à jour pour exploiter au mieux ces nouveaux processeurs. De plus, Intel met aussi à disposition MKL-DNN, une extension à la MKL avec une API similaire (mais incompatible) ; la différence est que MKL-DNN est disponible sous une licence libre.
Il est ainsi intéressant de voir qu’Intel poursuit la même piste que NVIDIA pour encore accélérer l’apprentissage profond : ajouter des composants extrêmement spécifiques qui effectuent quelques opérations sur des opérandes très précises (avec une faible précision) avec une très haute vitesse (et une consommation énergétique en baisse).
Source et images : Hot Chips: Intel Knights Mill Live Blog.