dynamic_ocl

Crates.iodynamic_ocl
lib.rsdynamic_ocl
version0.1.0-alpha.1
sourcesrc
created_at2020-01-05 19:54:02.476996
updated_at2020-02-23 19:38:18.478773
descriptionDynamically-loaded OpenCL bindings
homepagehttps://github.com/dmarcuse/dynamic_ocl
repositoryhttps://github.com/dmarcuse/dynamic_ocl
max_upload_size
id195488
size180,432
Dana Marcuse (dmarcuse)

documentation

README

dynamic_ocl

Experimental Rust OpenCL bindings, focusing on simplicity and safety. Currently very WIP, requiring Rust 1.41+ (beta toolchain at time of writing).

Features

  • Minimum overhead
  • Support OpenCL versions up to 2.2
  • Provides both direct bindings to the OpenCL C API, and higher level, safer, easier-to-use bindings
    • High level bindings can be disabled with a feature flag to avoid bloat if desired
  • OpenCL library dynamically loaded at runtime, allowing compilation of a single binary with optional OpenCL support and easier cross-compilation.
  • Types are designed with safety in mind, taking advantage of Rust's type system to prevent various types of runtime errors, including:
    • Kernel argument type mismatch
    • Illegal buffer access (e.g. attempting to read from a HOST_NO_ACCESS buffer)
    • Usage of unsafe types with buffers (e.g. types that have invalid bit patterns that could be created by an OpenCL kernel)
Commit count: 32

cargo fmt