Crate ocl

source ·
Expand description

§ | GitHub

Rust implementation of the OpenCL™ API.

Some versions of this documentation are built from development branches and may differ slightly between what is on and the master branch. See the repo page for links to both versions.

Please report unclear documentation or places where examples would be appreciated by filing an issue.


For lower level interfaces and to use OpenCL features that have not yet been implemented on the standard (high-level) interface types, see the ocl-core and cl-sys crates.

§Help Wanted

Please request or help complete any functionality you may need by filing an issue or creating a pull request.

Keep an eye out for places where examples would be useful and let us know!

§Feedback appreciated

Suggestions and nitpicks are most welcome. Don’t hesitate to file an issue just to offer constructive criticism.

*“`OpenCL` and the `OpenCL` logo are trademarks of Apple Inc. used by permission by Khronos.”*



  • Types related to futures and asynchrony.
  • Builders and associated settings-related types.
  • Enumerators for settings and information requests.
  • Standard error type for ocl futures.
  • Bitflags for various parameter types.
  • OpenCL scalar and vector primitive types.
  • Commonly used traits.


  • A chunk of memory physically located on a device, such as a GPU.
  • A context for a particular platform and set of device types.
  • An individual device identifier (an OpenCL device_id).
  • An event representing a command or user created event.
  • A list of events for coordinating enqueued commands.
  • A list of events for coordinating enqueued commands.
  • Extensions of a platform.
  • A section of device memory which represents one or many images.
  • A kernel which represents a ‘procedure’.
  • A platform identifier.
  • An all-in-one chimera of the Program, Queue, Context and (optionally) SpatialDims types.
  • A program from which kernels can be created from.
  • A command queue which manages all actions taken on kernels, buffers, and images.
  • An image sampler used to process images.