Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Effizientes Lösen linearer Gleichungssysteme über GF(2) - CDC ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.2. NVIDIA 7<br />
Seit ca. 2000 werden auch Grafikprozessoren mit ihren Rechenleistungen für<br />
parallelisierbare Operationen verwendet. Dabei handelt es sich oft um Berechnungen,<br />
die traditionell auf der CPU durchgeführt werden. Das <strong>Lösen</strong><br />
von allgemeinen Aufgaben mit Grafikkarten wird als General Purpose Computation<br />
on Graphics Processing Unit oder kurz GPGPU bezeichnet (Siehe<br />
[17]). Grafikkarten verfügen <strong>über</strong> eine SIMD-Architektur. Neuere GPUs von<br />
NVIDIA ermöglichen die zeitgleiche Ausführung mehrerer unterschiedlicher<br />
Programme auf einer Grafikkarte wodurch auch die MIMD Architektur umgesetzt<br />
ist. Das Multiprozessorsystem ist homogen und alle Prozessoren befinden<br />
sich auf der selben Karte. Jeder verfügt <strong>über</strong> einen eigenen Adressraum<br />
und hat Zugriff auf den globalen Speicherbereich, welchen sich alle Prozessoren<br />
teilen.<br />
2.2 NVIDIA<br />
NVIDIA wurde 1993 von Jen-Hsun Huang, Curtis Priem und Chris Malachowsky<br />
gegründet und gehört heute zu einer der größten Firmen für die<br />
Entwicklung von Grafikprozessoren und Chipsätzen für Personal Computer<br />
und Spielkonsolen (Siehe auch [11]).<br />
Im Februar 2007 wurde die Compute Unified Device Architecture, kurz CU-<br />
DA entwickelt. Diese API ermöglicht es Grafikprozessoren als Co-Prozessoren<br />
für die CPU einzusetzen um parallelisierbare Berechnungen zu beschleunigen.<br />
Bis dahin war die Schnittstelle nur auf graphische Anwendungen ausgelegt,<br />
was eine Verwendung in anderen Anwendungsbereichen erschwerte. Dennoch<br />
wurde der Einsatz von GPUs für parallele Berechnungen immer mehr zu einer<br />
gängigen Praxis. Grafikkarten verfügen <strong>über</strong> eine parallele Many-Core Architektur,<br />
bei der jeder Grafikkern tausende von Threads gleichzeitig ausführen<br />
kann (Siehe auch Kapitel 2.5). Mit der Entwicklung von CUDA konnte NVI-<br />
DIA den Markt für seine Produkte erweitern. Anwendbar ist die API auf<br />
viele Karten der GeForce und Quadro Serie, sowie für alle Tesla Karten. Tesla<br />
Karten sind Streamprozessoren, welche für den Einsatz als Co-Prozessor<br />
entwickelt wurden und nicht <strong>über</strong> Monitoranschlüsse verfügen (Siehe [13])<br />
CUDA ermöglicht mit C for CUDA einen leichten Einstieg in die Programmentwicklung,<br />
da es sich um die relativ bekannte Programmiersprache C mit