Envoyer le message

Nouvelles

March 11, 2021

Mémoire Domaine-spécifique

le calcul Domaine-spécifique peut être toute la rage, mais il évite le problème réel.

Le souci plus grand est les souvenirs qui étranglent la représentation de processeur, consomment plus de puissance, et prennent la plupart de secteur de puce. Les souvenirs doivent se casser librement des structures rigides préférées par le logiciel existant. Quand des algorithmes et la mémoire sont conçus ensemble, les améliorations dans la représentation sont significatives et le traitement peut être optimisé.

le traitement Domaine-spécifique a été popularisé par la conférence 2018 de Turing, « un nouvel âge d'or pour l'architecture informatique, » par John Hennessy et David Patterson. Mais des processeurs ont été contraints par mémoire pendant des décennies. Le traitement changeant sans repensent de la mémoire et les hiérarchies de mémoire ignore la loi d'Amdahl, qui fournit des relations mathématiques entre accélère possible à un système quand certains morceaux de ce système sont améliorés. Il vous indique fondamentalement pour obtenir des retours de diminution si vous vous concentrez seulement sur l'une seule pièce du système plutôt que regardant le système dans son ensemble.

Ainsi pourquoi ne pas se concentrer sur le goulot d'étranglement ? « la mémoire Domaine-spécifique est juste un nouveau terme, mais les architectes avaient fait pendant longtemps ces genres d'optimisations, » dit Prasad Saggurti, directeur de marketing de produit chez Synopsys. « Et s'ils n'ont pas, ils manquent un tour parce que la plupart des personnes l'avaient fait. »

D'autres conviennent. « Rappelez-vous les mémoires vidéo — DRACHME avec les registres à décalage intégrés ? » demande à Michael Frank, au camarade et à l'architecte de système à l'IP d'Arteris. « Peut-être GDDR [1-5], souvenirs d'étiquette spéciaux de cachette, ou souvenirs associatifs de retour pendant les jours de TTL ? Beaucoup de ceux-ci n'ont pas vraiment survécu parce que leur fonctionnalité était trop spécifique. Ils ont visé un dispositif unique. Vous avez besoin d'un assez grand domaine, et vous luttez contre le coût bas de la DRACHME d'aujourd'hui, qui a l'avantage du grand volume et de la fabrication à grande échelle. »

Parfois il va plus profond que celui. « Vous pourriez câbler quelque chose dans une ROM, » dit Saggurti de Synopsys. « Ce qui nous voyons sont plus de personnes réglant avec précision la mémoire aujourd'hui. Par exemple, avec une transformée de Fourier, ou une transformée en Z, les gens écrirait le code de telle manière que vous ayez pu stocker les coefficients dans un certain ordre. Quand vous faites une multiplication de matrice, vous pouvez stocker les coefficients dans un certain ordre de sorte que la lecture de lui soit plus rapidement. Vous ne pouvez pas stocker des données dans une mémoire, au lieu de cela, la mettant dans trois ou quatre souvenirs différents de sorte que vous ayez pu lire des choses par les circulations de données multiples. Ces genres de choses s'étaient produits plus récemment. »

Le changement est dur. « Le défi est celui dans le passé, les gens ont eu un gentil, modèle abstrait pour penser aux systèmes de calcul, » dit Steven Woo, le camarade et l'inventeur distingué chez Rambus. « Ils jamais vraiment ont dû penser à la mémoire. Elle est venue le long pour libre et le modèle de programmation a fait lui tel cela quand vous avez fait des références à la mémoire, il s'est juste produit. Vous avez dû ne jamais être explicite au sujet de ce que vous faisiez. »

