Languages Features Creators CSV Resources Challenges Add Language
GitHub icon

OpenCL

OpenCL - Programming language

< >

OpenCL is a programming language created in 2009.

#94on PLDB 14Years Old 3.7kUsers
25Books 46Papers 0Repos

Open Computing Language (OpenCL) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages (based on C99 and C++11) for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism. Read more on Wikipedia...


Example from Linguist:
/* Old-style comment. */ // New-style comment. typedef float foo_t; #ifndef ZERO #define ZERO (0.0) #endif #define FOO(x) ((x) + \ ZERO) __kernel void foo(__global const foo_t * x, __local foo_t y, const uint n) { barrier(CLK_LOCAL_MEM_FENCE); if (n > 42) { *x += y; } }
Example from Wikipedia:
// This kernel computes FFT of length 1024. The 1024 length FFT is decomposed into // calls to a radix 16 function, another radix 16 function and then a radix 4 function __kernel void fft1D_1024 (__global float2 *in, __global float2 *out, __local float *sMemx, __local float *sMemy) { int tid = get_local_id(0); int blockIdx = get_group_id(0) * 1024 + tid; float2 data[16]; // starting index of data to/from global memory in = in + blockIdx; out = out + blockIdx; globalLoads(data, in, 64); // coalesced global reads fftRadix16Pass(data); // in-place radix-16 pass twiddleFactorMul(data, tid, 1024, 0); // local shuffle using local memory localShuffle(data, sMemx, sMemy, tid, (((tid & 15) * 65) + (tid >> 4))); fftRadix16Pass(data); // in-place radix-16 pass twiddleFactorMul(data, tid, 64, 4); // twiddle factor multiplication localShuffle(data, sMemx, sMemy, tid, (((tid >> 4) * 64) + (tid & 15))); // four radix-4 function calls fftRadix4Pass(data); // radix-4 function number 1 fftRadix4Pass(data + 4); // radix-4 function number 2 fftRadix4Pass(data + 8); // radix-4 function number 3 fftRadix4Pass(data + 12); // radix-4 function number 4 // coalesced global writes globalStores(data, out, 64); }

Language features

Feature Supported Token Example
MultiLine Comments ✓ /* */
/* A comment
*/
Comments ✓
// A comment
Line Comments ✓ //
// A comment
Semantic Indentation X

Books about OpenCL on goodreads

title author year reviews ratings rating
OpenCL Programming Guide Aaftab Munshi 2011 0 17 4.00
Heterogeneous Computing with OpenCL Benedict Gaster 2003 0 21 4.05
Heterogeneous Computing with OpenCL: Revised OpenCL 1.2 Edition Benedict Gaster 2012 0 7 3.71
The OpenCL Programming Book Fixstars Corporation 2010 1 1 4.00
Heterogeneous Computing with Opencl 2.0 David R. Kaeli 2014 0 4 3.75
The OpenCL Programming Book Ryoji Tsuchiyama 2010 0 6 3.50
Opencl Programming by Example Ravishekhar Banger 2013 1 1 5.00
Opencl Parallel Programming Development Cookbook Raymond Tay 2013 1 1 4.00
Opencl Programming by Example Ravishekhar Banger 2013 0 0 0.0
Opencl Programming Guide Aaftab Munshi 2011 0 0 0.0
OpenCL Programming by Example Ravishekhar Banger 2013 0 0 0.0

Books about OpenCL from ISBNdb

title authors year publisher
Heterogeneous Computing with OpenCL 2.0 Kaeli, David R. and Mistry, Perhaad and Schaa, Dana and Zhang, Dong Ping 2015 Morgan Kaufmann
OpenCL Programming Guide Munshi, Aaftab 2011 Addison-Wesley Professional
OpenCL Programming by Example Banger, Ravishekhar and Bhattacharyya, Koushik 2013 Packt Publishing
OpenCL Parallel Programming Development Cookbook Tay, Raymond 2013 Packt Publishing
Heterogeneous Computing with OpenCL Benedict Gaster 20110930 Elsevier S & T
Heterogeneous Computing with OpenCL: Revised OpenCL 1.2 Edition Gaster, Benedict and Howes, Lee and Kaeli, David R. and Mistry, Perhaad and Schaa, Dana 2012 Morgan Kaufmann
OpenCL Programming by Example Banger, Ravishekhar and Bhattacharyya, Koushik 2013 Packt Publishing
Heterogeneous Computing with OpenCL 2.0 Kaeli, David R. and Mistry, Perhaad and Schaa, Dana and Zhang, Dong Ping 2015 Morgan Kaufmann
OpenCL Programming Guide (OpenGL) Munshi, Aaftab and Gaster, Benedict and Mattson, Timothy G. and Ginsburg, Dan 2011 Addison-Wesley Professional
OpenCL in Action: How to Accelerate Graphics and Computations Scarpino, Matthew 2011 Manning Publications
Heterogeneous Computing with OpenCL: Revised OpenCL 1.2 Edition Gaster, Benedict and Howes, Lee and Kaeli, David R. and Mistry, Perhaad and Schaa, Dana 2012 Morgan Kaufmann
Heterogeneous Computing with OpenCL Gaster, Benedict and Howes, Lee and Kaeli, David R. and Mistry, Perhaad and Schaa, Dana 2011 Morgan Kaufmann
OpenCL in Action: How to accelerate graphics and computations Scarpino, Matthew 2011 Manning
OpenCL Parallel Programming Development Cookbook Raymond Tay 2013-08-26 Packt Publishing

