Difference between revisions of "Cf4ocl"
(Update for version 2.1.0) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
|Name=cf4ocl | |Name=cf4ocl | ||
|Short description=C Framework for OpenCL | |Short description=C Framework for OpenCL | ||
− | |Full description=The C Framework for OpenCL, cf4ocl, is a cross-platform pure | + | |Full description=The C Framework for OpenCL, cf4ocl, is a cross-platform pure C object-oriented framework for developing and benchmarking OpenCL projects. It aims to: |
− | * Promote the rapid development of OpenCL programs in C | + | * Promote the rapid development of OpenCL host programs in C (with support for C++) and avoid the tedious and error-prone boilerplate code usually required. |
− | * Assist in the benchmarking of OpenCL events, such as kernel execution and data transfers. | + | * Assist in the benchmarking of OpenCL events, such as kernel execution and data transfers. Profiling comes for free with cf4ocl. |
* Simplify the analysis of the OpenCL environment and of kernel requirements. | * Simplify the analysis of the OpenCL environment and of kernel requirements. | ||
+ | * Allow for all levels of integration with existing OpenCL code: use as much or as few of cf4ocl required for your project, with full access to the underlying OpenCL objects and functions at all times. | ||
Features: | Features: | ||
* Object-oriented interface to the OpenCL API | * Object-oriented interface to the OpenCL API | ||
− | * New/destroy functions, no direct memory alloc/free | + | * New/destroy functions, no direct memory alloc/free |
− | * Easy (and extensible) device selection | + | * Easy (and extensible) device selection |
− | * Simple event dependency mechanism | + | * Simple event dependency mechanism |
− | * User-friendly error management | + | * User-friendly error management |
− | * OpenCL version independent | + | * OpenCL version and platform independent |
* Integrated profiling | * Integrated profiling | ||
+ | * Advanced device query utility | ||
+ | * Offline kernel compiler and linker | ||
|Homepage URL=http://fakenmc.github.io/cf4ocl/ | |Homepage URL=http://fakenmc.github.io/cf4ocl/ | ||
|User level=advanced | |User level=advanced | ||
− | |VCS checkout command=git clone https://github.com/ | + | |Extension of=OpenCL |
+ | |VCS checkout command=git clone https://github.com/fakenmc/cf4ocl.git | ||
|Computer languages=C, OpenCL | |Computer languages=C, OpenCL | ||
− | |Documentation note=Documentation can be generated with Doxygen in HTML, Latex, PDF and man pages format. | + | |Documentation note=Documentation can be generated with Doxygen in HTML, Latex, PDF and man pages format. [http://www.fakenmc.com/cf4ocl/docs/latest/ Latest HTML documentation]. |
|Keywords=OpenCL | |Keywords=OpenCL | ||
− | |Version identifier=2. | + | |Version identifier=2.1.0 |
− | |Version date= | + | |Version date=2016/07/04 |
− | |Version status= | + | |Version status=stable |
− | |Version download=https://github.com/ | + | |Version download=https://github.com/fakenmc/cf4ocl/archive/v2.1.0.tar.gz |
− | |Version comment= | + | |Version comment=## New features |
− | |Last review by= | + | |
− | |Last review date= | + | * Offline kernel compiler and linker |
+ | * Add silent "by index" device filter and context constructor | ||
+ | * Add OpenCL 2.1 symbols (device information, command names, ...) | ||
+ | |||
+ | ## Bug fixes | ||
+ | |||
+ | * Fix release of device array in dependent filters | ||
+ | * Fix possibly uninitialized context and device in context module | ||
+ | * Fix device selection menu in MSYS | ||
+ | * Fix intermittent segfault in OSX buffer migrate test (issue #9) | ||
+ | * Fix pointer comparison in device selection test for 32-bit platforms | ||
+ | |||
+ | ## Other changes | ||
+ | |||
+ | * Build log not automatically fetched after build/compile/link | ||
+ | * Remove ccl_kerninfo utility (moved functionality to new ccl_c utility) | ||
+ | * Add/build against OpenCL 2.1 headers | ||
+ | * Add tests for the command-line utilities and examples | ||
+ | * Improved error reporting in context and devsel modules | ||
+ | * Add extra debug option for logging creation/destruction of wrapper objects | ||
+ | * Allow to select test device using environment variable | ||
+ | * Add tests-specific log domain | ||
+ | * Set event name to "UNKNOWN" instead of NULL for unknown commands | ||
+ | * Stable API for all OpenCL versions, unsupported operations throw error | ||
+ | * Multiple documentation improvements | ||
+ | * Multiple build improvements in CMake configuration | ||
+ | * Set minimum CMake version to 2.8.3 | ||
+ | * Remove support for building with Visual Studio, improve support for building with MinGW | ||
+ | * Refactor _cf4ocl_ as a self-contained library: | ||
+ | * Remove requirement for direct GLib and OpenCL dependencies from _cf4ocl_ client code | ||
+ | * Hide GLib and OpenCL from _cf4ocl_ from client code unless explicitly required | ||
+ | * Remove error handling macros from public API | ||
+ | |Last review by=Fakenmc | ||
+ | |Last review date=2016/07/05 | ||
|Status= | |Status= | ||
|Is GNU=No | |Is GNU=No | ||
Line 58: | Line 95: | ||
|Program-build-automation=make-related | |Program-build-automation=make-related | ||
|Programming-language=C | |Programming-language=C | ||
− | |Software-development= | + | |Runs-on=Windows, BSD, OS X, Android, GNU/Linux |
+ | |Software-development=static-analysis | ||
|Use=library, software-development | |Use=library, software-development | ||
|Version-control=git | |Version-control=git | ||
Line 64: | Line 102: | ||
{{Software prerequisite | {{Software prerequisite | ||
|Prerequisite kind=Required to use | |Prerequisite kind=Required to use | ||
− | |Prerequisite description=GLib 2. | + | |Prerequisite description=GLib 2.32+ |
}} | }} | ||
{{Software prerequisite | {{Software prerequisite | ||
|Prerequisite kind=Required to build | |Prerequisite kind=Required to build | ||
− | |Prerequisite description=GLib 2. | + | |Prerequisite description=GLib 2.32+ |
}} | }} | ||
{{Software prerequisite | {{Software prerequisite |
Latest revision as of 13:34, 5 July 2016
cf4ocl
http://fakenmc.github.io/cf4ocl/
C Framework for OpenCL
The C Framework for OpenCL, cf4ocl, is a cross-platform pure C object-oriented framework for developing and benchmarking OpenCL projects. It aims to:
- Promote the rapid development of OpenCL host programs in C (with support for C++) and avoid the tedious and error-prone boilerplate code usually required.
- Assist in the benchmarking of OpenCL events, such as kernel execution and data transfers. Profiling comes for free with cf4ocl.
- Simplify the analysis of the OpenCL environment and of kernel requirements.
- Allow for all levels of integration with existing OpenCL code: use as much or as few of cf4ocl required for your project, with full access to the underlying OpenCL objects and functions at all times.
Features:
- Object-oriented interface to the OpenCL API
* New/destroy functions, no direct memory alloc/free * Easy (and extensible) device selection * Simple event dependency mechanism * User-friendly error management
- OpenCL version and platform independent
- Integrated profiling
- Advanced device query utility
- Offline kernel compiler and linker
Licensing
License
Verified by
Verified on
Notes
Leaders and contributors
Contact(s) | Role |
---|---|
Nuno Fachada | Author |
Resources and communication
Software prerequisites
Kind | Description |
---|---|
Required to use | OpenCL 1.0 |
Required to build | GLib 2.32+ |
Required to use | GLib 2.32+ |
Required to build | OpenCL 1.0 |
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.