User Tools

Site Tools


viennacl-projects-2015

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

viennacl-projects-2015 [2015/03/03 22:10]
viennastar created
viennacl-projects-2015 [2015/03/03 22:30] (current)
viennastar formulated five projects for ViennaCL
Line 1: Line 1:
-test+ 
 + 
 +===== ViennaCL: Improving the Benchmark GUI ===== 
 + 
 +=== Description === 
 +ViennaCLBench is a GUI-based benchmark on top of ViennaCL, which was a successful GSoC project in 2014. Important improvements we hope you to come up with are a tighter integration of the Matrix-Market browser into the GUI,  additional ​test cases like iterative solvers, and an export of results to files. 
 + 
 +=== 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 Qt and C++ as well as the pitfalls of massively parallel hardware. 
 + 
 +=== Benefit for the Project === 
 +A nice benchmarking GUI will help us with collecting performance data from new hardware quickly. 
 +Since it is impossible for us to buy each of the many models of the market, such a benchmarking application will help us in getting valuable data. 
 +  
 +=== Requirements === 
 +Experience in GUI programming with Qt is a plus. Moderate C++ skills are required. 
 + 
 +=== Mentors === 
 +Karl Rupp, Namik Karovic 
 + 
 + 
 + 
 + 
 + 
 +===== ViennaCL: Improving the PyViennaCL Python Wrapper ===== 
 + 
 +=== Description === 
 +During GSoC 2013 the Python-wrapper PyViennaCL for the linear algebra library ViennaCL was created, which was subsequently improved in 2014. Still, there is plenty room for further improvement as well as an integration of recently added functionality in ViennaCL. The aim of the project is to speed up the build process of PyViennaCL and to include the latest features offered by ViennaCL. 
 + 
 +=== Benefit for the Student === 
 +The student will work on the boundary between C++ and Python, thus learning a lot about the strengths and limits of both languages. 
 + 
 +=== Benefit for the Project === 
 +A Python wrapper will make the rich functionality in ViennaCL available to a wide range of scientists using Python for their everyday projects. 
 + 
 +=== Requirements === 
 +A solid understanding of both C++ and Python is required. Ideally, the student has some experience with working with shared libraries on multiple platforms, particularly Windows and Linux. 
 + 
 +=== Mentors === 
 +Karl Rupp, Andreas Morhammer 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== ViennaCL: Target-Specific Tuning on Mobile (Smartphone and Tablet) Hardware ===== 
 + 
 +=== Description === 
 +The linear algebra routines in ViennaCL are primarily optimized for discrete GPUs from AMD and NVIDIA. However, OpenCL has also made significant progress on mobile hardware recently. 
 +The aim of this project is to optimize our routines for mobile GPUs from Qualcomm, ARM, and NVIDIA (Tegra). 
 + 
 +=== Benefit for the Student === 
 +The student will learn the subtle differences between mobile hardware and desktop hardware. He or she will get precious hands-on experience with latest mobile hardware. 
 + 
 +=== Benefit for the Project === 
 +The performance in ViennaCL becomes more portable, so that the user can rely on high performance irrespective of the underlying hardware. 
 + 
 +=== Requirements === 
 +Solid Linux knowledge and basic knowledge of C and C++ is a must. Experience with single board computers such as the Rasperry Pi is a plus. 
 + 
 +=== Mentors === 
 +Karl Rupp, TBD 
 + 
 + 
 + 
 + 
 +===== ViennaCL: Optimization of the OpenMP backend ===== 
 + 
 +=== 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, TBD 
 + 
 + 
 + 
 + 
 + 
 +===== ViennaCL: Automated Nightly Benchmark Suite ===== 
 + 
 +=== Description === 
 +We have got an extensive nightly test suite for ViennaCL, which verifies correct execution. However, we do not have a way to quickly catch performance regressions. The aim of this project is to set up a system which automatically benchmarks the routines available in ViennaCL, visually prepares them through HTML pages, and archives them. 
 + 
 +=== Benefit for the Student === 
 +The student will get in touch with a lot of different hardware and gain a deep understanding of how much computational power modern hardware is able to deliver. 
 + 
 +=== Benefit for the Project === 
 +Time-consuming manual checks of the performance before each release gets replaced by automated checks, thus improving the overall development efficiency substantially. 
 + 
 +=== Requirements === 
 +Moderate C or C++ skills are required. Experience with Linux and a scripting language (e.g. Python) is a plus. 
 + 
 +=== Mentors === 
 +Karl Rupp, TBD 
 + 
 + 
 + 
viennacl-projects-2015.txt · Last modified: 2015/03/03 22:30 by viennastar