| Crates.io | opencl-dynamic-sys |
| lib.rs | opencl-dynamic-sys |
| version | 0.1.1 |
| created_at | 2024-11-12 13:32:29.934301+00 |
| updated_at | 2024-11-12 15:09:17.206693+00 |
| description | Rust library to handle the dynamic load of the OpenCL shared library |
| homepage | https://github.com/passware/opencl-dynamic-sys-rs |
| repository | https://github.com/passware/opencl-dynamic-sys-rs |
| max_upload_size | |
| id | 1444964 |
| size | 259,494 |
Rust library to handle the dynamic load of the OpenCL shared library.
This library in general is a rewritten version of the opencl-sys-rs library. The main difference is a way in which the OpenCL library will be linked to the program: it will be loaded dynamically in the runtime during the first call to the OpenCL API with the help of the dlopen2 library.
If the OpenCL library not found, the error code CL_RUNTIME_LOAD_FAILED = -2000 will be returned.
If the OpenCL library doesn't have some API functions
(such as clCreateBufferWithProperties,
it is v3.0 API function), the error code CL_FUNCTION_NOT_AVAILABLE = -2001 will be returned.
You do not need to install any OpenCL hardware driver(s) to run your code which depends on opencl-dynamic-sys library.
Just include the library in the dependencies section in your Cargo.toml file:
[dependencies]
opencl-dynamic-sys = "0.1"
By default, the OpenCL shared library is searched as follows:
OpenCL.dll/System/Library/Frameworks/OpenCL.framework/OpenCLlibOpenCL.soIf you have the OpenCL shared library in non-standard place, you can use an environment variable OPENCL_DYLIB_PATH
to define where to look for the library (the value of the variable is a comma-separated string):
OPENCL_DYLIB_PATH=/usr/lib/libOpenCL.so;/var/lib/OpenCL;%DESKTOP%/OpenCL.dll
If the OpenCL shared library is found, then the call of opencl-dynamic-sys::is_opencl_runtime_available() will return true.
This library is distributed under the terms of the MIT license, see LICENSE for details.