APPARATUS FOR IMPLEMENTING DATA-DRIVEN SYNCHRONIZATION IN TASK-PARALLEL AND BARRIER SYNCHRONIZATION IN DATA-PARALLEL PROGRAMS

Disclosed is an apparatus (100) for implementing data-driven synchronization in task-parallel and barrier synchronization in data-parallel programs. The apparatus (100) includes multiple compute elements (CEs) (102-1 to 102-N) for cooperative execution of a program composed of tasks. Tasks are eithe...

Full description

Saved in:
Bibliographic Details
Main Authors NARAYAN, Ranjani, KRISHNA C, Madhava
Format Patent
LanguageEnglish
French
Published 25.07.2024
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Disclosed is an apparatus (100) for implementing data-driven synchronization in task-parallel and barrier synchronization in data-parallel programs. The apparatus (100) includes multiple compute elements (CEs) (102-1 to 102-N) for cooperative execution of a program composed of tasks. Tasks are either compute-tasks or service-tasks, with compute tasks executed on the CEs and service tasks used for implementing barrier synchronization in data-parallel programs. Tasks dependency is specified through synchronization instructions. The apparatus (100) also includes an on-chip memory subsystem with private caches of each CE at level-1 (Private L1 cache) (104-1 to 104-N) and a shared cache at level-2 (L2 Shared cache) (108) with software-managed coherence. A synchronization unit (110) maintains a list of records, each associated with a task and its state information. A task dispatcher (112) dispatches compute tasks for execution on CEs based on the record list and implements barrier synchronization using service tasks. Un appareil (100) pour mettre en œuvre une synchronisation commandée par des données dans une synchronisation de tâches parallèles et de barrière dans des programmes à données parallèles est divulgué. L'appareil (100) comprend de multiples éléments de calcul (CE) (102-1 à 102-N) pour l'exécution coopérative d'un programme composé de tâches. Les tâches sont soit des tâches de calcul, soit des tâches de service, avec des tâches de calcul exécutées sur les CE et des tâches de service utilisées pour mettre en œuvre une synchronisation de barrière dans des programmes à données parallèles. La dépendance des tâches est spécifiée par des instructions de synchronisation. L'appareil (100) comprend également un sous-système de mémoire sur puce avec des caches privés de chaque CE au niveau -1 (cache L1 privé) (104-1 à 104-N) et un cache partagé au niveau -2 (cache partagé L2) (108) avec une cohérence gérée par logiciel. Une unité de synchronisation (110) maintient une liste d'enregistrements, chacun étant associé à une tâche et à ses informations d'état. Un répartiteur de tâches (112) répartit des tâches de calcul pour une exécution sur des CE sur la base de la liste d'enregistrements et met en œuvre une synchronisation de barrière en utilisant des tâches de service.
Bibliography:Application Number: WO2024IN50053