Zur Seitenansicht

Titelaufnahme

Links
Zusammenfassung (Deutsch)

Datenparallele Workloads im Bereich High Performance Computing förderndie Entwicklung von energieeffizienten heterogenen Systemen, die geeignete rechenintensive Aufgaben auf Beschleunigern ausführen, um den Datendurchsatz zu maximieren. Um von diesen heterogenen Systemen zu profitieren, müssen Anwendungsentwickler ihre Anwendung jedoch auf die jeweiligen Beschleunigerarchitekturen portieren. Dies erfordert nicht nur anwendungs- und domänenspezifisches Wissen, sondern auch ein tiefgreifendes Verständnis der Beschleunigerarchitekturen, und mündet letztendlich in einem erhöhten Entwicklungsaufwand und somit höheren Gesamtkosten. Um den Portierungsprozess zu vereinfachen, haben wir einen neuartigen automatischen und transparenten Parallelisierungsansatz, kurz Runtime and Just-in-Time Compilation System (RTCS), entwickelt. Das RTCS ist in der Lage, sequenzielle Anwendungen transparent zu transformieren, um heterogene Systeme mit mehreren Beschleunigern mit Hilfe von OpenCL zu unterstützen. Das RTCS parallelisiert die Anwendung, indem es automatisch geeignete datenparallele Schleifen erkennt und in unabhängige OpenCL-Kernel umwandelt. Der entsprechende OpenCL-Hostcode, der zum Einrichten des Beschleunigers, zum Erstellen der benötigten OpenCL-Puffer, zum Übertragen der Daten sowie zum Starten des OpenCL-Kernels benötigt wird, wird ebenfalls automatisch generiert. Ferner ist das RTCS in der Lage, Datentransfers zu optimieren und OpenCL-Kernel zu kacheln (tiling), um ihre Leistung zu verbessern. Dadurch könnenNutzer automatisch und transparent Anwendungen aus verschiedenen Bereichen beschleunigen lassen und ohne manuellen Portierungsaufwand verschiedene Beschleuniger verwenden. Diese Kombination aus transparenter und flexibler Unterstützung verschiedener Zielarchitekturen macht das RTCS einzigartig im Bereich der Parallelisierungswerkzeuge.

Zusammenfassung (Englisch)

In the high performance computing domain, data parallel workloads are driving architectures toward energy efficient heterogeneous systems capable of executing computationally intensive tasks on accelerators designed to maximize data throughput. However, to benefit from this, application developers need to port their applications to different architectures, which requires not only application and domain-specific knowledge, but also the understanding of different accelerator architectures, resulting in increased design effort and overall costs. To help simplify this porting process, we have developed a novel automatic and transparent parallelization approach known as the Runtime and Just-in-Time Compilation System (RTCS), which is capable of transparently porting sequential programs to different heterogeneous multi-accelerator architectures via OpenCL. The RTCS parallelizes the application by automatically detecting and transforming suitable data-parallel loops into independent OpenCL kernels. The corresponding OpenCL host code required to setup the OpenCL device, create OpenCL buffers, transfer data to the device and launch the OpenCL kernel on the device is also automatically generated. Additionally, the RTCS applies data transfer optimizations and is also able to tile OpenCL kernels to improve their performance. Our parallelization approach is capable of automatically generating accelerated code from sequential applications in a Just-in-Time (JIT) manner, allowing users to automatically and transparently accelerate applications from diverse domains and target different accelerators without any manual effort. This combination of transparent and flexible support for different target architectures makes the RTCS unique in the domain of parallelization and offloading tools.

Statistik