Publications about OpenCL from Semantic Scholar

title authors year citations influentialCitations
The OpenCL specification A. Munshi 2009 958 97
Portable mapping of data parallel programs to OpenCL for heterogeneous systems Dominik Grewe and Zheng Wang and M. O’Boyle 2013 139 13
clSpMV: A Cross-Platform OpenCL SpMV Framework on GPUs Bor-Yiing Su and K. Keutzer 2012 125 10
Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code Michel Steuwer and Christian Fensch and S. Lindley and Christophe Dubach 2015 117 6
accULL: An OpenACC Implementation with CUDA and OpenCL Support Ruymán Reyes and I. López-Rodríguez and J. Fumero and F. Sande 2012 84 2
HadoopCL: MapReduce on Distributed Heterogeneous Platforms through Seamless Integration of Hadoop and OpenCL M. Grossman and M. Breternitz and Vivek Sarkar 2013 54 6
Portable LDPC Decoding on Multicores Using OpenCL [Applications Corner] G. F. P. Fernandes and V. Silva and L. Sousa and J. Andrade 2012 47 5
Comparative analysis of OpenCL vs. HDL with image-processing kernels on Stratix-V FPGA K. Hill and S. Craciun and A. George and H. Lam 2015 46 2
Exploiting the parallelism of heterogeneous systems using dataflow graphs on top of OpenCL Lars Schor and Andreas Tretter and T. Scherer and L. Thiele 2013 31 4
OpenCL Performance Evaluation on Modern Multi Core CPUs Joo Hwan Lee and Kaushik Patel and Nimit Nigania and Hyojong Kim and Hyesoon Kim 2013 28 4
Boost.Compute: A parallel computing library for C++ based on OpenCL J. Szuppe 2016 24 0
OpenCL - An effective programming model for data parallel computations at the Cell Broadband Engine J. Breitbart and Claudia Fohry 2010 21 2
Implementation of Sobel Edge Detection on FPGA based on OpenCL Baoshan You and W. Sheng and Hongwei Ma and Ye Gu and Yinglin Qin 2017 16 1
Execution of Dataflow Process Networks on OpenCL Platforms Wictor Lund and Sudeep Kanur and Johan Ersfolk and Leonidas Tsiopoulos and J. Lilius and Joakim Haldin and U. Falk 2015 15 0
Evaluating vector data type usage in OpenCL kernels Jianbin Fang and A. Varbanescu and Xiangke Liao and H. Sips 2015 14 0
FCLNN: A Flexible Framework for Fast CNN Prototyping on FPGA with OpenCL and Caffe Xianchao Xu and Brian Liu 2018 13 3
FPGA-based deep-pipelined architecture for FDTD acceleration using OpenCL H. M. Waidyasooriya and M. Hariyama 2016 12 1
Implementation of a performance optimized database join operation on FPGA-GPU platforms using OpenCL Mehdi Roozmeh and L. Lavagno 2017 12 2
A Hybrid Programming Model for Compressible Gas Dynamics Using OpenCL B. Bergen and Marcus G. Daniels and Paul M. Weber 2010 10 0
Automatic OpenCL Task Adaptation for Heterogeneous Architectures Pierre Huchant and M. Counilh and Denis Barthou 2016 8 2
GPU programming for EDA with OpenCL R. Topaloglu and Benedict R. Gaster 2011 7 0
A Heterogeneous Implementation of the Sobel Edge Detection Filter Using OpenCL Theodora Sanida and Argyrios Sideris and M. Dasygenis 2020 7 0
OpenCL-Darknet: An OpenCL Implementation for Object Detection Yongbon Koo and Chayoung You and Sunghoon Kim 2018 5 0
OpenCL Implementation of FPGA-Based Signal Generation and Measurement I. Firmansyah and Y. Yamaguchi 2019 5 1
Is OpenCL Driven Reconfigurable Hardware Suitable for Virtualising 5G Infrastructure? F. Civerchia and M. Pelcat and Luca Maggiani and K. Kondepu and P. Castoldi and L. Valcarenghi 2020 5 0
Parallel Programming in Actor-Based Applications via OpenCL P. Harvey and Kristian Hentschel and J. Sventek 2015 5 0
Implementing and Evaluating OpenCL on an ARMv8 Multi-Core CPU Jianbin Fang and P. Zhang and T. Tang and Chun Huang and Canqun Yang 2017 4 0
Parallel implementation of cryptographic algorithm: AES using OpenCL on GPUs Govardhana Rao Inampudi and K. Shyamala and S. Ramachandram 2018 4 2
A High Performance Parallel Ranking SVM with OpenCL on Multi-core and Many-core Platforms Huming Zhu and Peidao Li and P. Zhang and Zheng Luo 2019 4 0
Design and Preliminary Evaluation of OpenACC Compiler for FPGA with OpenCL and Stream Processing DSL Yutaka Watanabe and Jinpil Lee and K. Sano and T. Boku and M. Sato 2020 4 0
Performance-Power Evaluation of an OpenCL Implementation of the Simplex Growing Algorithm for Hyperspectral Unmixing S. Bernabé and G. Botella and J. Navarro and Carlos Orueta and F. Igual and Manuel Prieto-Matias and A. Plaza 2017 3 0
OpenCL Superpixel Implementation on a General Purpose Multi-core CPU Hana Haseljic and Emir Cogo and Irfan Prazina and Razija Turcinhodzic and E. Buza and Amila Akagic 2018 3 0
Sparse-Matrix Compression Primitives with OpenCL Framework to Support Halide Chao-Lin Lee and Chen-Ting Chao and Jenq-Kuen Lee and Chung-Wen Huang and Ming-Yu Hung 2019 3 0
POCL-R: Distributed OpenCL Runtime for Low Latency Remote Offloading Jan Solanti and Michal Babej and Julius Ikkala and P. Jääskeläinen 2020 3 0
On Coding Techniques for Targeting FPGAs via OpenCL N. Paulino and Luís Reis and João MP Cardoso 2017 2 0
Hierarchical Read/Write Analysis for Pointer-Based OpenCL Programs on RRAM Lin-Ya Yu and Shao-Chung Wang and Jenq-Kuen Lee 2017 2 0
Towards Dynamic Multi-task Schedulling of OpenCL Programs on Emerging CPU-GPU-FPGA Heterogeneous Platforms: A Fuzzy Logic Approach Ahmad Al-Zoubi and K. Tatas and C. Kyriacou 2018 2 0
2D Stencil Computation on Cyclone V SoC FPGA using OpenCL I. Firmansyah and Y. N. Wijayanto and Y. Yamaguchi 2018 2 0
"Effective Implementation of ""Kuznyechik"" Block Cipher on FPGA with OpenCL Platform" A. Korobeynikov 2019 2 0
Mapping a Guided Image Filter on the HARP Reconfigurable Architecture Using OpenCL Thomas Faict and E. D'Hollander and B. Goossens 2019 2 0
Accelerating the AES Algorithm using OpenCL Theodora Sanida and Argyrios Sideris and M. Dasygenis 2020 2 0
Impact of CUDA and OpenCL on Parallel and Distributed Computing A. Asaduzzaman and Alec Trent and S. Osborne and C. Aldershof and F. Sibai 2021 2 0
The C++ for OpenCL Programming Language Anastasia Stulova and N. Hickey and S. V. Haastregt and M. Antognini and Kevin Petit 2020 2 0
Compiler Techniques for Efficient MATLAB to OpenCL Code Generation Luís Reis and João Bispo and João MP Cardoso 2017 1 0
Implementation of a C-V2X Receiver on an Over-the-Air Software-Defined-Radio Platform with OpenCL Ming-Hsuan Lai and T. Chiueh 2018 1 0
Support OpenCL 2.0 Compiler on LLVM for PTX Simulators Chun-Chieh Yang and Shao-Chung Wang and Min-Yih Hsu and Yuan-Ming Chang and Yuan-Shin Hwang and Jenq-Kuen Lee 2019 1 0
smali.html · opencl.html · markdown.html

View source

- Build the next great programming language · Search · Day 209 · About · Blog · Acknowledgements · Traffic · Traffic Today · GitHub · feedback@pldb.com