
GPGPU Computing with OpenCL
Bachelorarbeit aus dem Jahr 2013 im Fachbereich Informatik - Programmieren, Note: 1. 0, Fachhochschule Ober sterreich, Hagenberg, Veranstaltung: Software Engineering, Sprache: Deutsch, Abstract: Software Engineering, Sprache: Deutsch Englisch, Beschreibung: Diese Arbeit bietet eine Einführung in die Programmierung für GPUs mit OpenCL.
Nach einem historischen Überblick über die Entwicklung von Grafikkarten werden die Besonderheiten von GPU- und CPU-Hardware diskutiert. Basierend auf diesem Wissen wird OpenCL als API vorgestellt, das alle Arten von Verarbeitungshardware unterstützt. Ein tieferer Einblick in das Ausführungs- und Speichermodell von OpenCL, das den Umgang mit heterogener Hardware ermöglicht, wird durch einen einfachen, aber vollständigen Beispielcode abgerundet.
Die Arbeit wird dann mit mehreren Implementierungen von Standardalgorithmen für die GPU fortgesetzt. Die ausgewählten Probleme beginnen mit der Matrixmultiplikation und gehen über die All-Präfix-Summe und Sortierung.
Da das erste Problem bereits von Natur aus Parallelität bietet, liegt der Schwerpunkt im ersten Implementierungskapitel auf der Leistungsanalyse und -optimierung. Die All-Präfix-Summe und die Sortierung sind beides Probleme, die sich schwieriger in unabhängige Arbeitsteile aufteilen lassen. Es werden Techniken erörtert, um diese Art von Problemen zu bewältigen.
Jede GPU-Implementierung wird einem Benchmarking unterzogen und mit einem oder mehreren traditionellen CPU-Ansätzen verglichen. Da GPUs und CPUs unterschiedliche Hardware-Architekturen haben, wurden geeignete Algorithmen und Optimierungen gewählt, um die Probleme unter bestmöglicher Ausnutzung der zugrunde liegenden Plattform zu lösen.