The KernelGen project aims to develop Fortran and C compilers based on the state-of-art open-source technologies for automatic GPU kernels generation from unmodified CPU source code, significantly improving the code porting experiences. Parallelism detection is based on LLVM/Polly and CLooG extended with mapping of loops onto GPU compute grid, and assisted with runtime alias analysis. PTX assembly code is generated with NVPTX backend. Thanks to integration with GCC frontend by means of DragonEgg plugin, and customized linker, KernelGen is able to compile complex applications into GPU-enabled binaries. The session will consist of three parts: the KernelGen programming model and its motivation, an overview of compiler design based on frontend-LLVM-NVPTX chain, and the end-user look onto performance results both for small tests (in comparison to OpenACC compilers), and for complex applications with large portion of parallelizable PDE stencil codes: WRF and COSMO models. Presented by Dmitry Mikushin (Doctoral assistant, University of Lugano), Nikolay Likhogrud (Engineer, Applied Parallel Computing LLC), Sergey Kovylov (Tesla & Quadro Solution Architect, Russia & CIS, NVIDIA).
In this seminar we will present our experience with porting 200K line Fortran codebase onto GPU: SixTrack model - the LHC Accelerator Beam Dynamics. We will present the steps of source code transformation, modifications into crlibm and cernlib, compilation and execution.
In this seminar we will present our experience with porting 200K line Fortran codebase onto GPU: SixTrack model - the LHC Accelerator Beam Dynamics. We present the steps of source code transformation, compilation and execution.