1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
//! Provides a safe and convenient wrapper around the [CUDA cuDNN][cudnn] API. //! //! This crate was developed against cuDNN v3. //! //! ## Architecture //! //! The `api` folder contains all the low-level functionality. Usually there should be no //! need to use these methods, which are implemented for the [API struct][api], directly. //! All the functionality should be accessible through the high-level structs exposed through //! the modules in the root `src` folder. //! //! The `api` folder is structured like the modules in the root folder and expose safe methods, //! around the cuDNN API - including proper Rust error messages for the cuDNN status types. //! The `ffi.rs` file of the `api` folder contains the foreign function interface of cuDNN. //! //! [cudnn]: https://developer.nvidia.com/cudnn //! [api]: ./struct.API.html #![cfg_attr(lint, feature(plugin))] #![cfg_attr(lint, plugin(clippy))] #![allow(dead_code)] #![deny(missing_docs, missing_debug_implementations, missing_copy_implementations, trivial_casts, trivial_numeric_casts, unused_import_braces, unused_qualifications)] extern crate libc; extern crate cudnn_sys as ffi; pub use ffi::*; pub use self::cudnn::Cudnn; pub use self::error::Error; pub use self::utils::{Direction, ScalParams, IScalParamsDefault}; pub use self::tensor_descriptor::{TensorDescriptor, DataType}; #[derive(Debug, Copy, Clone)] /// Defines the Cuda cuDNN API. pub struct API; mod cudnn; mod error; mod utils; mod tensor_descriptor; mod api;