Résumé
Pour faciliter la programmabilité des architectures PIM (Processing-In-Memory), nous proposons DaPPA (architecture de traitement en mémoire parallèle de données), un cadre qui peut, pour une application donnée, distribuer automatiquement les données d'entrée et rassembler les données de sortie, gérer la mémoire, et paralléliser le travail à travers les unités de traitement de données (DPUs). L'idée principale derrière DaPPA est d'enlever la responsabilité de la gestion des ressources matérielles du programmeur en fournissant une interface de programmation basée sur des modèles parallèles de données intuitifs qui abstraient les composants matériels du système UPMEM. En utilisant cette idée clé, DaPPA transforme un code d'application basé sur des modèles parallèles de données en code cible UPMEM approprié, y compris les API nécessaires pour la gestion des données et la partition du code, qui peuvent ensuite être compilés en un binaire basé sur UPMEM de manière transparente pour le programmeur. Lors de la génération du code cible UPMEM, DaPPA met en œuvre plusieurs optimisations de code pour améliorer la performance de bout en bout.