Le progrès est accompli en général à représentation de mémoire. « Les contrôleurs d'aujourd'hui de mémoire et les normes d'interface avancées ont spectaculairement amélioré ce que vous pouvez extraire à partir de la technologie avancée de silicium, » dit Frank d'Arteris. « Ceci a permis les files d'attente profondes et les programmateurs avancés. Technologies de stockage avancées, telles que la mémoire élevée de largeur de bande (HBM), et empilé pour mourir largeurs de bande de soutien que nous avons pensé impossible à réaliser juste il y a une décennie. Pourtant elle ne vient pas bon marché. Les technologies de Sub-10 nanomètre permettent également de grandes cachettes, tellement peut-être nous peuvent appeler cette mémoire domaine-spécifique de pauvre homme. »

Mais ce sont tous les exemples de petits changements par accroissement. « Les sous-systèmes de mémoire d'Architecting dans lesquels le calcul suit principalement des données, plutôt que l'autre manière autour, exige un significatif repensent de beaucoup de préceptes que des architectes sont accoutumés à, » dit Matt Horsnell, ingénieur principal principal de recherches pour le groupe de la recherche et développement du bras. « Il y a une occasion d'augmenter l'abstraction de programmation, de la liste typique d'aujourd'hui d'opérations sur des données, à une forme augmentée qui encapsule la simultanéité et une certaine notion des distances relatives entre les unités de calcul et les données élémentaires. De telles abstractions pourraient permettre aux transformations nécessaires à plus de façon optimale de viser des souvenirs spécifiques de domaine quand les algorithmes évoluent rapidement. »

Centres de traitement des données dans le siège de conducteur
Les centres de traitement des données sont les conducteurs pour beaucoup de tendances de technologie aujourd'hui. « Une des demandes les plus à croissance rapide de calcul est aux centres de traitement des données où les applications logiciel implorent plus de capacité de stockage, largeur de bande à la latence inférieure, » dit Ravi Thummarukudy, Président pour Mobiveil. « Avec l'arrivée du dernier standard de l'industrie, du lien exprès de calcul (CXL), des architectes de système peut la rangée la mémoire requise entre de mémoire centrale dans DDRn DIMMS, et les souvenirs persistants de DDRn ou plus nouveaux basés sur CXL. La latence et les caractéristiques économiques de ces rangées des souvenirs sont différentes, et cela donne à des architectes des options pour mélanger et assortir les souvenirs pour satisfaire à leurs exigences. »

C'est une suite des architectures de mémoire de legs. « Beaucoup d'OEM et de maisons de système conçoivent leur propre SoCs pour adapter le silicium aux besoins du client à leurs charges de travail spécifiques, » dit Tim Kogel, ingénieur technico-commercial principal chez Synopsys. « La plus grande occasion pour des gains en représentation et en puissance est la spécialisation de la hiérarchie de mémoire ainsi que l'architecture de soutien d'interconnexion.

Considérez la puissance. « Dans les architectures actuelles, 90% de l'énergie pour des charges de travail d'AI est consommé par le transfert de données, transférant les poids et les activation entre la mémoire externe, les cachettes de sur-puce, et finalement à l'élément de calcul lui-même (voir le schéma 1), » dit Arun Iyengar, Président d'Untether AI. « Seulement en se concentrant sur les besoins d'accélération d'inférence et en maximisant l'efficacité de puissance sommes nous capables fournir la représentation informatique sans précédent. »

L'optimisation de mémoire est un problème au niveau système qui touche tous les aspects de la conception — matériel, logiciel, et outils. Les « stratégies pour optimiser la mémoire sont diverses et dépendent du domaine d'application, » ajoute Kogel. « La meilleure stratégie est d'éviter l'accès mémoire hors puce totalement. Pour des architectures domaine-spécifiques, ceci peut typiquement être réalisé en augmentant la mémoire disponible de sur-puce, ou sous forme de cachettes ou l'application a contrôlé la mémoire. Particulièrement dans le secteur des accélérateurs de étude profonds, la mémoire disponible de sur-puce est un paramètre de conception décisif qui effectue également comment l'application de réseau neurologique est compilée sur le matériel de cible — par exemple, le carrelage de l'opérateur de convolution. »

