Description

ViennaCL has three computing backends: One based on CUDA, one based on OpenCL, and one based on OpenMP. While the CUDA and OpenCL backends provide high performance, this is not yet the case with the OpenMP backend. Although the OpenMP-backend was initially introduced as a fall-back mechanism for CPU-only systems, it is now mature enough to be tuned for high performance. The student will tune the individual linear algebra kernels (vector operations, matrix-vector products, etc.) for best performance.

Benefit for the Student

Squeezing the last bit of performance out of recent hardware is a lot of fun. :-)
Also, the student will learn a lot about how multi-core CPUs really work and the many tricks needed to get good performance.

Benefit for the Project

Certain algorithms cannot be implemented efficiently on CPUs with only OpenCL, so having an efficient OpenMP compute backend available will be an enabler for many high-performance implementations both within ViennaCL and derived by our users.

Requirements

Moderate C or C++ skills are required. Experience in using OpenMP is a plus.

Mentors

Karl Rupp, Philippe Tillet

Contact

Mentors are regularly around in our GSoC IRC channel #TU-CSE-SoC at irc.freenode.net. You can also reach us via the mailinglist – send an email to This email address is being protected from spambots. You need JavaScript enabled to view it. using the prefix [ViennaCL] (a subscription is required).

More information

http://www.iue.tuwien.ac.at/cse/wiki2014/doku.php?id=tuning_the_openmp_backend