GPGPU-Sim

NVIDIA Tesla GPU. Eine der Grafikkarten, die GPGPU-Sim simulieren kann.

GPGPU-Sim (von englisch „General Purpose Graphics Processing Unit - Simulator“) ist ein Software-System zur Simulation von neu zu entwickelnden Grafikkarten und Computerprozessoren.

Wie es der Namensbestandteil GPGPU nahelegt, ist das Simulationssystem insbesondere zur Simulation neuerer Graphikprozessoren geeignet, die zur Ausführung von Anwendungen ausgelegt sind, die über graphische Anwendungen hinausgehen und allgemeinerer Art sind. Dazu gehören rechenintensive Programme aus den Bereichen Wissenschaft und Wirtschaft.

GPGPU-Sim ermöglicht es, funktionale und zeitliche Simulationen durchzuführen, bei denen sowohl das Ergebnis einer Berechnung erzeugt wird, als auch die dazu benötigte Zeit ermittelt wird.

Details

GPGPU-Sim wird daher vor allem zur Forschung und Entwicklung im Bereich der Computerarchitektur eingesetzt. Dabei geht es darum, einzelne Komponenten wie Speicher (RAM/DRAM), Caches, Verbindungsleitungen sowie Prozessoren und deren Komponenten, so auszuwählen, zu konfigurieren und zu verbinden, dass das Gesamtsystem optimiert ist bezüglich Geschwindigkeit der Ausführung, Fehlertoleranz, Energieeffizienz oder Gesamtkosten.

Das Simulationssystem kann verwendet werden zum

Simuliert werden insbesondere Architekturen wie Nvidias Fermi und GT200, auf denen Programme, geschrieben in den Programmiersprachen CUDA oder OpenCL, ausgeführt werden können. Da diese Systeme zur aktuellen Spitzengruppe gehören, ist die Erforschung von Varianten für Wissenschaft und Industrie besonders interessant.

GPGPU-Sim läuft auf Linux-Plattformen wie z. B. Ubuntu. Die aktuelle Version ist 3.3.2 von 2014.

GPGPU-Sim ist als Source-Code frei verfügbar unter einer BSD-Lizenz. Die Sourcen sind in C++ programmiert. Die Konfiguration des Systems erfolgt über Konfigurations-Files. Weitere Anpassungen sind möglich über die Änderung des Quellcodes.

Der Simulator hat 3 Hauptkomponenten:

Bei zeitlicher Simulation ist das Simulationssystem erheblich langsamer als die jeweils simulierte Grafikkarte, erreicht jedoch gute Genauigkeitswerte der Simulation. Aufgrund dieses Geschwindigkeitsunterschiedes ist GPGPU-Sim vor allem zur experimentellen Simulation und nur sehr eingeschränkt zur Virtualisierung einer Grafikkarte geeignet.

Multi2Sim

Vergleichbar zu GPGPU-Sim ist das Simulations-Framework Multi2Sim, welches die Simulation von CPU und GPU erlaubt. Anders als GPGPU-Sim dient der GPU-Simulator von Multi2Sim speziell der Simulation von Anwendungen, die in der Programmiersprache OpenCL für AMD-Grafikkarten geschrieben wurden.

Literatur