Beaucoup de conceptions regardent pour disparaître plus loin que ceci. « des concepts Domaine-spécifiques de mémoire sont explorés dans le domaine spatial de calcul, » dit Horsnell du bras. « Comme exemple, DSPs tendent à fournir une piscine des souvenirs distribués, souvent directement contrôlée dans le logiciel, qui peut être un meilleur ajustement pour les conditions de largeur de bande et les modèles d'accès des applications spécialisées que les systèmes traditionnels de partager-mémoire. Afin d'établir le lien d'efficacité avec la fixe-fonction ASICs, ces processeurs offrent souvent une certaine forme de spécialisation de mémoire en fournissant l'appui direct pour les modèles spécifiques d'accès (tels que N-amortissement, FIFOs, ligne tampons, compression, etc.). Un aspect crucial de l'orchestration dans ces systèmes, et un défi en les concevant, détermine la bonne granularité pour les accès aux données, qui peuvent réduire au minimum des frais généraux de communication et de synchronisation tout en maximisant la simultanéité en même temps. D'autres défis persistent, y compris la programmation, la cohérence, la synchronisation, et la traduction, qui ajoutent la complexité de logiciel. Cependant, un itinéraire possible est en avant de compter sur les langues domaine-spécifiques (DSLs), qui en rendant le flux de données des applis plus explicite, peut permettre à des compilateurs d'identifier les modèles spécialisés d'accès mémoire et les tracer sur le matériel plus effectivement. »

Il paye également pour jeter un oeil plus attentif aux souvenirs eux-mêmes. la « Hyper-personnalisation est la tendance que nous voyons quand il s'agit de souvenirs, » dit Anand Thiruvengadam, directeur de marketing de produit de cadres supérieurs dans Synopsys. « Ceci signifie des souvenirs spécifiques pour différentes applications de fin. Même dans une application particulière de fin comme l'AI il y a différents besoins de souvenirs, comme pour former ou inferencing, inferencing dans les serveurs, ou inferencing dans le bord lointain. Chacune de ces applications a différentes conditions, et cela signifie que vous devez adapter les souvenirs aux besoins du client. Cette personnalisation signifie que vous plus pouvez ne regarder des souvenirs comme marchandises ou produits disponibles immédiatement. Vous devez la construire pour une application particulière. C'est où la sauce secrète donne un coup de pied dedans. »

Dans de nombreux cas la mémoire et l'interconnexion sont étroitement accouplées. « Quelque chose va quand il s'agit de combiner des technologies de mémoire et d'interconnexion pour répondre aux exigences d'accès aux données des charges de travail d'application — par exemple, niveaux multiples du groupement combinant traitant avec de la mémoire locale pour tirer profit de la localité dans des applications de flux de données, ou de sur-puce multirangée/multi-mise en communication énorme SRAMs pour les cartes de amortissement de caractéristique des accélérateurs de CNN, et de hiérarchies profondes de cachette avec des protocoles sophistiqués de cohérence pour atténuer l'espace d'exécution tiède des charges de travail de centre de traitement des données. »

Les petits changements peuvent donner de grands résultats. « Juste regard au petit miracle qu'Apple a exécuté avec le M1, » dit Frank. « Ils ont figuré comment à l'architecte un sous-système de mémoire qui sert les maîtres hétérogènes multiples bien, utilisant la stratégie de mise en antémémoire intelligente et une hiérarchie énorme et à multiniveaux de cachette. »

Est aussi souvent le cas, logiciel est l'ancre à inertie. « Ce qui se produit habituellement y a il est un algorithme en place, et nous voyons une manière de l'optimiser, optimisons la mémoire, de sorte que l'algorithme bien mieux soit mis en application, » dit Saggurti. « Du revers, nous avons ces différents types de mémoire. Pouvez-vous changer votre algorithme pour vous servir de ces nouveaux genres de souvenirs ? Dans le passé, utilisant TCAMs était en grande partie une construction de domaine de mise en réseau pour rechercher des IP address. Plus récemment, les moteurs de formation démarrent pour employer TCAMs, et c'est une approche si différente. Ceci a besoin de logiciel, ou de progiciels pour changer basé sur les types de souvenirs disponibles. Mais le plus souvent, le logiciel reste les changements fixes et de mémoire pour rendre l'exécution résultante meilleure. »

