viennacl stlDescription

The C++ Standard Template Library (STL) defines a set of basic algorithms such as sort().
Such functionality is, where reasonable, provided for NVIDIA GPUs with thrust, but there is no extensive and independent implementation available in OpenCL. Thus, the goal of this project is to implement some of the most popular algorithms from the C++ STL for GPUs in ViennaCL.

Benefit for the Student

Fame and glory! :-) Invaluable experience in programming a robust high-level interface for targeting CPUs and GPUs on the low level will be gained.

Benefit for the Project

Providing efficient STL-type functionality will enable a lot of additional algorithms with portable performance to be added to ViennaCL in the future. In addition, users can easily compose operations not natively provided by the library.


Advanced knowledge of C++ is essential, including familiarity with meta-programming techniques. Experience with GPU programming is a plus.


Karl Rupp, Philippe Tillet


Mentors are regularly around in our GSoC IRC channel #TU-CSE-SoC at 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