Difference between revisions of "Cf4ocl"

From Free Software Directory
Jump to: navigation, search
(Update to version 2.0.0 beta 1)
(Update for version 2.1.0)
 
(4 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 C99 object-oriented framework for developing and benchmarking OpenCL projects in C/C++. It aims to:
+
|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/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/FakenMC/cf4ocl.git
+
|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. The latest HTML documentation is available at http://fakenmc.github.io/cf4ocl/docs/latest/.
+
|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.0.0
+
|Version identifier=2.1.0
|Version date=2014/10/13
+
|Version date=2016/07/04
|Version status=beta
+
|Version status=stable
|Version download=https://github.com/FakenMC/cf4ocl/archive/v2.0.0-beta.1.tar.gz
+
|Version download=https://github.com/fakenmc/cf4ocl/archive/v2.1.0.tar.gz
|Version comment=Beta 1.
+
|Version comment=## New features
 +
 
 +
* 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
 
}}
 
}}
 
{{Project license
 
{{Project license
|License=LGPLv3
+
|License=LGPLv3orlater
 
|License copyright=Copyright 2013 Nuno Fachada
 
|License copyright=Copyright 2013 Nuno Fachada
|License verified by=Bencook
+
|License verified by=Jgay
|License verified date=2013/11/15
+
|License verified date=2014/10/17
 
|License note=Library code
 
|License note=Library code
 
}}
 
}}
 
{{Project license
 
{{Project license
|License=GPLv3
+
|License=GPLv3orlater
 
|License copyright=Copyright 2013 Nuno Fachada
 
|License copyright=Copyright 2013 Nuno Fachada
|License verified by=Bencook
+
|License verified by=Jgay
|License verified date=2013/11/15
+
|License verified date=2014/10/17
 
|License note=Remaining code
 
|License note=Remaining code
 
}}
 
}}
Line 56: Line 95:
 
|Program-build-automation=make-related
 
|Program-build-automation=make-related
 
|Programming-language=C
 
|Programming-language=C
|Software-development=program-build-automation, version-control
+
|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 62: Line 102:
 
{{Software prerequisite
 
{{Software prerequisite
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
|Prerequisite description=GLib 2.23+
+
|Prerequisite description=GLib 2.32+
 
}}
 
}}
 
{{Software prerequisite
 
{{Software prerequisite
 
|Prerequisite kind=Required to build
 
|Prerequisite kind=Required to build
|Prerequisite description=GLib 2.23+
+
|Prerequisite description=GLib 2.32+
 
}}
 
}}
 
{{Software prerequisite
 
{{Software prerequisite

Latest revision as of 12:34, 5 July 2016

[edit]

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

Documentation

Documentation can be generated with Doxygen in HTML, Latex, PDF and man pages format. Latest HTML documentation.

Extension or Plugin

This package can be used as an extension, plugin, or add-on to:





Licensing

License

Verified by

Verified on

Notes

Verified by

Jgay

Verified on

17 October 2014

Notes

Library code

Verified by

Jgay

Verified on

17 October 2014

Notes

Remaining code




Leaders and contributors

Contact(s)Role
Nuno Fachada Author


Resources and communication

Software prerequisites

KindDescription
Required to useGLib 2.32+
Required to buildGLib 2.32+
Required to useOpenCL 1.0
Required to buildOpenCL 1.0

This entry (in part or in whole) was last reviewed on 5 July 2016.



Entry







Property "Submitted by" (as page type) with input value "{{{Submitted by}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process.
"{{{Submitted date}}}" contains an extrinsic dash or other characters that are invalid for a date interpretation.













"Author" is not in the list (Maintainer, Contributor, Developer, Sponsor, Unknown) of allowed values for the "Role" property.
















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.