Current vendor libraries for basic linear algebra operations (BLAS) use a C-style function interface. Even though a high-level approach such as ViennaCL requires much clearer and less error-prone code, the availability of a C-style interface for the various operations will aid potential users who are required to stick with C or Fortran. Also, this would be the first BLAS library with portable high performance on hardware from different vendors.
Benefit for the Student
The student will learn about the challenges of GPU and accelerators programming and how to write and maintain shared libraries for multiple platforms.
Benefit for the Project
ViennaCL will be the first project to offer a low-level BLAS library for GPUs and accelerators explicitly targeting multiple vendors and providing high performance on each of them.
A solid understanding of C and C++ is required. Ideally, the student has some experience with CMake and shared libraries on multiple platforms, particularly Windows and Linux.