TL;DR
cf4ocl is a C library that simplifies OpenCL programming by reducing verbosity, providing integrated profiling, and enhancing usability, thereby accelerating development and optimization of heterogeneous compute applications.
Contribution
The paper introduces cf4ocl, a new C library that streamlines OpenCL development with improved features and minimal overhead, compared to direct API usage.
Findings
Simpler implementation of OpenCL applications using cf4ocl
cf4ocl adds valuable features with negligible performance impact
Tools in cf4ocl facilitate application optimization
Abstract
OpenCL is an open standard for parallel programming of heterogeneous compute devices, such as GPUs, CPUs, DSPs or FPGAs. However, the verbosity of its C host API can hinder application development. In this paper we present cf4ocl, a software library for rapid development of OpenCL programs in pure C. It aims to reduce the verbosity of the OpenCL API, offering straightforward memory management, integrated profiling of events (e.g., kernel execution and data transfers), simple but extensible device selection mechanism and user-friendly error management. We compare two versions of a conceptual application example, one based on cf4ocl, the other developed directly with the OpenCL host API. Results show that the former is simpler to implement and offers more features, at the cost of an effectively negligible computational overhead. Additionally, the tools provided with cf4ocl allowed for a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
