#ffi #api #opencl #gpu #gpgpu

opencl-api

Actively maintained LTS support, OpenCL type associations for Rust

3 releases

new 0.1.2 Nov 23, 2021
0.1.1 Nov 21, 2021
0.1.0 Nov 21, 2021

#240 in Science

Download history 19/week @ 2021-11-15 35/week @ 2021-11-22

54 downloads per month

MIT/Apache

295KB
5.5K SLoC

⚙️ opencl-rs

N3NX N3NX Crates.io Docs dependency status

OpenCL Collections Library

Library that contains OpenCL APIs, Adapters, FFI headers and related utilities.

This library is intended to support future version of OpenCL while maintaining long term support for Rust.

By Long Term Support, we commit to fix bugs and to actively maintain proper functionality of this library over the years. We also plan to create several milestones for this project to have sustainable development over long period of time.

Features

This library is intended to provide these features alongside of traditional ones.

  1. Compatible with Latest OpenCL Versions (OpenCL 3.0)
  2. Supports Compatiblity with Older and Deprecated APIs for Previous Versions (OpenCL 1.1, 1.2 etc.)
  3. Lightweight Headers and API Objects
  4. Superior Error Handling
  5. Periodic Bug Fix Management
  6. Optimised for High Performance
  7. Ease of Use and Simplicity
  8. Types and Functions Safety

Installation

This library can be installed in two ways.

  1. Precompiled library files (for major platforms), you can download those from the release section of this repository.
  2. Build it yourself (needs cargo installed obviously), instructions are simple: cargo build --release and to test the functions on your platform: cargo test

Upgrading

The N3N follows Semantic Versioning for their projects. There are 3 types of release lifecycle associated with this project, described as below:

  1. Major releases x.0.0 supports the version jump from Khronos OpenCL. Before updating to these versions, be sure to review changelog first.
  2. Minor release 0.x.0 integrates new library features or Khronos OpenCL Header updates. Generally these changes are safe and are non-disruptive to previous releases.
  3. LTS releases 0.0.x supports critical bug fix and patches and are safe to update to these versions without second thought.

Please refer to VENDORING document for more details.

Contribution

N3N Contributor Guidelines

We welcome community contributions to this project.

Please read our Contributor Guide for more information on how to get started. Please also read our Contributor Terms before you make any contributions.

Any contribution intentionally submitted for inclusion in a N3N project or a Knytx Labs open source project, shall comply with the Rust standard licensing model (MIT OR Apache 2.0) and therefore be dual licensed as described below, without any additional terms or conditions:

License

This contribution is dual licensed under EITHER OF

at your option.

For clarity, "your" refers to the N3N contributors, NCRYPTO Labs Private Limited or any other licensee/user of the contribution.

Credits

See CREDITS.md file for heartiest thanks and acknowledgement to other awesome developers out there.

The OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos. Complete license details are available on the Khronos and Apple website.

This project is initiated by Naman Bishnoi @diabloxenon

Dependencies

~0.3–0.8MB
~20K SLoC