Simple Science

La science de pointe expliquée simplement

# Informatique# Logiciels mathématiques# Architecture matérielle# Informatique distribuée, parallèle et en grappes# Apprentissage automatique

Améliorer les systèmes de traitement en mémoire avec de nouvelles bibliothèques

Une nouvelle bibliothèque améliore les calculs complexes dans les architectures PIM.

― 8 min lire


PIM Tech : NouvellePIM Tech : Nouvellebibliothèque améliore lesperformancessystèmes PIM.accélère les calculs complexes dans lesUne bibliothèque révolutionnaire
Table des matières

Le traitement en mémoire (PIM) est une nouvelle façon d'utiliser la mémoire en la combinant avec des capacités de traitement. Ce concept vise à résoudre le problème de déplacer les données entre la mémoire et les unités de traitement dans les ordinateurs modernes. Dans les systèmes traditionnels, il y a un écart de performance entre la vitesse des processeurs et la vitesse d'accès à la mémoire. À mesure que les ordinateurs deviennent plus rapides, l'accès aux données est devenu une grande limite. Les systèmes PIM essaient d'améliorer la performance en permettant aux calculs de se faire là où les données sont stockées.

Le Défi des Opérations Complexes

Un des principaux défis des systèmes PIM actuels est de gérer des calculs complexes, surtout les fonctions transcendantes. Ces fonctions incluent les fonctions trigonométriques comme le sinus et le cosinus, l'exponentiation et les logarithmes. Ces calculs sont cruciaux dans de nombreuses applications modernes, y compris celles en apprentissage automatique. Les architectures PIM actuelles ont souvent des capacités limitées et peinent à gérer efficacement ces opérations complexes.

Le Besoin de Bibliothèques Efficaces

Pour soutenir ces calculs complexes dans les systèmes PIM, une nouvelle bibliothèque a été développée. Cette bibliothèque propose des méthodes efficaces pour gérer les fonctions transcendantes. Elle utilise deux techniques principales : CORDIC et les tables de recherche (LUT). CORDIC est une méthode qui permet de faire des calculs avec des opérations simples comme des additions et des décalages. Les tables de recherche stockent des valeurs pré-calculées pour que les calculs puissent être effectués rapidement en les consultant au lieu de les calculer depuis le début.

Aperçu des Fonctions Transcendantes

Les fonctions transcendantes ne peuvent pas être exprimées comme une simple équation polynomiale. Cela les rend plus difficiles à calculer correctement en un nombre fini d'étapes. Les fonctions transcendantes courantes incluent le sinus, le cosinus, l'exponentiation et le logarithme. Ces fonctions sont importantes dans divers domaines, comme le calcul scientifique et l'apprentissage automatique.

Comment Fonctionne le PIM

Les systèmes PIM intègrent des éléments de Traitement près de la mémoire pour réduire les délais causés par le déplacement des données. Ces systèmes peuvent être divisés en deux catégories principales :

  1. Traitement près de la mémoire (PNM) : Ce type place des unités de traitement juste à côté de la mémoire. Cela aide à accélérer l'accès aux données.

  2. Traitement en utilisant la mémoire (PUM) : Ce type utilise les propriétés de la mémoire elle-même pour effectuer des calculs, permettant des opérations sans déplacer les données hors de la mémoire.

Les avancées récentes en technologie de mémoire ont rendu possible la conception de systèmes PIM qui offrent ces capacités.

État Actuel de la Technologie PIM

Les premiers systèmes PIM réels commencent à apparaître sur le marché. Des entreprises comme UPMEM ont développé des architectures PIM qui placent de petits cœurs de traitement à côté des banques de mémoire. Ces développements montrent que PIM peut devenir une solution pratique pour les problèmes de déplacement de données rencontrés par les architectures informatiques traditionnelles.

Plusieurs prototypes ont émergé, incluant diverses approches comme HBM-PIM et AxDIMM. Chacun de ces systèmes cible des cas d'utilisation spécifiques comme l'apprentissage automatique ou le traitement des données, mais ils partagent des caractéristiques communes, comme des ensembles d'instructions limités et des unités de traitement simples.

Limitations des Systèmes PIM Existants

Les systèmes PIM actuels ont des limitations en ce qui concerne les types d'opérations qu'ils peuvent effectuer. Par exemple, beaucoup de systèmes ne supportent pas les calculs avancés comme les fonctions transcendantes nativement, et s'appuient plutôt sur des bibliothèques logicielles. Cela crée des défis dans les applications qui nécessitent une utilisation fréquente de ces fonctions, car la programmation doit gérer le transfert de tâches entre différentes unités de traitement.

La Nouvelle Bibliothèque pour les Fonctions Transcendantes

Pour répondre aux limitations des systèmes PIM existants, une nouvelle bibliothèque a été créée, spécialisée dans les fonctions transcendantes. Cette bibliothèque supporte plusieurs méthodes pour calculer ces fonctions efficacement. L'objectif de la bibliothèque est de fournir des calculs rapides et précis dans le contexte des architectures PIM.

Méthode CORDIC

La méthode CORDIC est un algorithme itératif qui peut être utilisé pour calculer diverses fonctions mathématiques, y compris le sinus et le cosinus. L'avantage principal de CORDIC est qu'il utilise seulement des opérations simples comme l'addition et le décalage de bits, qui sont plus faciles à réaliser dans les systèmes PIM par rapport à des opérations plus complexes comme la multiplication.

