GPU Computing - Know When to Use It

I recently attended the first TechTalk of Telekom' DeveloperGarden in Berlin. It was about GPU computing, a topic that relates to GPU-based image scaling as Apache module. The speaker, Guido Juckeland, is a heavy user of GPU computing and works at The Center for Information Services and High Performance Computing at the Dresden Technical University.

The talk was quite interesting for GPU computing newbies like me. It gave a solid overview and showed the different programming styles that can be used (CUDA and OpenCL). It conveyed a lot of best practice with regard to GPU computing and several important points to consider before starting.

The most important aspect is to keep the PCIe bottle-neck in mind:  Moving data between the CPU and the GPU is very slow compared to moving it between the main memory and the CPU or the GPU and its memory. Therefore, in most cases it is not efficient to offload a computation to the GPU if the data is used only once. The speedup of the GPU-based calculation always needs to make up for the extra tansfer time needed for copying the data to the GPU and the results back from the GPU.

The second part of the talk showcased the current project that Guido is working on: A GPU-based simulation of a laser pulse passing a cloud of hydrogen molecules.

The event was hosted at the C-Base in Berlin and it even was non-smoking for the evening. There where about 50 attendants and it was a good start of the DevelopGarden TechTalk series in Berlin.
The next TechTalk will be on November, 24th and I will be speaking about DevOps at ImmobilienScout24.

Additional Links: