GPU Performance: Neptun Wave Fall 2018 Devices
5. 9. 2018

Killian Keller

Neptun Hardware

The new semester is about to start and once again, thousands of new students flock into universities and technical colleges. Generally,, studies in non-technical universities do not require a lot of computing power, whereas technical universities often have high requirements on computer hardware and speed of the system. Students acquiring new computers are confronted with the decision if they should buy a more powerful model with a graphics card or a more lightweight model without the additional computing power. This text aims to help this decision by showing examples of GPU-speedups in terms of computation time.

Before deciding anything, it is often a good idea to listen to the recommendations of your university regarding the computational power of your mobile device. The next thing you should ask yourself is whether you really are going to use the GPU. A laptop does not automatically push your workload into the GPU in many scientific workloads, so you will either have to configure your simulation/CAD environment or explicitly tell your program to do so. We covered the basics how to do so in a previous blog article [1].

Simulations in MATLAB

To see some real-world examples of how a GPU can speed up computations in comparison to a CPU, we did a small survey on the computers selling in the Fall Wave of Projekt Neptun. You will see that not every program benefits from a speed-boost when run on a GPU. In general, we can say that only highly parallelizable programs benefit from execution on a GPU.

The two programs I created to compare the speed of custom calculations on the GPU to the one of a CPU are simulations coded on the MATLAB environment, developed by the company MathWorks. It is a great and versatile platform which allows easy programming on the CPU or on the GPU, where programming on the GPU is made much easier using the CUDA framework provided by the company NVidia. While CUDA does not support AMD graphic cards, all the examples shown can be translated into OpenCL or similar frameworks to support AMD GPUs.

The first simulation solves an eigenvalue-problem [2] of a 1D-finite-differences grid [3]. This is one of the simplest simulations possible. While it is very simple, the eigenvalue decomposition is an algorithm which is not parallelizable. This results in faster calculations on the CPU rather than on the GPU, visible from the graph below (Figure 1). On the graph, the horizontal axis is marked with the platform where the calculation was performed (e.g. P52 with GPU). The vertical axis indicates the time used on average (the smaller the better).

Figure 1: Computational time of an eigenvalue problem on different configurations. The horizontal axis indicates the configurations used and the vertical axis indicates the time. The less the better. As this problem does not run well on GPUs, CPUs generally have the upper hand in this kind of computation.

The next simulation solves a linear system of equations using a LU decomposition [4]. These simulations are a little bit more complicated to set up. However, the LU decomposition is highly parallelizable and we should see a significant decrease in computational duration for calculations on the GPU. This is also confirmed in the graph below (figure 2).

Figure 2: Computational time of solving a system of linear equations prepared with a LU decomposition on different configurations. The horizontal axis indicates the configurations used and the vertical axis indicates the time. The less the better.

Rendering in Blender

For the next test, we used the open-source 3D-modeling software Blender to analyze the performance of the devices while working with 3D models. Graph 3 shows the rendering times for a test file for Blender. The test file consists of two high-definition models of BMWs created by the Blender team and is available for download from their site (bmw27). We again have the comparison between the GPU-enhanced rendering times and the CPU rendering times. In this plot, a smaller number means better performance.

 

 

Figure 3: Computational time of a rendering operation in blender of the file bmw27 under different configurations. The horizontal axis indicates the configuration used and the vertical axis indicates the used time. Sample size is one due to long durations of the rendering process. As before, less is better.

Conclusion

To draw a conclusion out of this report, we can say that while for rendering and 3D applications, a GPU is always beneficial. For general purpose programming, we have to decide case-by-case if a benefit can be drawn from the use of a GPU. When working with highly parallelizable programs, like for AI-development, machine learning, data mining, and in some simulations, a GPU can be of great benefit and yield a great increase in productivity. So, if you plan to work or study in such a field, a GPU might be a good idea. Furthermore, if your institution recommends a certain configuration, it is always a good idea to follow this advice.

[1] https://www.projektneptun.ch/en/blog/read/Programming%20on%20GPUs

[2] https://ch.mathworks.com/help/matlab/ref/eig.html

[3] https://en.wikipedia.org/wiki/Finite_difference_method

[4] https://ch.mathworks.com/help/matlab/ref/lu.html

Jobs available!

We are looking for a working student as Deputy Support Coordinator (50-60%). You can find more details about the position here. Apply now or share the job description with your friends!

Order Information

You can track the order status of your laptop in our distribution partner's customer account. You can find information on this in the FAQ.

Help Point : Please book an appointment

Our support staff at the Help Points ETHZ, Bern vonRoll, UNIBAS and UNILU are there for you. If you need technical support, contact us via email to make an appointment.

Jobs available!

We are looking for a working student as Deputy Support Coordinator (50-60%). You can find more details about the position here. Apply now or share the job description with your friends!

Order Information

You can track the order status of your laptop in our distribution partner's customer account. You can find information on this in the FAQ.

Help Point : Please book an appointment

Our support staff at the Help Points ETHZ, Bern vonRoll, UNIBAS and UNILU are there for you. If you need technical support, contact us via email to make an appointment.

Need Help?