Conscience de sortie
Beaucoup de temps et argent est investi en intelligence artificielle de nos jours. Des circuits intégrés sont contraints par sortie, et cela met le projecteur sur la mémoire et l'interconnexion.

« Historiquement, de la mémoire et des architectures d'interconnexion ont été conçues basées sur les feuilles de calcul statiques ou les modèles analytiques simples comme le modèle de performance de roofline, » dit Kogel. « Pour des applications de pointe, ceci devient assez complexe. Par exemple, la prévision des besoins de stockage de chaque couche à un CNN exige la considération de l'optimisation de compilateur comme la fusion de carrelage et de couche. Ces méthodes statiques deviennent déraisonnablement complexes et inexactes pour la prévision et l'optimisation des charges de travail SoC niveau avec des sous-systèmes divers d'IP et des scénarios dynamiques d'application. D'autre part, le fonctionnement de l'application sur l'émulation de matériel ou un système de prototypage est trop en retard dans le processus de développement pour faire n'importe quels changements radicaux ou optimisation principale de la conception de mémoire. »

Cela met l'accent sur les charges de travail prévues. « La clé aux sous-systèmes efficaces de mémoire est la connaissance de votre charge de travail, » dit Frank. « Comprenant comment il se comporte, peut-être la formant même d'une manière dont le rend plus compatible avec la limitation de votre hiérarchie de mémoire, c'est où l'architecture est contestée. Les accélérateurs spécifiques de domaine exigent les systèmes mémoire accordés — et l'art d'établir le moteur de transformation que la “impédance” assortit produite en série, la DRACHME organisée et bursty de page d'accès et le modèle de l'accès du moteur exige l'analyse dans le comportement de système, modelant des outils et beaucoup de charges de travail pour jouer avec. Parfois cela prend changer la manière que la charge de travail traite les données pour pouvoir améliorer le système global. Un bon exemple était la transition du rendu “direct” au traitement basé sur tuile dans GPUs. »

Il tout descend à la modélisation et à la simulation. « Nous proposons l'utilisation des outils virtuels de prototypage de modeler la charge de travail d'application, ainsi que les modèles niveau de la transaction précis de l'architecture d'interconnexion et de mémoire, » dit Kogel. « Cette “approche quantitative d'architecture d'abord” permet la première analyse de compromis, ayant pour résultat des spécifications fiables d'exécution. Aux dépens de l'effort supplémentaire de modélisation et de simulation, l'avantage est risque réduit de manquer des cibles de représentation et de puissance, ou coût réduit d'overdesigning le matériel juste pour être du côté sûr. Pendant l'ère des retours de diminution de la loi de Moore, l'occasion est de sortir avec un produit plus optimisé et plus différencié. »

Cela permet à l'impact des changements algorithmiques d'être vu, aussi bien. « Il y a un besoin de retourner et remodeler les algorithmes, » dit Thiruvengadam. « Ils peuvent remodeler pour les architectures traditionnelles de mémoire de legs, ou ils peuvent être remodelés pour de nouvelles architectures, nouveaux styles de souvenirs, nouvelles saveurs de mémoire. Il y a cette poussée constante pour la graduation de représentation, coût mesurant, et pouvant également équilibrer les compromis pour les différentes applications. C'est essentiellement la raison pour laquelle vous voyez le développement continu de MRAMs et de FeRAMs. Ils essayent de trouver une tache douce pour au moins quelques variables, sinon toutes les variables. Le besoin de remodeler des algorithmes avec les architectures de mémoire devient certainement important. »