Tables de Recherche (LUT)

La méthode des tables de recherche implique de pré-calculer les valeurs des fonctions et de les stocker en mémoire. Quand un calcul est nécessaire, le système récupère la valeur nécessaire dans la table. Cette méthode accélère considérablement les calculs, car elle évite le besoin de calculs intensifs chaque fois qu'une fonction est appelée. Les tables de recherche peuvent être ajustées en fonction des besoins de l'application, permettant un équilibre entre vitesse et précision.

Évaluation de la Performance de la Bibliothèque

Pour déterminer l'efficacité de la nouvelle bibliothèque, des analyses de performance ont été menées à l'aide de micro-benchmarks. Les micro-benchmarks sont de petits programmes conçus pour tester la performance de fonctions spécifiques. Ces tests ont mesuré la précision, les cycles d'exécution, la consommation de mémoire et le temps de configuration associés à différentes méthodes de calcul.

Cycles d'Exécution

Le nombre de cycles d'exécution est un indicateur important pour évaluer la performance. Moins de cycles d'exécution indiquent généralement une performance plus rapide. La bibliothèque a été trouvée efficace pour optimiser les cycles d'exécution, ce qui la rend adaptée à diverses applications.

Consommation de Mémoire

La consommation de mémoire est un autre facteur critique lors de l'évaluation de la performance. Les architectures PIM ont souvent des ressources mémoire limitées, ce qui rend essentiel de gérer ces ressources efficacement. Différentes méthodes de calcul des fonctions ont été testées pour leur utilisation mémoire, assurant que la bibliothèque reste pratique dans des scénarios réels.

Test de la Bibliothèque avec des Charges de Travail Réelles

En plus des micro-benchmarks, la bibliothèque a été testée avec trois charges de travail réelles significatives : Blackscholes, Sigmoid et Softmax. Ces benchmarks représentent des applications courantes où les fonctions transcendantes jouent un rôle vital.

Blackscholes

Le modèle Blackscholes est utilisé en finance pour calculer le prix des options. Il nécessite plusieurs fonctions, y compris l'exponentiation et les logarithmes. La version PIM du benchmark Blackscholes a démontré des améliorations de performance significatives par rapport aux méthodes traditionnelles.

Sigmoid

La fonction Sigmoid est couramment utilisée en apprentissage automatique comme fonction d'activation. Ce benchmark a mis en lumière la capacité de la bibliothèque à fournir une performance compétitive par rapport aux implémentations CPU traditionnelles.

Softmax

Softmax est utilisé en apprentissage automatique pour convertir des scores bruts en probabilités. L'implémentation de Softmax utilisant la nouvelle bibliothèque a montré que l'architecture PIM peut gérer efficacement des applications exigeantes, réduisant considérablement le surcoût de déplacement des données.

Conclusion

Les systèmes de traitement en mémoire ont un grand potentiel pour améliorer l'efficacité et la rapidité des calculs en réduisant les goulets d'étranglement associés au déplacement des données. La nouvelle bibliothèque pour les fonctions transcendantes répond efficacement aux limitations des architectures PIM existantes en proposant des méthodes efficaces pour des calculs complexes. En s'appuyant sur des approches comme CORDIC et les tables de recherche, la bibliothèque peut fournir des résultats rapides et précis, ouvrant la voie à des applications plus avancées dans des domaines comme l'apprentissage automatique et le calcul scientifique.

À mesure que la technologie PIM continue d'évoluer, la disponibilité de bibliothèques efficaces sera cruciale pour libérer son plein potentiel et permettre une nouvelle génération de systèmes informatiques capables de gérer les exigences des charges de travail modernes.

Source originale

Titre: TransPimLib: A Library for Efficient Transcendental Functions on Processing-in-Memory Systems

Résumé: Processing-in-memory (PIM) promises to alleviate the data movement bottleneck in modern computing systems. However, current real-world PIM systems have the inherent disadvantage that their hardware is more constrained than in conventional processors (CPU, GPU), due to the difficulty and cost of building processing elements near or inside the memory. As a result, general-purpose PIM architectures support fairly limited instruction sets and struggle to execute complex operations such as transcendental functions and other hard-to-calculate operations (e.g., square root). These operations are particularly important for some modern workloads, e.g., activation functions in machine learning applications. In order to provide support for transcendental (and other hard-to-calculate) functions in general-purpose PIM systems, we present \emph{TransPimLib}, a library that provides CORDIC-based and LUT-based methods for trigonometric functions, hyperbolic functions, exponentiation, logarithm, square root, etc. We develop an implementation of TransPimLib for the UPMEM PIM architecture and perform a thorough evaluation of TransPimLib's methods in terms of performance and accuracy, using microbenchmarks and three full workloads (Blackscholes, Sigmoid, Softmax). We open-source all our code and datasets at~\url{https://github.com/CMU-SAFARI/transpimlib}.

Auteurs: Maurus Item, Juan Gómez-Luna, Yuxin Guo, Geraldo F. Oliveira, Mohammad Sadrosadati, Onur Mutlu

Dernière mise à jour: 2023-09-05 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2304.01951

Source PDF: https://arxiv.org/pdf/2304.01951

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires