Intel ajoute des instructions d'apprentissage approfondi au processeur


Certains des derniers processeurs Intel prennent en charge la famille d'instructions vectorielles AVX-512 . Ils sont exécutés en blocs de 512 bits (64 octets). L'avantage de la prise en charge matérielle pour des instructions aussi volumineuses est que le processeur traite plus de données en un seul cycle d'horloge.

Si le code est chargé avec des mots 64 bits (8 octets), alors théoriquement, si vous ne tenez pas compte d'autres facteurs, vous pouvez accélérer son exécution de huit fois si vous utilisez les instructions AVX-512.

L'extension AVX-512 pour le système de commandes x86 prend en charge 8 registres de masque, des formats compressés de 512 bits pour les nombres entiers et fractionnaires et les opérations sur ceux-ci, les modes d'arrondi de réglage fin (vous permet de remplacer les paramètres globaux), les opérations de diffusion, la suppression des erreurs dans les opérations de nombres fractionnaires, opérations de collecte / diffusion, opérations mathématiques rapides, codage compact de grands décalages.

L'ensemble initial AVX-512 comprend huit groupes d'instructions:

  • Instructions de détection de conflit AVX-512 (CDI)
  • Instructions exponentielles et réciproques (ERI) AVX-512
  • Instructions de prélecture AVX-512 (PFI)
  • Extensions de longueur de vecteur (VL) AVX-512
  • Instructions AVX-512 octets et mots (BW)
  • Instructions AVX-512 pour les mots doubles et quadruples mots (DQ)
  • AVX-512 Entier fusionné Multiply Add (IFMA)
  • Instructions de manipulation des octets vectoriels AVX-512 (VBMI)

La famille AVX-512 est prise en charge par le coprocesseur Intel Xeon Phi (anciennement Intel MIC) Knights Landing, certains processeurs Skylake Xeon (SKX), ainsi que les futurs processeurs Cannonlake qui seront disponibles en 2017. Les processeurs répertoriés ne prennent pas en charge toutes les instructions. Par exemple, Knights Landing Xeon Phi ne prend en charge que les CD, ER et PF. Le processeur Skylake Xeon (SKX) prend en charge les CD, VL, BW et DQ. Processeur Cannonlake - CD, VL, BW, DQ, IFMA.

Naturellement, tous les codes ne peuvent pas être convertis en instructions vectorielles, mais vous n'avez pas besoin de le faire avec tout le code, écritsur son blog Daniel Lemire, professeur d'informatique à l'Université du Québec. Selon lui, il est important d'optimiser le "hot code", qui consomme le plus de ressources processeur. Dans de nombreux systèmes, le «code chaud» est construit à partir d'une série de boucles qui défilent des milliards de fois. C'est ça qui devrait être optimisé, c'est le principal avantage.

Par exemple, si un tel code Python est recompilé à partir d'instructions 64 bits standard en AVX-512 à l'aide de MKL Numpy , le temps d'exécution est réduit de 6-7 secondes à 1 seconde sur le même processeur.

import numpy as np
np.random.seed(1234)
xx = np.random.rand(1000000).reshape(1000, 1000)
%timeit np.linalg.eig(xx)

Support matériel Deep Learning


Les réseaux de neurones et l'apprentissage en profondeur sont l'une des tendances les plus brillantes de ces derniers temps. Google, Facebook et d'autres grandes entreprises essaient d'utiliser des réseaux de neurones dans la mesure du possible: dans les systèmes de recommandation, la reconnaissance faciale, la traduction de texte, la reconnaissance vocale, la classification de photos et même dans les jeux de société comme go (mais c'est plus pour la publicité que pour le gain commercial). Certains tentent d'appliquer une formation approfondie dans des domaines non standard, comme la formation de pilote automatique .

Parmi les investisseurs en capital-risque, on comprend désormais que le schéma le plus efficace pour s'enrichir rapidement est de lancer une startup dans le domaine du deep learning, que la société des Big Five achètera immédiatement (Facebook, Google, Apple, Microsoft, Amazon). Ces entreprises ont récemment fait une concurrence féroce dans le domaine de l'achat de talents, de sorte qu'une startup partira instantanément et à un prix avantageux au rythme d'au moins 10 millions de dollars par employé. Un tel plan d'affaires est devenu encore plus simple, car les entreprises publient des outils de développement open source, comme Google l'a fait avec TensorFlow .

Malheureusement pour Intel, cette entreprise est à la traîne et ne participe presque pas au jeu. Le professeur Lemir reconnaît que les GPU Nvidia sont désormais considérés comme la norme de l'industrie. C'est sur eux qu'ils exécutent le code des programmes d'apprentissage automatique.

Ce n'est pas que les ingénieurs Intel ont dépassé la tendance. C'est juste que les GPU eux-mêmes, sans instructions spéciales, sont mieux adaptés aux calculs d'apprentissage en profondeur.

Néanmoins, Intel prépare une contre-attaque, à la suite de laquelle la situation pourrait se retourner. En septembre, la société a publié une nouvelle référence de programmation d'extensions de jeu d'instructions d'architecture Intelindiquant toutes les instructions qui seront prises en charge dans les futurs processeurs. Si vous regardez ce document, nous attendons une agréable surprise. Il s'avère que la famille d'instructions AVX-512 a été divisée en plusieurs groupes et étendue.

En particulier, deux groupes d'instructions sont spécifiquement conçus pour une formation approfondie: AVX512_4VNNIW et AVX512_4FMAPS. À en juger par la description, ces instructions peuvent être utiles non seulement dans l'apprentissage en profondeur, mais aussi dans de nombreuses autres tâches.

  • AVX512_4VNNIW: instructions vectorielles pour un apprentissage approfondi amélioré de la précision des variables de mots
  • AVX512_4FMAPS: instructions vectorielles pour l'apprentissage en virgule flottante simple précision



C’est une très bonne nouvelle.

Lorsque cette prise en charge apparaît dans les processeurs Intel standard, ils peuvent se rapprocher ou même surpasser les performances graphiques d'apprentissage approfondi de Nvidia. Bien sûr, sous réserve de programmes d'optimisation appropriés. Qui sait, la même histoire se répétera soudainement comme avec l'encodage vidéo, lorsque, après l' ajout du support matériel H.264 et H.265 au CPU, les processeurs Intel avec graphiques intégrés ont commencé à encoder et décoder la vidéo plus rapidement que les cartes vidéo Nvidia et AMD séparées.

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


All Articles