https://github.com/clesperanto/clic

GPU-accelerated Image Processing library for C++

https://github.com/clesperanto/clic

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

cpp gpu image-analysis image-processing image-segmentation opencl
Last synced: 5 months ago · JSON representation

Repository

GPU-accelerated Image Processing library for C++

Basic Info
Statistics
  • Stars: 16
  • Watchers: 6
  • Forks: 15
  • Open Issues: 9
  • Releases: 46
Topics
cpp gpu image-analysis image-processing image-segmentation opencl
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

CLIc

Build & test CI-Tests Codecov License GitHub release (latest by date including pre-releases) CppStd OpenCL Website GitHub issues GitHub stars GitHub forks DOI

CLIc is a prototype backend library for CLesperanto - a multi-language framework for GPU-accelerated image processing. It uses the OpenCL kernels originally developped for CLIJ. It currently focussed on running with OpenCL.

The library is used for various user-oriented API libraries: - :snake: pyclesperanto - :coffee: clesperantoj - Fiji plugin - clij3

Usage example

```c++

include "clesperanto.h" // CLIc include

int main( int argc, char** argv) { // Initialisation of clEsperanto with default device cle::BackendManager::getInstance().setBackend(); auto device = cle::BackendManager::getInstance().getBackend().getDevice("", "all");

// host vector to hold input and output
std::vector<float> input (width * height * depth);
std::vector<float> output (input.size());

/*
 * ... fill input with data to process
 */

// push data from host to device
auto gpu_src = cle::Push<float>(input.data(), width, height, depth, device);
// apply filter with parameters
auto gpu_dst = cle::tier1::AddImageAndScalar(device, gpu_src, nullptr, 10);
// pull output from device to host
cle::Pull<float>(gpu_dst, output.data());

return EXIT_SUCCESS;

} ``` See more complete example on usage by looking at the kernels tests.

Documentation

A detail documentation is available at https://clesperanto.github.io/CLIc. If any information is missing or is incorrect, do not hesitate to raise an issue.

Contributing

Contributions are very welcome. Before spending effort on coding and filing a pull-request, please get in touch with us, file an issue, and let's discuss your potential contribution. More information on how to add new kernels to the library can be found in the documentation.

Feedback welcome!

clEsperanto is developed in the open because we believe in the open source community. Feel free to drop feedback as github issue or via image.sc. And if you liked our work, star the repository, share it with your friends, and use it to make cool stuff!

Acknowledgements

We acknowledge support by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy (EXC2068) Cluster of Excellence Physics of Life of TU Dresden. This project has been made possible in part by grant number 2021-237734 (GPU-accelerating Fiji and friends using distributed CLIJ, NEUBIAS-style, EOSS4) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation.

Owner

  • Name: clEsperanto
  • Login: clEsperanto
  • Kind: organization

GPU-accelerated image processing across languages and platforms

GitHub Events

Total
  • Create event: 68
  • Release event: 19
  • Issues event: 26
  • Delete event: 51
  • Issue comment event: 87
  • Push event: 248
  • Pull request review event: 5
  • Pull request review comment event: 4
  • Pull request event: 126
Last Year
  • Create event: 68
  • Release event: 19
  • Issues event: 26
  • Delete event: 51
  • Issue comment event: 87
  • Push event: 248
  • Pull request review event: 5
  • Pull request review comment event: 4
  • Pull request event: 126

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 48
  • Total pull requests: 162
  • Average time to close issues: 26 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 6
  • Total pull request authors: 6
  • Average comments per issue: 1.92
  • Average comments per pull request: 0.88
  • Merged pull requests: 124
  • Bot issues: 2
  • Bot pull requests: 59
Past Year
  • Issues: 21
  • Pull requests: 84
  • Average time to close issues: 9 days
  • Average time to close pull requests: 3 days
  • Issue authors: 5
  • Pull request authors: 5
  • Average comments per issue: 2.57
  • Average comments per pull request: 0.58
  • Merged pull requests: 57
  • Bot issues: 2
  • Bot pull requests: 39
Top Authors
Issue Authors
  • haesleinhuepf (22)
  • StRigaud (21)
  • thawn (2)
  • kevinyamauchi (1)
  • dependabot[bot] (1)
  • pre-commit-ci[bot] (1)
Pull Request Authors
  • StRigaud (91)
  • dependabot[bot] (45)
  • pre-commit-ci[bot] (14)
  • haesleinhuepf (9)
  • thawn (2)
  • tpietzsch (1)
Top Labels
Issue Labels
documentation (5) bug (4) request (4) dependencies (3) low priority (2) ToFix (2) github_actions (1) enhancement (1)
Pull Request Labels
dependencies (45) github_actions (11) bug (1) documentation (1)

Dependencies

.github/workflows/build-test.yml actions
  • Jimver/cuda-toolkit v0.2.10 composite
  • actions/checkout v4 composite
  • actions/setup-python v4.6.1 composite
  • lukka/get-cmake v3.26.4 composite
.github/workflows/tests_and_coverage.yml actions
  • actions/checkout v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/pages.yml actions
  • actions/checkout v4 composite
  • actions/configure-pages v5 composite
  • actions/deploy-pages v4 composite
  • actions/setup-python v5.1.0 composite
  • actions/upload-pages-artifact v3 composite
  • lukka/get-cmake v3.29.0 composite