L'équilibre est nécessaire. « Vous devez penser au concept de l'intensité informatique et le type d'opérations impliquées, » dit Frank. « Certains algorithmes ont des conditions insatiables de largeur de bande, alors que d'autres déplacent seulement un peu de données relativement mais effectuer des milliers d'opérations là-dessus. l'opération de Dans-mémoire peut fonctionner bien pour le traitement de type SIMD, où la largeur de bande d'instruction est petite relativement à la largeur de bande de données et beaucoup d'éléments sont traités utilisant la même recette. Mais dès qu'il y aura des dépendances séquentielles dans le train de données de données ou le flux de données irrégulier, l'avantage des rétrécissements spécifiques de mémoire de domaine. »

Mémoire faite sur commande
Tandis que les changements architecturaux peuvent produire de grands résultats, la linéarisation des souvenirs peut également fournir des gains. « Une grande proportion de la puissance et du secteur des accélérateurs d'aujourd'hui est employée sur la mémoire, » dit Horsnell. « Tellement toutes les améliorations de latence/densité/énergie réalisées par de nouvelles technologies de stockage ont pu avoir un impact dramatique. »

Les souvenirs faits sur commande sont importante affaire devenante. « Vous commencez à voir des choses comme le calcul de dans-mémoire, calcul de proche-mémoire, les souvenirs spécifiques qui pourraient être écrire-toute-zéro mémoire — souvenirs qui sont optimisés pour certains types d'opérations, » dit Saggurti. « Nous voyons beaucoup de clients demander nous sur MRAM, bien plus de personnalisation de SRAMs, TCAMs, et certains coups secs au TCAMs. »

Les difficultés demeurent, cependant. « J'ai eu beaucoup de discussions concernant des conceptions faites sur commande de mémoire, où traitant sur la mémoire meurs aurais été architecture “idéale une”, » dit Frank. « Elle aurait fourni la largeur de bande élevée, la basse latence, etc. Tout était exact, excepté le fait, que le processus de mémoire limitait quelle logique pourrait être intégrée — trois ou quatre couches en métal, de basse puissance, mais transistors lents. Cela a signifié l'inefficacité pour le moteur de calcul. Le sacrifice de la fréquence d'horloge et de la complexité de circuit soudainement n'a fait à l'intégration du moteur de calcul plus un si bon choix. »

Mais certains de ces changements deviendront nécessaires. Les « gens veulent apporter l'éclair sur la puce et lui faire un éclair inclus, » dit Saggurti. « Alors la question devient-il, “est-il même possible ? “À 28nm vous pourriez pouvoir faire l'éclair inclus, mais les gens commencent à penser aux choses comme MRAM à 22nm. »

Toujours, il y a d'autres manières de regarder le problème. « Variabilité de processus à travers une gaufrette et à travers la matrice, et même au fil du temps, conception de mémoire de limite, » ajoute Saggurti. « Quand vous concevez une mémoire, SRAM simple, vous tendez à concevoir pour le cas quand la cellule mordue met une manière — lent — et la périphérie va l'autre manière — rapidement. Si vous concevez pour celui, et si la majorité de votre silicium est typique, vous laissez beaucoup de représentation et puissance sur la table. Si vous comprenez où vous êtes dans la gamme de processus et permettre au concepteur de puces d'agir sur cette information, alors vous pouvez ajuster la synchronisation en conséquence. Votre conception pourrait être plus optimale, et vous ne devez pas concevoir pour le pire cas. »

Conclusion
Tandis que la mémoire a toujours été un compromis de conception, elle n'a jamais reçu le même niveau de l'attention en tant que traitement, quoique ce soit le limiteur de représentation en termes de largeur de bande, puissance, et secteur. L'AI fait repenser des personnes des architectures de mémoire forcément, mais avec cette attention supplémentaire, les équipes de créateurs peuvent également repenser certains du logiciel et des algorithmes qui ont été optimisés pour des systèmes mémoire de legs. Dans un monde où les gains de performance ne viennent pas pendant librement tous les 18 mois, des mesures plus extrêmes deviennent la seule manière d'arrêter des produits des marchandises devenantes. (de Brian Bailey)

Coordonnées