CARP

Projektdetails:

Name CARP
URL www.carpproject.eu
Dauer 2012 bis 2017
Webscreen

Projektinhalt:

carp: correct and efficient accelerator programming

Finanziert von der Europäischen Kommission, durch das FP7-Programm

  • Begonnen am 1. Dezember 2011
  • Dauer: 36 Monate
  • Gemeinschaftsbeitrag zum Projekt: 2,8M€

Das europäische Forschungsprojekt CARP zielt darauf ab, die Programmierbarkeit von beschleunigten Systemen, insbesondere von mit GPUs beschleunigten Systemen, auf allen Ebenen zu verbessern.

Dazu gehören der Entwurf von hochgradigen Programmierformalismen, die auf Beschleuniger ausgerichtet sind, das Schreiben hochgradig optimierter Compiler, um hochgradigen Code in effiziente OpenCL zu kompilieren, die Verifizierung der Korrektheit von Beschleuniger-Kerneln und der Einsatz intensiver symbolischer Testtechniken, um Fehler zu finden.
Weitere Einzelheiten sind unten aufgeführt. Siehe auch das Projekt-Factsheet und unser Übersichtsposter HiPEAC 2012. Die neuesten Aktualisierungen und technischen Errungenschaften finden Sie auf den Projektnachrichten- und Verbreitungsseiten.

 

Schlüssel-Innovation

Massiv-parallele Beschleunigerprozessoren, in erster Linie Grafikverarbeitungseinheiten (GPUs), sind für Endbenutzer weithin verfügbar geworden. Beschleuniger bieten eine enorme Rechenleistung zu niedrigen Kosten, und Aufgaben wie Medienverarbeitung, medizinische Bildgebung und Eye-Tracking können beschleunigt werden, um die CPU-Leistung um Größenordnungen zu übertreffen, sowohl in der Energieeffizienz als auch in der Ausführungsgeschwindigkeit. Trotz dieser Vorteile stellen Beschleuniger eine ernsthafte Herausforderung für die Softwareentwicklung dar. Die Entwicklung von Software für das vielfältige und wachsende Angebot an Plattformen auf dem Markt ist ohne bessere Programmiersprachen und Werkzeugunterstützung nicht machbar.

Das Ziel von CARP ist es, Techniken und Werkzeuge für eine korrekte und effiziente Beschleunigerprogrammierung zu entwickeln:

  • Neuartige und attraktive Methoden zur Konstruktion systemunabhängiger Beschleunigerprogramme
  • Fortschrittliche Code-Generierungstechniken zur Erzeugung von hochoptimiertem systemspezifischem Code aus systemunabhängigen Programmen
  • Skalierbare statische Techniken zur qualitativen und quantitativen Analyse von Beschleunigersoftware

Diese Methoden bieten einen einheitlichen Entwicklungsfluss für beschleunigte Software, reduzieren Kosten und Markteinführungszeiten, erhöhen die Energieeffizienz (und damit die Akkulaufzeit in mobilen Geräten) und verbessern die Zuverlässigkeit. In Bezug auf wichtige Fallstudien wird erwartet, dass die CARP-Technologie einen Beitrag leisten wird:

  • eine Leistungssteigerung von mindestens 4x beim Vergleich von optimiertem mit nicht optimiertem Code auf mehreren Plattformen
  • Eine Reduzierung des Energieverbrauchs um mindestens 20%.
  • Automatische Erkennung von mindestens 70% der bekannten Funktionsfehler
  • Eine Verkürzung der Zeit, die benötigt wird, um eine Anwendung so zu entwerfen, dass sie effizient über mehrere Beschleunigerplattformen läuft, um mehrere Größenordnungen

 

Technischer Ansatz

Einen interaktiven Überblick über den CARP-Ansatz finden Sie auf der CARP-Homepage.

Im Mittelpunkt des CARP-Ansatzes steht der Entwurf einer neuartigen Sprache, PENCIL (Platform-Neutral Compute Intermediate Language), für die produktive Beschleunigerprogrammierung. Es werden fortgeschrittene Kompilierungswerkzeuge untersucht, die das polyedrische Modell erweitern und entspannen, um hochoptimierten Low-Level-Code aus PENCIL-Programmen zu erzeugen, der auf den weit verbreiteten Industriestandard OpenCL abzielt. Portable Leistung wird durch profilbasiertes Auto-Tuning erreicht, wodurch kompilierter Code effizient auf einer Reihe von Beschleunigerplattformen ausgeführt werden kann.

Wir entwerfen PENCIL so, dass es sich als Zielsprache für die Kompilierung domänenspezifischer Sprachen (DSLs) eignet. Unter Verwendung von DSLs für Bildverarbeitung und DSLs für Lineare Algebra werden wir die CARP-Kompilierwerkzeuge als Kompilierpfad von High-Level-DSL-Programmen zu hocheffizientem OpenCL-Code untersuchen.

Compiler-Optimierungen werden darauf ausgerichtet sein, die Ausführungszeit zu reduzieren und die Energieeffizienz zu erhöhen. Zur Analyse der Energieeffizienz untersuchen wir Techniken, die auf Constraint Solving und stochastischer Modellüberprüfung sowie auf dynamischer Analyse basieren.

Um den Entwurf portabler, korrekter Beschleunigersoftware zu unterstützen, untersuchen wir die formale Analyse sowohl auf hoher als auch auf niedriger Ebene und entwickeln eine formale Semantik und Verifikationswerkzeuge für PENCIL sowie formale Verifikationstechniken für Software, die in OpenCL geschrieben oder kompiliert wurde. Ziel dieser Techniken ist es, automatisch Fehler in Beschleunigersoftware zu entdecken, die Korrektheit kritischer Codeteile, z.B. Bibliotheken, festzustellen und das Programmverständnis zu verbessern.

Unsere Leitfäden im Überblick:

Leitfaden bewerten:
[Total: 0 Average: 0]
Autor: 
 Bernhard Frenzel

Konventionelle Medizin und alternative Heilmethoden sollten sich sinnvoll ergänzen. Naturheilkunde kann gerade dort helfen, wo Ärzten Grenzen gesetzt sind. Als erfahrener Heilpraktiker in Gloten unterstütze ich Sie bei körperlichen, seelischen und psychosomatischen Beschwerden. Ob Sie akut oder chronisch erkrankt sind – gemeinsam finden wir Wege, damit es Ihnen bald wieder besser geht.