Nielsen, Allan Svejstrup3; Engsig-Karup, Allan Peter4; Dammann, Bernd4
1 Department of Informatics and Mathematical Modeling, Technical University of Denmark2 Scientific Computing, Department of Informatics and Mathematical Modeling, Technical University of Denmark3 unknown4 Department of Applied Mathematics and Computer Science, Technical University of Denmark
This report is intended as a quick introduction to the OpenCL framework and the aim is to facilitate a smooth transfer into the use OpenCL C for developers with previous GPGPU experience. The purpose of OpenCL is to allow for developers to use all compute resources available on a heterogeneous hardware platform. As well as being an introduction to OpenCL, the report also presents an overview of AMD GPU hardware, covering both the VLIW5/4 architectures and the upcoming Graphics-Core-Next architecture which is to form the basis of AMDs future generation GPUs that are to be as capable at compute as they are at graphics. To conclude the presentation of OpenCL as a language for compute, a matrix-matrix multiplication example is devised and optimized for the VLIW4, Tesla and Fermi architectures. The performance is measured as a function of both matrix and work-group size and results are discussed. Where applicable, the equivalent CUDA implementation is tested for comparison.