DocumentCode
24745
Title
OpenCL Overview, Implementation, and Performance Comparison
Author
Fraire, Juan A. ; Ferreyra, P. ; Marques, C.
Author_Institution
Univ. Nac. de Cordoba, Cordoba, Argentina
Volume
11
Issue
1
fYear
2013
fDate
Feb. 2013
Firstpage
274
Lastpage
280
Abstract
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++.
Keywords
C++ language; parallel languages; C++; OpenCL architecture; OpenCL implementation; OpenCL overview; OpenCL programming flow; general purpose computing; high performance parallel computing; home graphics card; matrix product calculation OpenCL kernel; parallel language; parallel processors; performance comparison; Computational modeling; Graphics processing units; Kernel; Parallel processing; Random access memory; Silicon compounds; general purpose computing; heterogeneous systems; parallelism;
fLanguage
English
Journal_Title
Latin America Transactions, IEEE (Revista IEEE America Latina)
Publisher
ieee
ISSN
1548-0992
Type
jour
DOI
10.1109/TLA.2013.6502816
Filename
6502816
Link To Document