{"id":520600,"url":"https://fakenmc.github.io/cf4ocl","last_synced_at":"2025-08-13T05:34:07.476Z","repository":{"id":47551717,"uuid":"11110420","full_name":"nunofachada/cf4ocl","owner":"nunofachada","description":"C Framework for OpenCL","archived":true,"fork":false,"pushed_at":"2024-01-06T19:48:45.000Z","size":3621,"stargazers_count":108,"open_issues_count":20,"forks_count":19,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-08-23T11:36:06.987Z","etag":null,"topics":["c","framework","gpgpu","gpu","hpc","opencl","opencl-api","opencl-objects","scientific-computing","wrapper"],"latest_commit_sha":null,"homepage":"http://nunofachada.github.io/cf4ocl/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nunofachada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-07-01T23:50:51.000Z","updated_at":"2024-06-24T18:08:09.000Z","dependencies_parsed_at":"2024-01-16T04:32:07.122Z","dependency_job_id":"92f594f9-3a57-42b3-a122-208b4c8ab0cb","html_url":"https://github.com/nunofachada/cf4ocl","commit_stats":{"total_commits":1078,"total_committers":9,"mean_commits":"119.77777777777777","dds":0.5435992578849722,"last_synced_commit":"e7f1fd611bfd3ac83bdf69f54a1b51a8716aa1e1"},"previous_names":["fakenmc/cf4ocl"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nunofachada%2Fcf4ocl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nunofachada%2Fcf4ocl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nunofachada%2Fcf4ocl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nunofachada%2Fcf4ocl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nunofachada","download_url":"https://codeload.github.com/nunofachada/cf4ocl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229740832,"owners_count":18117002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","framework","gpgpu","gpu","hpc","opencl","opencl-api","opencl-objects","scientific-computing","wrapper"],"created_at":"2024-01-09T08:08:46.828Z","updated_at":"2024-12-14T18:31:44.763Z","avatar_url":"https://github.com/nunofachada.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![ci](https://github.com/nunofachada/cf4ocl/actions/workflows/main.yml/badge.svg)](https://github.com/nunofachada/cf4ocl/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/nunofachada/cf4ocl/branch/master/graph/badge.svg)](https://codecov.io/gh/nunofachada/cf4ocl)\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/11475/badge.svg)](https://scan.coverity.com/projects/fakenmc-cf4ocl)\n[![Latest release](https://img.shields.io/github/release/nunofachada/cf4ocl.svg)](https://github.com/nunofachada/cf4ocl/releases)\n[![LGPL Licence](https://img.shields.io/badge/license-LGPLv3-yellowgreen.svg)](https://opensource.org/licenses/LGPL-3.0/)\n[![Supported platforms](https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux%20%7C%20bsd-orange.svg)](https://en.wikipedia.org/wiki/Cross-platform)\n\nNews\n====\n\n*6 Jan. 2024*\n\n- This repository is now archived and will not be further developed by the original author. It's hard to make a case for using OpenCL in pure C nowadays, given the existence of excellent wrappers for other programming languages. If someone wants to pick up where I left off, let me know.\n\n*4 July 2016*\n\n- Version 2.1.0 is available for download in the [releases][] page.\n\nSummary\n=======\n\nThe C Framework for OpenCL, _cf4ocl_, is a cross-platform pure C object-oriented\nframework for developing and benchmarking [OpenCL][] projects. It aims to:\n\n1. Promote the rapid development of OpenCL host programs in C (with support for\nC++) and avoid the tedious and error-prone boilerplate code usually required.\n1. Assist in the benchmarking of OpenCL events, such as kernel execution and\ndata transfers. Profiling comes for **free** with _cf4ocl_.\n1. Simplify the analysis of the OpenCL environment and of kernel requirements.\n2. Allow for all levels of integration with existing OpenCL code: use as much or\nas few of _cf4ocl_ required for your project, with full access to the underlying\nOpenCL objects and functions at all times.\n\nFeatures\n========\n\n* Object-oriented interface to the OpenCL API\n  * New/destroy functions, no direct memory alloc/free\n  * Easy (and extensible) device selection\n  * Simple event dependency mechanism\n  * User-friendly error management\n* OpenCL version and platform independent\n* Integrated profiling\n* Advanced device query utility\n* Offline kernel compiler and linker\n\nDocumentation\n=============\n\n* [User guide and API](http://www.fakenmc.com/cf4ocl/docs/latest/)\n* [Tutorial](http://www.fakenmc.com/cf4ocl/docs/latest/tut.html)\n* [Wiki](https://github.com/nunofachada/cf4ocl/wiki)\n* [Utilities](http://www.fakenmc.com/cf4ocl/docs/latest/utils.html)\n* [Function list](http://www.fakenmc.com/cf4ocl/docs/latest/funlist.html)\n* [Library modules](http://www.fakenmc.com/cf4ocl/docs/latest/modules.html)\n* [Examples](http://www.fakenmc.com/cf4ocl/docs/latest/examples.html)\n\nFeedback and collaboration\n==========================\n\nDownload or clone _cf4ocl_,\n[build and install it](https://github.com/nunofachada/cf4ocl/wiki/Build-and-install-from-source),\nand [code](https://github.com/nunofachada/cf4ocl/wiki/Using-cf4ocl-in-a-new-project)\na small example, such as the one below, which shows a clean and fast way to\ncreate an OpenCL context with a user-selected device:\n\n```c\n#include \u003ccf4ocl2.h\u003e\nint main() {\n\n    /* Variables. */\n    CCLContext * ctx = NULL;\n\n    /* Code. */\n    ctx = ccl_context_new_from_menu(NULL);\n    if (ctx == NULL) exit(-1);\n\n    /* Destroy context wrapper. */\n    ccl_context_destroy(ctx);\n\n    return 0;\n}\n```\n\nIf you like this project and want to contribute, take a look at the existing\n[issues][]. We also need help with [binary packaging][] for different OSes.\nOther improvements or suggestions are of course, welcome. We appreciate any\nfeedback.\n\nNot yet integrated\n==================\n\nA few OpenCL API calls, most of which introduced with OpenCL 2.1, are\n[not yet integrated][enhancements] with _cf4ocl_. However, this functionality is\nstill available to client code, because _cf4ocl_ can be used simultaneously with\nraw OpenCL objects and functions.\n\nReference\n=========\n\n* Fachada, N., Lopes, V.V., Martins, R.C., Rosa, A.C., (2017)\ncf4ocl: A C framework for OpenCL,\n[Science of Computer Programming](https://www.journals.elsevier.com/science-of-computer-programming),\n143:9–19, http://www.sciencedirect.com/science/article/pii/S0167642317300540\n([arXiv preprint](https://arxiv.org/abs/1609.01257))\n\nLicense\n=======\n\nLibrary code is licensed under [LGPLv3][], while the remaining code\n(utilities, examples and tests) is licensed under [GPLv3][].\n\nOther useful C frameworks/utilities for OpenCL\n==============================================\n\nIf _cf4ocl_ does not meet your requirements, take a look at the following\nprojects:\n\n* [Simple OpenCL][]\n* [The OpenCL utility library][]\n* [OCL-MLA][]\n* [oclkit][]\n* [hiCL][]\n* [ocl-ke][]\n\n[releases]: https://github.com/nunofachada/cf4ocl/releases\n[OpenCL]: http://www.khronos.org/opencl/ \"OpenCL\"\n[LGPLv3]: http://www.gnu.org/licenses/lgpl.html \"LGPLv3\"\n[GPLv3]: http://www.gnu.org/licenses/gpl.html \"GPLv3\"\n[Wiki]: https://github.com/nunofachada/cf4ocl/wiki\n[enhancements]: https://github.com/nunofachada/cf4ocl/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement\n[issues]: https://github.com/nunofachada/cf4ocl/issues \"issues\"\n[binary packaging]: https://github.com/nunofachada/cf4ocl/wiki/Install-the-binaries\n[Simple OpenCL]: https://github.com/morousg/simple-opencl \"Simple OpenCL\"\n[The OpenCL utility library]: https://github.com/Oblomov/CLU \"The OpenCL utility library\"\n[OCL-MLA]: http://tuxfan.github.io/ocl-mla/ \"OCL-MLA\"\n[oclkit]: https://github.com/matze/oclkit \"oclkit\"\n[hiCL]: https://github.com/issamsaid/hiCL \"high level OpenCL abstraction layer for scientific computing\"\n[ocl-ke]: https://github.com/anyc/ocl-ke \"OpenCL kernel extractor\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/fakenmc.github.io%2Fcf4ocl","html_url":"https://awesome.ecosyste.ms/projects/fakenmc.github.io%2Fcf4ocl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/fakenmc.github.io%2Fcf4ocl/lists"}