opencl_core/
lib.rs

1///
2/// The OpenCL implementation is thread-safe for API calls that create,
3/// retain and release objects such as a context, command-queue, program,
4/// kernel and memory objects. OpenCL API calls that queue commands to a
5/// command-queue or change the state of OpenCL objects such as command-queue
6/// objects, memory objects, program and kernel objects are not thread-safe.
7
8#[allow(unused_imports)]
9#[macro_use]
10extern crate log;
11
12// #[macro_use] extern crate lazy_static;
13
14// #[macro_use] extern crate bitflags;
15
16#[macro_use]
17extern crate failure;
18
19#[cfg(test)]
20#[macro_use]
21mod testing;
22
23// macros are in there keep it before dependent modules. order matters.
24#[macro_use]
25mod macros;
26
27// pub mod utils;
28
29pub extern crate open_cl_low_level;
30pub extern crate open_cl_sys as ffi;
31
32pub use open_cl_low_level as ll;
33
34extern crate num;
35
36pub mod buffer;
37pub mod command_queue;
38pub mod context;
39pub mod device;
40pub mod kernel;
41pub mod platform;
42pub mod program;
43pub mod session;
44
45#[cfg(test)]
46mod tests;
47
48pub use buffer::Buffer;
49pub use command_queue::CommandQueue;
50pub use context::Context;
51pub use device::Device;
52pub use kernel::{Kernel, KernelOpArg, KernelOperation};
53pub use platform::Platform;
54pub use program::{Program, UnbuiltProgram};
55pub use session::Session;
56
57pub use ll::{
58    BufferCreator, ClNumber, CommandQueueOptions, CommandQueueProperties, DeviceType, Error,
59    HostAccess, KernelAccess, MemConfig, MemLocation, MutVecOrSlice, Output, VecOrSlice, Waitlist,
60    Work, NumberType, NumberTyped, NumberTypedT,
61};