Ableitungsberechnung auf GPUs mit Matlab

Bachelorarbeit

Automatisches Differenzieren[1] (AD) ist eine Methode, numerische Programme automatisiert so zu modifizieren, dass die Ableitungen der ursprünglichen Berechnungen effizient bestimmt werden können. Das Werkzeug ADiMat (Automatisches Differenzieren für Matlab) wird am Fachgebiet SC entwickelt und ermöglicht AD von Matlab-Funktionen. Es beinhaltet zwei verschiedene Implementierung des Vorwärtsmodus und eine Implementierung des Rückwärtsmodus von AD.

Insbesondere im Vorwärtsmodus ist es oft von Interesse zahlreiche Richtungsableitungen gleichzeitig zu berechnen. Die Laufzeit des mit AD erstellten Programms steigt linear mit der Anzahl der Richtungsableitungen. Der Einsatz von Parallelverarbeitung bei der Berechnung der Richtungsableitungen liegt nahe. Da die Ableitungsberechnung sich in vielen Fällen als Folge von (Matrix-)Multiplikationen darstellt, ist auch der Einsatz von GPUs denkbar.

Forschungsziel

Im Rahmen dieser Arbeit sollen das Werkzeug ADiMat um Ableitungsberechnungen auf GPUs erweitert werden.

Forschungsmethode

Dazu wird eine bestehende Implementierung des Vorwärtsmodus so modifiziert, dass Richtungsableitungen mittels der Parallel Computing Toolbox von Matlab, oder einer anderen geeigneten Toolbox, massiv-parallel auf GPUs berechnet werden können[2,3]. Die mögliche Leistungssteigerung ist anhand von Fallbeispielen zu evaluieren. Ggfs. kann auch die Berechnung von univariaten Taylorreihen testweise auf der GPU implementiert und evaluiert werden.

Publikationen

  • Richard D. Neidinger: Introduction to Automatic Differentiation and MATLAB Object-Oriented Programming. 2010, SIAM Review, Vol. 52, No. 3, pp. 545—563
  • N.L. Parrish: Accelerating Lambert’s Problem on the GPU in MATLAB. 2012, California Polytechnic State University

Bemerkungen

Dieses Thema kann sowohl als Bachelor- als auch als Master-Arbeit bearbeitet werden.