OpenCL overview, implementation, and performance comparison

High performance parallel computing was something exclusive for expensive specialized hardware some years ago. But now we can find powerful parallel processors in many home graphics card whose interface has been recently opened by many manufacturers for general purpose computing. OpenCL, created by...

Descripción completa

Detalles Bibliográficos
Autores: Fraire, Juan Andres, Ferreyra, Pablo Alejandro, Marques, Carlos Alberto
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2013
País:Argentina
Institución:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositorio:CONICET Digital (CONICET)
Idioma:inglés
OAI Identifier:oai:ri.conicet.gov.ar:11336/25002
Acceso en línea:http://hdl.handle.net/11336/25002
Access Level:acceso abierto
Palabra clave:Heterogeneus
Systems
Paralelism
Computing
https://purl.org/becyt/ford/2.2
https://purl.org/becyt/ford/2
Descripción
Sumario:High performance parallel computing was something exclusive for expensive specialized hardware some years ago. But now we can find powerful parallel processors in many home graphics card whose interface has been recently opened by many manufacturers for general purpose computing. OpenCL, created by the world most important processors manufacturers, went a little further, aiming for a platform and manufacturer independent parallel language. However, understanding this new processing paradigm is challenging and critical for future computation demanding applications. The first approach of this document is to provide a deep technical background of OpenCL architecture. Second, we propose an implementation of a matrix product calculation OpenCL kernel directly implemented in C++ without wrappers so as to describe in detail the OpenCL programming flow. Thirdly, different platforms and algebraic scenarios are created for this program concluding that the improvement of calculation performance can reach up to 3 orders of magnitude over the same algorithm in plain C++.