SYSTEMS AND METHODS FOR GENERATING CODE FOR PARALLEL PROCESSING UNITS

Systems and methods generate code from a source program where the generated code may be compiled and executed on a Graphics Processing Unit (GPU). A parallel loop analysis check may be performed on regions of the source program identified for parallelization. One or more optimizations also may be ap...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: VENKATARAMANI, Girish, SHANKAR, Jayaprabha, RAGHAVAN, Vijaya, KOKKU, Rama P, BROCK, James L, SHEI, Chun-Yu
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Systems and methods generate code from a source program where the generated code may be compiled and executed on a Graphics Processing Unit (GPU). A parallel loop analysis check may be performed on regions of the source program identified for parallelization. One or more optimizations also may be applied to the source program that convert mathematical operations into a parallel form. The source program may be partitioned into segments for execution on a host and a device. Kernels may be created for the segments to be executed on the device. The size of the kernels may be determined, and memory transfers between the host and device may be optimized. L'invention concerne des systèmes et des procédés qui génèrent un code à partir d'un programme source où le code généré peut être compilé et exécuté sur une unité de traitement graphique (GPU). Un contrôle d'analyse de boucle parallèle peut être exécuté sur des régions du programme source identifiées pour une parallélisation. Une ou plusieurs optimisations peuvent également être appliquées au programme source, qui convertissent des opérations mathématiques en une forme parallèle. Le programme source peut être partitionné en segments en vue d'une exécution sur un hôte et un dispositif. Des noyaux peuvent être créés pour les segments devant être exécutés sur le dispositif. La taille des noyaux peut être déterminée, et des transferts de mémoire entre l'hôte et le dispositif peuvent être optimisés.