Writing GPU kernel code which optimally exploits parallelism and the GPU architecture is the most challenging and time-consuming aspect of GPU software development. Programmers have to identify algorithms suitable for parallelization and while implementing them reason about deadlocks, synchronization, race conditions, shared memory layout, plurality of state, granularity, throughput, latency and memory bottlenecks.
New languages and tools to increase the productivity in GPU software development, whilst at the same time retaining the full flexibility of the underlying programming models such as CUDA or OpenCL, are thus of tremendous value.
In this talk we give an introduction to our high productivity GPU development tool chain Alea based on F#. We show how GPU scripting, dynamic compilation and unique features of the F# language can be leveraged to reduce the development time of reusable libraries of parallel primitives and core numerical algorithms.
The aim of the talk is to give an overview of more productive alternatives to CUDA C/C++ or OpenCL C++, in particular:
- Explore new GPU algorithms interactively
- Write GPU code in a more programmer friendly environment that runs as fast as highly optimized CUDA C/C++ or OpenCL C++
- Profit from first class tools to improve productivity
- Build more flexible applications than statically compiled applications
- Use Alea for large commercial GPU application development
- People who have performance problems and want to address them with GPU acceleration.
- Software developers eager to use modern languages and tool chains combined with modern GPU hardware acceleration technology.
Daniel Egloff is partner at InCube and founder of QuantAlea, a software company specialized in quantitative methods and high performance computing for the financial industry. Over the past years he has become a well-known expert in GPU computing and parallel algorithms. He successfully applied GPUs in productive systems for derivative pricing, risk calculations and statistical analysis. Before setting up QuantAlea he spent more than fifteen years in the financial service industry, working in derivative pricing, risk management, and high performance computing. He studied mathematics, theoretical physics and computer science at the University of Zurich and the ETH Zurich, and has a PhD in mathematics from the University of Fribourg, Switzerland.