LIACS assistant professor Ben van Werkhoven leads the development of software for optimising graphics processing units. By now, version 1.0 of ‘Kernel Tuner’ is just around the corner. This milestone shows that the software is ready for serious use.
‘Graphics processing units (GPU) were originally intended for playing video games, but they turned out to be great at performing scientific calculations which is why they are used for all kinds of computationally intensive tasks,’ Van Werkhoven explains. However, manually programming a GPU is a complex and time-consuming task. ‘Kernel Tuner allows you to experiment more efficiently with different versions of your code for these units.’
Outdated hardware
‘You see that software generally lasts much longer than hardware. We have a new computer every three or four years, but computer software is sometimes used for decades,’ says Van Werkhoven. ‘Every time new hardware is available, you have to optimise your software again – sometimes even during a two-year project.’ Kernel Tuner uses optimisation algorithms to try out many different versions of software on GPU hardware. Van Werkhoven: ‘I wanted to automate the process of having to optimise your software over and over again. You see a lot of people still do that by hand.’
Exploring the decision tree faster
Programming a graphics processing unit is an art in and of itself. If you also want to get them to be fast, the software has to efficiently make use of the underlying hardware. ‘There are an awful lot of choices you can make and, in fact, you have to make exactly the right choice if you really want to achieve the optimum,’ Van Werkhoven explains. With Kernel Tuner, it is possible to automate this process and take all possible paths at once, identifying the optimal set of choices. ‘You can think of it as a decision tree that you move through. You can make all kinds of choices, but manually you can only walk one path at a time. With Kernel Tuner, you can explore all the branches of the tree at once.
Widely applicable
Kernel Tuner allows scientists to develop scientific software to perform complex calculations more efficiently. With a team of core developers spread across organisations throughout the Netherlands including the eScience Centre, Leiden University, Centrum Wiskunde & Informatica, Astron Radio Astronomy Institute in Drenthe, Kernel Tuner is being developed. Besides the interest in the software from a research point of view, Kernel Tuner is also practically applied for radio astronomy and meteorology.
Sustainability
‘We can optimise not only in terms of time but also for energy consumption,’ Van Werkhoven points out. Kernel Tuner not only measures the efficiency of different configurations but also calculates how much power they consume. ‘Especially in cooperation with Astron, energy consumption is an important component when developing radio telescopes. The antennas are often placed very far away from civilization on purpose to have as little radio interference as possible. This means that the telescopes are placed somewhere in a meadow where there might not be much power. Especially in that kind of situation, it is important that something like that can be done with little power.’
Finding outliers
The best set of parameters can make a huge difference in terms of speed compared to other configurations. The chances that this outlier had been found by manually adjusting software are slim. Even if this optimal configuration had been found manually, it is time-consuming work that cannot keep up with hardware developments. As soon as a new graphics processing unit is brought to the market, the process can start all over again. Van Werkhoven: ‘That’s where the strength of Kernel Tuner lies: that you can automate this process.’