From aeb8c0d72799a580766f875567fbc089621215ec Mon Sep 17 00:00:00 2001 From: Corey Lowman Date: Tue, 11 Jun 2024 12:45:51 -0400 Subject: [PATCH] #245 Add cuda-11050 and cuda-11060 feature flags for older cuda toolkits (#249) --- Cargo.toml | 2 + build.rs | 8 +- src/cublas/sys/mod.rs | 10 + src/cublas/sys/sys_11050.rs | 9910 +++++++++++++++++++++++ src/cublas/sys/sys_11060.rs | 9910 +++++++++++++++++++++++ src/cublaslt/sys/mod.rs | 10 + src/cublaslt/sys/sys_11050.rs | 1987 +++++ src/cublaslt/sys/sys_11060.rs | 1989 +++++ src/cudnn/sys/mod.rs | 10 + src/cudnn/sys/sys_11050.rs | 10888 +++++++++++++++++++++++++ src/cudnn/sys/sys_11060.rs | 10894 +++++++++++++++++++++++++ src/curand/sys/mod.rs | 10 + src/curand/sys/sys_11050.rs | 756 ++ src/curand/sys/sys_11060.rs | 756 ++ src/driver/safe/core.rs | 4 +- src/driver/sys/mod.rs | 10 + src/driver/sys/sys_11050.rs | 13686 +++++++++++++++++++++++++++++++ src/driver/sys/sys_11060.rs | 13836 ++++++++++++++++++++++++++++++++ src/nccl/result.rs | 7 + src/nccl/sys/mod.rs | 10 + src/nccl/sys/sys_11050.rs | 600 ++ src/nccl/sys/sys_11060.rs | 600 ++ src/nvrtc/sys/mod.rs | 10 + src/nvrtc/sys/sys_11050.rs | 343 + src/nvrtc/sys/sys_11060.rs | 343 + 25 files changed, 76586 insertions(+), 3 deletions(-) create mode 100644 src/cublas/sys/sys_11050.rs create mode 100644 src/cublas/sys/sys_11060.rs create mode 100644 src/cublaslt/sys/sys_11050.rs create mode 100644 src/cublaslt/sys/sys_11060.rs create mode 100644 src/cudnn/sys/sys_11050.rs create mode 100644 src/cudnn/sys/sys_11060.rs create mode 100644 src/curand/sys/sys_11050.rs create mode 100644 src/curand/sys/sys_11060.rs create mode 100644 src/driver/sys/sys_11050.rs create mode 100644 src/driver/sys/sys_11060.rs create mode 100644 src/nccl/sys/sys_11050.rs create mode 100644 src/nccl/sys/sys_11060.rs create mode 100644 src/nvrtc/sys/sys_11050.rs create mode 100644 src/nvrtc/sys/sys_11060.rs diff --git a/Cargo.toml b/Cargo.toml index 63987a42..44c99d9e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,8 @@ features = ["cuda-12050", "f16", "cudnn"] default = ["std", "cublas", "cublaslt", "cudnn", "curand", "driver", "nccl", "nvrtc"] cuda-version-from-build-system = [] +cuda-11050 = [] +cuda-11060 = [] cuda-11070 = [] cuda-11080 = [] cuda-12000 = [] diff --git a/build.rs b/build.rs index ab1fe549..c29d9daf 100644 --- a/build.rs +++ b/build.rs @@ -22,9 +22,13 @@ fn main() { (11, 8) } else if cfg!(feature = "cuda-11070") { (11, 7) + } else if cfg!(feature = "cuda-11060") { + (11, 6) + } else if cfg!(feature = "cuda-11050") { + (11, 5) } else { #[cfg(not(feature = "cuda-version-from-build-system"))] - panic!("Must specify one of the following features: [cuda-version-from-build-system, cuda-12050, cuda-12040, cuda-12030, cuda-12020, cuda-12010, cuda-12000, cuda-11080, cuda-11070]"); + panic!("Must specify one of the following features: [cuda-version-from-build-system, cuda-12050, cuda-12040, cuda-12030, cuda-12020, cuda-12010, cuda-12000, cuda-11080, cuda-11070, cuda-11060, cuda-11050]"); #[cfg(feature = "cuda-version-from-build-system")] { @@ -70,6 +74,8 @@ fn cuda_version_from_build_system() -> (usize, usize) { "12.0" => (12, 0), "11.8" => (11, 8), "11.7" => (11, 7), + "11.6" => (11, 6), + "11.5" => (11, 5), v => panic!("Unsupported cuda toolkit version: `{v}`. Please raise a github issue."), } } diff --git a/src/cublas/sys/mod.rs b/src/cublas/sys/mod.rs index e7d499ba..96cca450 100644 --- a/src/cublas/sys/mod.rs +++ b/src/cublas/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/cublas/sys/sys_11050.rs b/src/cublas/sys/sys_11050.rs new file mode 100644 index 00000000..a50402e5 --- /dev/null +++ b/src/cublas/sys/sys_11050.rs @@ -0,0 +1,9910 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct float2 { + pub x: f32, + pub y: f32, +} +#[test] +fn bindgen_test_layout_float2() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(float2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(float2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(x)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 4usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(y)) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct double2 { + pub x: f64, + pub y: f64, +} +#[test] +fn bindgen_test_layout_double2() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(double2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 16usize, + concat!("Alignment of ", stringify!(double2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(y) + ) + ); +} +pub type cudaStream_t = *mut CUstream_st; +pub type cuFloatComplex = float2; +pub type cuDoubleComplex = double2; +pub type cuComplex = cuFloatComplex; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaDataType_t { + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, +} +pub use self::cudaDataType_t as cudaDataType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasStatus_t { + CUBLAS_STATUS_SUCCESS = 0, + CUBLAS_STATUS_NOT_INITIALIZED = 1, + CUBLAS_STATUS_ALLOC_FAILED = 3, + CUBLAS_STATUS_INVALID_VALUE = 7, + CUBLAS_STATUS_ARCH_MISMATCH = 8, + CUBLAS_STATUS_MAPPING_ERROR = 11, + CUBLAS_STATUS_EXECUTION_FAILED = 13, + CUBLAS_STATUS_INTERNAL_ERROR = 14, + CUBLAS_STATUS_NOT_SUPPORTED = 15, + CUBLAS_STATUS_LICENSE_ERROR = 16, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasFillMode_t { + CUBLAS_FILL_MODE_LOWER = 0, + CUBLAS_FILL_MODE_UPPER = 1, + CUBLAS_FILL_MODE_FULL = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasDiagType_t { + CUBLAS_DIAG_NON_UNIT = 0, + CUBLAS_DIAG_UNIT = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasSideMode_t { + CUBLAS_SIDE_LEFT = 0, + CUBLAS_SIDE_RIGHT = 1, +} +impl cublasOperation_t { + pub const CUBLAS_OP_HERMITAN: cublasOperation_t = cublasOperation_t::CUBLAS_OP_C; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasOperation_t { + CUBLAS_OP_N = 0, + CUBLAS_OP_T = 1, + CUBLAS_OP_C = 2, + CUBLAS_OP_CONJG = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasPointerMode_t { + CUBLAS_POINTER_MODE_HOST = 0, + CUBLAS_POINTER_MODE_DEVICE = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasAtomicsMode_t { + CUBLAS_ATOMICS_NOT_ALLOWED = 0, + CUBLAS_ATOMICS_ALLOWED = 1, +} +impl cublasGemmAlgo_t { + pub const CUBLAS_GEMM_DEFAULT: cublasGemmAlgo_t = cublasGemmAlgo_t::CUBLAS_GEMM_DFALT; +} +impl cublasGemmAlgo_t { + pub const CUBLAS_GEMM_DFALT_TENSOR_OP: cublasGemmAlgo_t = + cublasGemmAlgo_t::CUBLAS_GEMM_DEFAULT_TENSOR_OP; +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasGemmAlgo_t { + CUBLAS_GEMM_DFALT = -1, + CUBLAS_GEMM_ALGO0 = 0, + CUBLAS_GEMM_ALGO1 = 1, + CUBLAS_GEMM_ALGO2 = 2, + CUBLAS_GEMM_ALGO3 = 3, + CUBLAS_GEMM_ALGO4 = 4, + CUBLAS_GEMM_ALGO5 = 5, + CUBLAS_GEMM_ALGO6 = 6, + CUBLAS_GEMM_ALGO7 = 7, + CUBLAS_GEMM_ALGO8 = 8, + CUBLAS_GEMM_ALGO9 = 9, + CUBLAS_GEMM_ALGO10 = 10, + CUBLAS_GEMM_ALGO11 = 11, + CUBLAS_GEMM_ALGO12 = 12, + CUBLAS_GEMM_ALGO13 = 13, + CUBLAS_GEMM_ALGO14 = 14, + CUBLAS_GEMM_ALGO15 = 15, + CUBLAS_GEMM_ALGO16 = 16, + CUBLAS_GEMM_ALGO17 = 17, + CUBLAS_GEMM_ALGO18 = 18, + CUBLAS_GEMM_ALGO19 = 19, + CUBLAS_GEMM_ALGO20 = 20, + CUBLAS_GEMM_ALGO21 = 21, + CUBLAS_GEMM_ALGO22 = 22, + CUBLAS_GEMM_ALGO23 = 23, + CUBLAS_GEMM_DEFAULT_TENSOR_OP = 99, + CUBLAS_GEMM_ALGO0_TENSOR_OP = 100, + CUBLAS_GEMM_ALGO1_TENSOR_OP = 101, + CUBLAS_GEMM_ALGO2_TENSOR_OP = 102, + CUBLAS_GEMM_ALGO3_TENSOR_OP = 103, + CUBLAS_GEMM_ALGO4_TENSOR_OP = 104, + CUBLAS_GEMM_ALGO5_TENSOR_OP = 105, + CUBLAS_GEMM_ALGO6_TENSOR_OP = 106, + CUBLAS_GEMM_ALGO7_TENSOR_OP = 107, + CUBLAS_GEMM_ALGO8_TENSOR_OP = 108, + CUBLAS_GEMM_ALGO9_TENSOR_OP = 109, + CUBLAS_GEMM_ALGO10_TENSOR_OP = 110, + CUBLAS_GEMM_ALGO11_TENSOR_OP = 111, + CUBLAS_GEMM_ALGO12_TENSOR_OP = 112, + CUBLAS_GEMM_ALGO13_TENSOR_OP = 113, + CUBLAS_GEMM_ALGO14_TENSOR_OP = 114, + CUBLAS_GEMM_ALGO15_TENSOR_OP = 115, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasMath_t { + CUBLAS_DEFAULT_MATH = 0, + CUBLAS_TENSOR_OP_MATH = 1, + CUBLAS_PEDANTIC_MATH = 2, + CUBLAS_TF32_TENSOR_OP_MATH = 3, + CUBLAS_MATH_DISALLOW_REDUCED_PRECISION_REDUCTION = 16, +} +pub use self::cudaDataType as cublasDataType_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasComputeType_t { + CUBLAS_COMPUTE_16F = 64, + CUBLAS_COMPUTE_16F_PEDANTIC = 65, + CUBLAS_COMPUTE_32F = 68, + CUBLAS_COMPUTE_32F_PEDANTIC = 69, + CUBLAS_COMPUTE_32F_FAST_16F = 74, + CUBLAS_COMPUTE_32F_FAST_16BF = 75, + CUBLAS_COMPUTE_32F_FAST_TF32 = 77, + CUBLAS_COMPUTE_64F = 70, + CUBLAS_COMPUTE_64F_PEDANTIC = 71, + CUBLAS_COMPUTE_32I = 72, + CUBLAS_COMPUTE_32I_PEDANTIC = 73, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cublasContext { + _unused: [u8; 0], +} +pub type cublasHandle_t = *mut cublasContext; +pub type cublasLogCallback = + ::core::option::Option; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cublasCreate_v2: Result< + unsafe extern "C" fn(handle: *mut cublasHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDestroy_v2: + Result cublasStatus_t, ::libloading::Error>, + pub cublasGetVersion_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + version: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetCudartVersion: Result usize, ::libloading::Error>, + pub cublasSetWorkspace_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetStream_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, streamId: cudaStream_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetStream_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, streamId: *mut cudaStream_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetPointerMode_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: *mut cublasPointerMode_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetPointerMode_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasPointerMode_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetAtomicsMode: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: *mut cublasAtomicsMode_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetAtomicsMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasAtomicsMode_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMathMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: *mut cublasMath_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMathMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasMath_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetSmCountTarget: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + smCountTarget: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetSmCountTarget: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + smCountTarget: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetStatusName: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasGetStatusString: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLoggerConfigure: Result< + unsafe extern "C" fn( + logIsOn: ::core::ffi::c_int, + logToStdOut: ::core::ffi::c_int, + logToStdErr: ::core::ffi::c_int, + logFileName: *const ::core::ffi::c_char, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetLoggerCallback: Result< + unsafe extern "C" fn(userCallback: cublasLogCallback) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetLoggerCallback: Result< + unsafe extern "C" fn(userCallback: *mut cublasLogCallback) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetVector: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetVector: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMatrix: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMatrix: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetVectorAsync: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + hostPtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetVectorAsync: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + devicePtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + hostPtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMatrixAsync: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMatrixAsync: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasXerbla: Result< + unsafe extern "C" fn(srName: *const ::core::ffi::c_char, info: ::core::ffi::c_int), + ::libloading::Error, + >, + pub cublasNrm2Ex: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDznrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDotEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDotcEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSdot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDdot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdotu_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdotc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdotu_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdotc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScalEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasAxpyEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCopyEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSwapEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIsamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIdamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIcamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIzamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIamaxEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIsamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIdamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIcamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIzamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIaminEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasAsumEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDzasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + c: *const ::core::ffi::c_void, + s: *const ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut f32, + b: *mut f32, + c: *mut f32, + s: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut f64, + b: *mut f64, + c: *mut f64, + s: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut cuComplex, + b: *mut cuComplex, + c: *mut f32, + s: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut cuDoubleComplex, + b: *mut cuDoubleComplex, + c: *mut f64, + s: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotgEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut ::core::ffi::c_void, + b: *mut ::core::ffi::c_void, + abType: cudaDataType, + c: *mut ::core::ffi::c_void, + s: *mut ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + param: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + param: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + param: *const ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotmg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut f32, + d2: *mut f32, + x1: *mut f32, + y1: *const f32, + param: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotmg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut f64, + d2: *mut f64, + x1: *mut f64, + y1: *const f64, + param: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotmgEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut ::core::ffi::c_void, + d1Type: cudaDataType, + d2: *mut ::core::ffi::c_void, + d2Type: cudaDataType, + x1: *mut ::core::ffi::c_void, + x1Type: cudaDataType, + y1: *const ::core::ffi::c_void, + y1Type: cudaDataType, + param: *mut ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + AP: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + AP: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + AP: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + AP: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSger_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDger_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeru_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgerc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeru_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgerc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3m: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemm3m: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasUint8gemmBias: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + transc: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const ::core::ffi::c_uchar, + A_bias: ::core::ffi::c_int, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_uchar, + B_bias: ::core::ffi::c_int, + ldb: ::core::ffi::c_int, + C: *mut ::core::ffi::c_uchar, + C_bias: ::core::ffi::c_int, + ldc: ::core::ffi::c_int, + C_mult: ::core::ffi::c_int, + C_shift: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrkEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrk3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZherk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherkEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherk3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZherkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *mut f32, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *mut f64, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *mut cuComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + Barray: *const *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + Barray: *const *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmBatchedEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + Aarray: *const *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + Barray: *const *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + Carray: *const *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmStridedBatchedEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f32, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f64, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f32, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f64, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f32, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f64, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const *const f32, + lda: ::core::ffi::c_int, + B: *const *mut f32, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const *const f64, + lda: ::core::ffi::c_int, + B: *const *mut f64, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + Ainv: *const *mut f32, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + Ainv: *const *mut f64, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuDoubleComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + TauArray: *const *mut f32, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + TauArray: *const *mut f64, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuDoubleComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f32, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f64, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cublasCreate_v2 = __library.get(b"cublasCreate_v2\0").map(|sym| *sym); + let cublasDestroy_v2 = __library.get(b"cublasDestroy_v2\0").map(|sym| *sym); + let cublasGetVersion_v2 = __library.get(b"cublasGetVersion_v2\0").map(|sym| *sym); + let cublasGetProperty = __library.get(b"cublasGetProperty\0").map(|sym| *sym); + let cublasGetCudartVersion = __library.get(b"cublasGetCudartVersion\0").map(|sym| *sym); + let cublasSetWorkspace_v2 = __library.get(b"cublasSetWorkspace_v2\0").map(|sym| *sym); + let cublasSetStream_v2 = __library.get(b"cublasSetStream_v2\0").map(|sym| *sym); + let cublasGetStream_v2 = __library.get(b"cublasGetStream_v2\0").map(|sym| *sym); + let cublasGetPointerMode_v2 = __library.get(b"cublasGetPointerMode_v2\0").map(|sym| *sym); + let cublasSetPointerMode_v2 = __library.get(b"cublasSetPointerMode_v2\0").map(|sym| *sym); + let cublasGetAtomicsMode = __library.get(b"cublasGetAtomicsMode\0").map(|sym| *sym); + let cublasSetAtomicsMode = __library.get(b"cublasSetAtomicsMode\0").map(|sym| *sym); + let cublasGetMathMode = __library.get(b"cublasGetMathMode\0").map(|sym| *sym); + let cublasSetMathMode = __library.get(b"cublasSetMathMode\0").map(|sym| *sym); + let cublasGetSmCountTarget = __library.get(b"cublasGetSmCountTarget\0").map(|sym| *sym); + let cublasSetSmCountTarget = __library.get(b"cublasSetSmCountTarget\0").map(|sym| *sym); + let cublasGetStatusName = __library.get(b"cublasGetStatusName\0").map(|sym| *sym); + let cublasGetStatusString = __library.get(b"cublasGetStatusString\0").map(|sym| *sym); + let cublasLoggerConfigure = __library.get(b"cublasLoggerConfigure\0").map(|sym| *sym); + let cublasSetLoggerCallback = __library.get(b"cublasSetLoggerCallback\0").map(|sym| *sym); + let cublasGetLoggerCallback = __library.get(b"cublasGetLoggerCallback\0").map(|sym| *sym); + let cublasSetVector = __library.get(b"cublasSetVector\0").map(|sym| *sym); + let cublasGetVector = __library.get(b"cublasGetVector\0").map(|sym| *sym); + let cublasSetMatrix = __library.get(b"cublasSetMatrix\0").map(|sym| *sym); + let cublasGetMatrix = __library.get(b"cublasGetMatrix\0").map(|sym| *sym); + let cublasSetVectorAsync = __library.get(b"cublasSetVectorAsync\0").map(|sym| *sym); + let cublasGetVectorAsync = __library.get(b"cublasGetVectorAsync\0").map(|sym| *sym); + let cublasSetMatrixAsync = __library.get(b"cublasSetMatrixAsync\0").map(|sym| *sym); + let cublasGetMatrixAsync = __library.get(b"cublasGetMatrixAsync\0").map(|sym| *sym); + let cublasXerbla = __library.get(b"cublasXerbla\0").map(|sym| *sym); + let cublasNrm2Ex = __library.get(b"cublasNrm2Ex\0").map(|sym| *sym); + let cublasSnrm2_v2 = __library.get(b"cublasSnrm2_v2\0").map(|sym| *sym); + let cublasDnrm2_v2 = __library.get(b"cublasDnrm2_v2\0").map(|sym| *sym); + let cublasScnrm2_v2 = __library.get(b"cublasScnrm2_v2\0").map(|sym| *sym); + let cublasDznrm2_v2 = __library.get(b"cublasDznrm2_v2\0").map(|sym| *sym); + let cublasDotEx = __library.get(b"cublasDotEx\0").map(|sym| *sym); + let cublasDotcEx = __library.get(b"cublasDotcEx\0").map(|sym| *sym); + let cublasSdot_v2 = __library.get(b"cublasSdot_v2\0").map(|sym| *sym); + let cublasDdot_v2 = __library.get(b"cublasDdot_v2\0").map(|sym| *sym); + let cublasCdotu_v2 = __library.get(b"cublasCdotu_v2\0").map(|sym| *sym); + let cublasCdotc_v2 = __library.get(b"cublasCdotc_v2\0").map(|sym| *sym); + let cublasZdotu_v2 = __library.get(b"cublasZdotu_v2\0").map(|sym| *sym); + let cublasZdotc_v2 = __library.get(b"cublasZdotc_v2\0").map(|sym| *sym); + let cublasScalEx = __library.get(b"cublasScalEx\0").map(|sym| *sym); + let cublasSscal_v2 = __library.get(b"cublasSscal_v2\0").map(|sym| *sym); + let cublasDscal_v2 = __library.get(b"cublasDscal_v2\0").map(|sym| *sym); + let cublasCscal_v2 = __library.get(b"cublasCscal_v2\0").map(|sym| *sym); + let cublasCsscal_v2 = __library.get(b"cublasCsscal_v2\0").map(|sym| *sym); + let cublasZscal_v2 = __library.get(b"cublasZscal_v2\0").map(|sym| *sym); + let cublasZdscal_v2 = __library.get(b"cublasZdscal_v2\0").map(|sym| *sym); + let cublasAxpyEx = __library.get(b"cublasAxpyEx\0").map(|sym| *sym); + let cublasSaxpy_v2 = __library.get(b"cublasSaxpy_v2\0").map(|sym| *sym); + let cublasDaxpy_v2 = __library.get(b"cublasDaxpy_v2\0").map(|sym| *sym); + let cublasCaxpy_v2 = __library.get(b"cublasCaxpy_v2\0").map(|sym| *sym); + let cublasZaxpy_v2 = __library.get(b"cublasZaxpy_v2\0").map(|sym| *sym); + let cublasCopyEx = __library.get(b"cublasCopyEx\0").map(|sym| *sym); + let cublasScopy_v2 = __library.get(b"cublasScopy_v2\0").map(|sym| *sym); + let cublasDcopy_v2 = __library.get(b"cublasDcopy_v2\0").map(|sym| *sym); + let cublasCcopy_v2 = __library.get(b"cublasCcopy_v2\0").map(|sym| *sym); + let cublasZcopy_v2 = __library.get(b"cublasZcopy_v2\0").map(|sym| *sym); + let cublasSswap_v2 = __library.get(b"cublasSswap_v2\0").map(|sym| *sym); + let cublasDswap_v2 = __library.get(b"cublasDswap_v2\0").map(|sym| *sym); + let cublasCswap_v2 = __library.get(b"cublasCswap_v2\0").map(|sym| *sym); + let cublasZswap_v2 = __library.get(b"cublasZswap_v2\0").map(|sym| *sym); + let cublasSwapEx = __library.get(b"cublasSwapEx\0").map(|sym| *sym); + let cublasIsamax_v2 = __library.get(b"cublasIsamax_v2\0").map(|sym| *sym); + let cublasIdamax_v2 = __library.get(b"cublasIdamax_v2\0").map(|sym| *sym); + let cublasIcamax_v2 = __library.get(b"cublasIcamax_v2\0").map(|sym| *sym); + let cublasIzamax_v2 = __library.get(b"cublasIzamax_v2\0").map(|sym| *sym); + let cublasIamaxEx = __library.get(b"cublasIamaxEx\0").map(|sym| *sym); + let cublasIsamin_v2 = __library.get(b"cublasIsamin_v2\0").map(|sym| *sym); + let cublasIdamin_v2 = __library.get(b"cublasIdamin_v2\0").map(|sym| *sym); + let cublasIcamin_v2 = __library.get(b"cublasIcamin_v2\0").map(|sym| *sym); + let cublasIzamin_v2 = __library.get(b"cublasIzamin_v2\0").map(|sym| *sym); + let cublasIaminEx = __library.get(b"cublasIaminEx\0").map(|sym| *sym); + let cublasAsumEx = __library.get(b"cublasAsumEx\0").map(|sym| *sym); + let cublasSasum_v2 = __library.get(b"cublasSasum_v2\0").map(|sym| *sym); + let cublasDasum_v2 = __library.get(b"cublasDasum_v2\0").map(|sym| *sym); + let cublasScasum_v2 = __library.get(b"cublasScasum_v2\0").map(|sym| *sym); + let cublasDzasum_v2 = __library.get(b"cublasDzasum_v2\0").map(|sym| *sym); + let cublasSrot_v2 = __library.get(b"cublasSrot_v2\0").map(|sym| *sym); + let cublasDrot_v2 = __library.get(b"cublasDrot_v2\0").map(|sym| *sym); + let cublasCrot_v2 = __library.get(b"cublasCrot_v2\0").map(|sym| *sym); + let cublasCsrot_v2 = __library.get(b"cublasCsrot_v2\0").map(|sym| *sym); + let cublasZrot_v2 = __library.get(b"cublasZrot_v2\0").map(|sym| *sym); + let cublasZdrot_v2 = __library.get(b"cublasZdrot_v2\0").map(|sym| *sym); + let cublasRotEx = __library.get(b"cublasRotEx\0").map(|sym| *sym); + let cublasSrotg_v2 = __library.get(b"cublasSrotg_v2\0").map(|sym| *sym); + let cublasDrotg_v2 = __library.get(b"cublasDrotg_v2\0").map(|sym| *sym); + let cublasCrotg_v2 = __library.get(b"cublasCrotg_v2\0").map(|sym| *sym); + let cublasZrotg_v2 = __library.get(b"cublasZrotg_v2\0").map(|sym| *sym); + let cublasRotgEx = __library.get(b"cublasRotgEx\0").map(|sym| *sym); + let cublasSrotm_v2 = __library.get(b"cublasSrotm_v2\0").map(|sym| *sym); + let cublasDrotm_v2 = __library.get(b"cublasDrotm_v2\0").map(|sym| *sym); + let cublasRotmEx = __library.get(b"cublasRotmEx\0").map(|sym| *sym); + let cublasSrotmg_v2 = __library.get(b"cublasSrotmg_v2\0").map(|sym| *sym); + let cublasDrotmg_v2 = __library.get(b"cublasDrotmg_v2\0").map(|sym| *sym); + let cublasRotmgEx = __library.get(b"cublasRotmgEx\0").map(|sym| *sym); + let cublasSgemv_v2 = __library.get(b"cublasSgemv_v2\0").map(|sym| *sym); + let cublasDgemv_v2 = __library.get(b"cublasDgemv_v2\0").map(|sym| *sym); + let cublasCgemv_v2 = __library.get(b"cublasCgemv_v2\0").map(|sym| *sym); + let cublasZgemv_v2 = __library.get(b"cublasZgemv_v2\0").map(|sym| *sym); + let cublasSgbmv_v2 = __library.get(b"cublasSgbmv_v2\0").map(|sym| *sym); + let cublasDgbmv_v2 = __library.get(b"cublasDgbmv_v2\0").map(|sym| *sym); + let cublasCgbmv_v2 = __library.get(b"cublasCgbmv_v2\0").map(|sym| *sym); + let cublasZgbmv_v2 = __library.get(b"cublasZgbmv_v2\0").map(|sym| *sym); + let cublasStrmv_v2 = __library.get(b"cublasStrmv_v2\0").map(|sym| *sym); + let cublasDtrmv_v2 = __library.get(b"cublasDtrmv_v2\0").map(|sym| *sym); + let cublasCtrmv_v2 = __library.get(b"cublasCtrmv_v2\0").map(|sym| *sym); + let cublasZtrmv_v2 = __library.get(b"cublasZtrmv_v2\0").map(|sym| *sym); + let cublasStbmv_v2 = __library.get(b"cublasStbmv_v2\0").map(|sym| *sym); + let cublasDtbmv_v2 = __library.get(b"cublasDtbmv_v2\0").map(|sym| *sym); + let cublasCtbmv_v2 = __library.get(b"cublasCtbmv_v2\0").map(|sym| *sym); + let cublasZtbmv_v2 = __library.get(b"cublasZtbmv_v2\0").map(|sym| *sym); + let cublasStpmv_v2 = __library.get(b"cublasStpmv_v2\0").map(|sym| *sym); + let cublasDtpmv_v2 = __library.get(b"cublasDtpmv_v2\0").map(|sym| *sym); + let cublasCtpmv_v2 = __library.get(b"cublasCtpmv_v2\0").map(|sym| *sym); + let cublasZtpmv_v2 = __library.get(b"cublasZtpmv_v2\0").map(|sym| *sym); + let cublasStrsv_v2 = __library.get(b"cublasStrsv_v2\0").map(|sym| *sym); + let cublasDtrsv_v2 = __library.get(b"cublasDtrsv_v2\0").map(|sym| *sym); + let cublasCtrsv_v2 = __library.get(b"cublasCtrsv_v2\0").map(|sym| *sym); + let cublasZtrsv_v2 = __library.get(b"cublasZtrsv_v2\0").map(|sym| *sym); + let cublasStpsv_v2 = __library.get(b"cublasStpsv_v2\0").map(|sym| *sym); + let cublasDtpsv_v2 = __library.get(b"cublasDtpsv_v2\0").map(|sym| *sym); + let cublasCtpsv_v2 = __library.get(b"cublasCtpsv_v2\0").map(|sym| *sym); + let cublasZtpsv_v2 = __library.get(b"cublasZtpsv_v2\0").map(|sym| *sym); + let cublasStbsv_v2 = __library.get(b"cublasStbsv_v2\0").map(|sym| *sym); + let cublasDtbsv_v2 = __library.get(b"cublasDtbsv_v2\0").map(|sym| *sym); + let cublasCtbsv_v2 = __library.get(b"cublasCtbsv_v2\0").map(|sym| *sym); + let cublasZtbsv_v2 = __library.get(b"cublasZtbsv_v2\0").map(|sym| *sym); + let cublasSsymv_v2 = __library.get(b"cublasSsymv_v2\0").map(|sym| *sym); + let cublasDsymv_v2 = __library.get(b"cublasDsymv_v2\0").map(|sym| *sym); + let cublasCsymv_v2 = __library.get(b"cublasCsymv_v2\0").map(|sym| *sym); + let cublasZsymv_v2 = __library.get(b"cublasZsymv_v2\0").map(|sym| *sym); + let cublasChemv_v2 = __library.get(b"cublasChemv_v2\0").map(|sym| *sym); + let cublasZhemv_v2 = __library.get(b"cublasZhemv_v2\0").map(|sym| *sym); + let cublasSsbmv_v2 = __library.get(b"cublasSsbmv_v2\0").map(|sym| *sym); + let cublasDsbmv_v2 = __library.get(b"cublasDsbmv_v2\0").map(|sym| *sym); + let cublasChbmv_v2 = __library.get(b"cublasChbmv_v2\0").map(|sym| *sym); + let cublasZhbmv_v2 = __library.get(b"cublasZhbmv_v2\0").map(|sym| *sym); + let cublasSspmv_v2 = __library.get(b"cublasSspmv_v2\0").map(|sym| *sym); + let cublasDspmv_v2 = __library.get(b"cublasDspmv_v2\0").map(|sym| *sym); + let cublasChpmv_v2 = __library.get(b"cublasChpmv_v2\0").map(|sym| *sym); + let cublasZhpmv_v2 = __library.get(b"cublasZhpmv_v2\0").map(|sym| *sym); + let cublasSger_v2 = __library.get(b"cublasSger_v2\0").map(|sym| *sym); + let cublasDger_v2 = __library.get(b"cublasDger_v2\0").map(|sym| *sym); + let cublasCgeru_v2 = __library.get(b"cublasCgeru_v2\0").map(|sym| *sym); + let cublasCgerc_v2 = __library.get(b"cublasCgerc_v2\0").map(|sym| *sym); + let cublasZgeru_v2 = __library.get(b"cublasZgeru_v2\0").map(|sym| *sym); + let cublasZgerc_v2 = __library.get(b"cublasZgerc_v2\0").map(|sym| *sym); + let cublasSsyr_v2 = __library.get(b"cublasSsyr_v2\0").map(|sym| *sym); + let cublasDsyr_v2 = __library.get(b"cublasDsyr_v2\0").map(|sym| *sym); + let cublasCsyr_v2 = __library.get(b"cublasCsyr_v2\0").map(|sym| *sym); + let cublasZsyr_v2 = __library.get(b"cublasZsyr_v2\0").map(|sym| *sym); + let cublasCher_v2 = __library.get(b"cublasCher_v2\0").map(|sym| *sym); + let cublasZher_v2 = __library.get(b"cublasZher_v2\0").map(|sym| *sym); + let cublasSspr_v2 = __library.get(b"cublasSspr_v2\0").map(|sym| *sym); + let cublasDspr_v2 = __library.get(b"cublasDspr_v2\0").map(|sym| *sym); + let cublasChpr_v2 = __library.get(b"cublasChpr_v2\0").map(|sym| *sym); + let cublasZhpr_v2 = __library.get(b"cublasZhpr_v2\0").map(|sym| *sym); + let cublasSsyr2_v2 = __library.get(b"cublasSsyr2_v2\0").map(|sym| *sym); + let cublasDsyr2_v2 = __library.get(b"cublasDsyr2_v2\0").map(|sym| *sym); + let cublasCsyr2_v2 = __library.get(b"cublasCsyr2_v2\0").map(|sym| *sym); + let cublasZsyr2_v2 = __library.get(b"cublasZsyr2_v2\0").map(|sym| *sym); + let cublasCher2_v2 = __library.get(b"cublasCher2_v2\0").map(|sym| *sym); + let cublasZher2_v2 = __library.get(b"cublasZher2_v2\0").map(|sym| *sym); + let cublasSspr2_v2 = __library.get(b"cublasSspr2_v2\0").map(|sym| *sym); + let cublasDspr2_v2 = __library.get(b"cublasDspr2_v2\0").map(|sym| *sym); + let cublasChpr2_v2 = __library.get(b"cublasChpr2_v2\0").map(|sym| *sym); + let cublasZhpr2_v2 = __library.get(b"cublasZhpr2_v2\0").map(|sym| *sym); + let cublasSgemm_v2 = __library.get(b"cublasSgemm_v2\0").map(|sym| *sym); + let cublasDgemm_v2 = __library.get(b"cublasDgemm_v2\0").map(|sym| *sym); + let cublasCgemm_v2 = __library.get(b"cublasCgemm_v2\0").map(|sym| *sym); + let cublasCgemm3m = __library.get(b"cublasCgemm3m\0").map(|sym| *sym); + let cublasCgemm3mEx = __library.get(b"cublasCgemm3mEx\0").map(|sym| *sym); + let cublasZgemm_v2 = __library.get(b"cublasZgemm_v2\0").map(|sym| *sym); + let cublasZgemm3m = __library.get(b"cublasZgemm3m\0").map(|sym| *sym); + let cublasSgemmEx = __library.get(b"cublasSgemmEx\0").map(|sym| *sym); + let cublasGemmEx = __library.get(b"cublasGemmEx\0").map(|sym| *sym); + let cublasCgemmEx = __library.get(b"cublasCgemmEx\0").map(|sym| *sym); + let cublasUint8gemmBias = __library.get(b"cublasUint8gemmBias\0").map(|sym| *sym); + let cublasSsyrk_v2 = __library.get(b"cublasSsyrk_v2\0").map(|sym| *sym); + let cublasDsyrk_v2 = __library.get(b"cublasDsyrk_v2\0").map(|sym| *sym); + let cublasCsyrk_v2 = __library.get(b"cublasCsyrk_v2\0").map(|sym| *sym); + let cublasZsyrk_v2 = __library.get(b"cublasZsyrk_v2\0").map(|sym| *sym); + let cublasCsyrkEx = __library.get(b"cublasCsyrkEx\0").map(|sym| *sym); + let cublasCsyrk3mEx = __library.get(b"cublasCsyrk3mEx\0").map(|sym| *sym); + let cublasCherk_v2 = __library.get(b"cublasCherk_v2\0").map(|sym| *sym); + let cublasZherk_v2 = __library.get(b"cublasZherk_v2\0").map(|sym| *sym); + let cublasCherkEx = __library.get(b"cublasCherkEx\0").map(|sym| *sym); + let cublasCherk3mEx = __library.get(b"cublasCherk3mEx\0").map(|sym| *sym); + let cublasSsyr2k_v2 = __library.get(b"cublasSsyr2k_v2\0").map(|sym| *sym); + let cublasDsyr2k_v2 = __library.get(b"cublasDsyr2k_v2\0").map(|sym| *sym); + let cublasCsyr2k_v2 = __library.get(b"cublasCsyr2k_v2\0").map(|sym| *sym); + let cublasZsyr2k_v2 = __library.get(b"cublasZsyr2k_v2\0").map(|sym| *sym); + let cublasCher2k_v2 = __library.get(b"cublasCher2k_v2\0").map(|sym| *sym); + let cublasZher2k_v2 = __library.get(b"cublasZher2k_v2\0").map(|sym| *sym); + let cublasSsyrkx = __library.get(b"cublasSsyrkx\0").map(|sym| *sym); + let cublasDsyrkx = __library.get(b"cublasDsyrkx\0").map(|sym| *sym); + let cublasCsyrkx = __library.get(b"cublasCsyrkx\0").map(|sym| *sym); + let cublasZsyrkx = __library.get(b"cublasZsyrkx\0").map(|sym| *sym); + let cublasCherkx = __library.get(b"cublasCherkx\0").map(|sym| *sym); + let cublasZherkx = __library.get(b"cublasZherkx\0").map(|sym| *sym); + let cublasSsymm_v2 = __library.get(b"cublasSsymm_v2\0").map(|sym| *sym); + let cublasDsymm_v2 = __library.get(b"cublasDsymm_v2\0").map(|sym| *sym); + let cublasCsymm_v2 = __library.get(b"cublasCsymm_v2\0").map(|sym| *sym); + let cublasZsymm_v2 = __library.get(b"cublasZsymm_v2\0").map(|sym| *sym); + let cublasChemm_v2 = __library.get(b"cublasChemm_v2\0").map(|sym| *sym); + let cublasZhemm_v2 = __library.get(b"cublasZhemm_v2\0").map(|sym| *sym); + let cublasStrsm_v2 = __library.get(b"cublasStrsm_v2\0").map(|sym| *sym); + let cublasDtrsm_v2 = __library.get(b"cublasDtrsm_v2\0").map(|sym| *sym); + let cublasCtrsm_v2 = __library.get(b"cublasCtrsm_v2\0").map(|sym| *sym); + let cublasZtrsm_v2 = __library.get(b"cublasZtrsm_v2\0").map(|sym| *sym); + let cublasStrmm_v2 = __library.get(b"cublasStrmm_v2\0").map(|sym| *sym); + let cublasDtrmm_v2 = __library.get(b"cublasDtrmm_v2\0").map(|sym| *sym); + let cublasCtrmm_v2 = __library.get(b"cublasCtrmm_v2\0").map(|sym| *sym); + let cublasZtrmm_v2 = __library.get(b"cublasZtrmm_v2\0").map(|sym| *sym); + let cublasSgemmBatched = __library.get(b"cublasSgemmBatched\0").map(|sym| *sym); + let cublasDgemmBatched = __library.get(b"cublasDgemmBatched\0").map(|sym| *sym); + let cublasCgemmBatched = __library.get(b"cublasCgemmBatched\0").map(|sym| *sym); + let cublasCgemm3mBatched = __library.get(b"cublasCgemm3mBatched\0").map(|sym| *sym); + let cublasZgemmBatched = __library.get(b"cublasZgemmBatched\0").map(|sym| *sym); + let cublasGemmBatchedEx = __library.get(b"cublasGemmBatchedEx\0").map(|sym| *sym); + let cublasGemmStridedBatchedEx = __library + .get(b"cublasGemmStridedBatchedEx\0") + .map(|sym| *sym); + let cublasSgemmStridedBatched = __library + .get(b"cublasSgemmStridedBatched\0") + .map(|sym| *sym); + let cublasDgemmStridedBatched = __library + .get(b"cublasDgemmStridedBatched\0") + .map(|sym| *sym); + let cublasCgemmStridedBatched = __library + .get(b"cublasCgemmStridedBatched\0") + .map(|sym| *sym); + let cublasCgemm3mStridedBatched = __library + .get(b"cublasCgemm3mStridedBatched\0") + .map(|sym| *sym); + let cublasZgemmStridedBatched = __library + .get(b"cublasZgemmStridedBatched\0") + .map(|sym| *sym); + let cublasSgeam = __library.get(b"cublasSgeam\0").map(|sym| *sym); + let cublasDgeam = __library.get(b"cublasDgeam\0").map(|sym| *sym); + let cublasCgeam = __library.get(b"cublasCgeam\0").map(|sym| *sym); + let cublasZgeam = __library.get(b"cublasZgeam\0").map(|sym| *sym); + let cublasSgetrfBatched = __library.get(b"cublasSgetrfBatched\0").map(|sym| *sym); + let cublasDgetrfBatched = __library.get(b"cublasDgetrfBatched\0").map(|sym| *sym); + let cublasCgetrfBatched = __library.get(b"cublasCgetrfBatched\0").map(|sym| *sym); + let cublasZgetrfBatched = __library.get(b"cublasZgetrfBatched\0").map(|sym| *sym); + let cublasSgetriBatched = __library.get(b"cublasSgetriBatched\0").map(|sym| *sym); + let cublasDgetriBatched = __library.get(b"cublasDgetriBatched\0").map(|sym| *sym); + let cublasCgetriBatched = __library.get(b"cublasCgetriBatched\0").map(|sym| *sym); + let cublasZgetriBatched = __library.get(b"cublasZgetriBatched\0").map(|sym| *sym); + let cublasSgetrsBatched = __library.get(b"cublasSgetrsBatched\0").map(|sym| *sym); + let cublasDgetrsBatched = __library.get(b"cublasDgetrsBatched\0").map(|sym| *sym); + let cublasCgetrsBatched = __library.get(b"cublasCgetrsBatched\0").map(|sym| *sym); + let cublasZgetrsBatched = __library.get(b"cublasZgetrsBatched\0").map(|sym| *sym); + let cublasStrsmBatched = __library.get(b"cublasStrsmBatched\0").map(|sym| *sym); + let cublasDtrsmBatched = __library.get(b"cublasDtrsmBatched\0").map(|sym| *sym); + let cublasCtrsmBatched = __library.get(b"cublasCtrsmBatched\0").map(|sym| *sym); + let cublasZtrsmBatched = __library.get(b"cublasZtrsmBatched\0").map(|sym| *sym); + let cublasSmatinvBatched = __library.get(b"cublasSmatinvBatched\0").map(|sym| *sym); + let cublasDmatinvBatched = __library.get(b"cublasDmatinvBatched\0").map(|sym| *sym); + let cublasCmatinvBatched = __library.get(b"cublasCmatinvBatched\0").map(|sym| *sym); + let cublasZmatinvBatched = __library.get(b"cublasZmatinvBatched\0").map(|sym| *sym); + let cublasSgeqrfBatched = __library.get(b"cublasSgeqrfBatched\0").map(|sym| *sym); + let cublasDgeqrfBatched = __library.get(b"cublasDgeqrfBatched\0").map(|sym| *sym); + let cublasCgeqrfBatched = __library.get(b"cublasCgeqrfBatched\0").map(|sym| *sym); + let cublasZgeqrfBatched = __library.get(b"cublasZgeqrfBatched\0").map(|sym| *sym); + let cublasSgelsBatched = __library.get(b"cublasSgelsBatched\0").map(|sym| *sym); + let cublasDgelsBatched = __library.get(b"cublasDgelsBatched\0").map(|sym| *sym); + let cublasCgelsBatched = __library.get(b"cublasCgelsBatched\0").map(|sym| *sym); + let cublasZgelsBatched = __library.get(b"cublasZgelsBatched\0").map(|sym| *sym); + let cublasSdgmm = __library.get(b"cublasSdgmm\0").map(|sym| *sym); + let cublasDdgmm = __library.get(b"cublasDdgmm\0").map(|sym| *sym); + let cublasCdgmm = __library.get(b"cublasCdgmm\0").map(|sym| *sym); + let cublasZdgmm = __library.get(b"cublasZdgmm\0").map(|sym| *sym); + let cublasStpttr = __library.get(b"cublasStpttr\0").map(|sym| *sym); + let cublasDtpttr = __library.get(b"cublasDtpttr\0").map(|sym| *sym); + let cublasCtpttr = __library.get(b"cublasCtpttr\0").map(|sym| *sym); + let cublasZtpttr = __library.get(b"cublasZtpttr\0").map(|sym| *sym); + let cublasStrttp = __library.get(b"cublasStrttp\0").map(|sym| *sym); + let cublasDtrttp = __library.get(b"cublasDtrttp\0").map(|sym| *sym); + let cublasCtrttp = __library.get(b"cublasCtrttp\0").map(|sym| *sym); + let cublasZtrttp = __library.get(b"cublasZtrttp\0").map(|sym| *sym); + Ok(Lib { + __library, + cublasCreate_v2, + cublasDestroy_v2, + cublasGetVersion_v2, + cublasGetProperty, + cublasGetCudartVersion, + cublasSetWorkspace_v2, + cublasSetStream_v2, + cublasGetStream_v2, + cublasGetPointerMode_v2, + cublasSetPointerMode_v2, + cublasGetAtomicsMode, + cublasSetAtomicsMode, + cublasGetMathMode, + cublasSetMathMode, + cublasGetSmCountTarget, + cublasSetSmCountTarget, + cublasGetStatusName, + cublasGetStatusString, + cublasLoggerConfigure, + cublasSetLoggerCallback, + cublasGetLoggerCallback, + cublasSetVector, + cublasGetVector, + cublasSetMatrix, + cublasGetMatrix, + cublasSetVectorAsync, + cublasGetVectorAsync, + cublasSetMatrixAsync, + cublasGetMatrixAsync, + cublasXerbla, + cublasNrm2Ex, + cublasSnrm2_v2, + cublasDnrm2_v2, + cublasScnrm2_v2, + cublasDznrm2_v2, + cublasDotEx, + cublasDotcEx, + cublasSdot_v2, + cublasDdot_v2, + cublasCdotu_v2, + cublasCdotc_v2, + cublasZdotu_v2, + cublasZdotc_v2, + cublasScalEx, + cublasSscal_v2, + cublasDscal_v2, + cublasCscal_v2, + cublasCsscal_v2, + cublasZscal_v2, + cublasZdscal_v2, + cublasAxpyEx, + cublasSaxpy_v2, + cublasDaxpy_v2, + cublasCaxpy_v2, + cublasZaxpy_v2, + cublasCopyEx, + cublasScopy_v2, + cublasDcopy_v2, + cublasCcopy_v2, + cublasZcopy_v2, + cublasSswap_v2, + cublasDswap_v2, + cublasCswap_v2, + cublasZswap_v2, + cublasSwapEx, + cublasIsamax_v2, + cublasIdamax_v2, + cublasIcamax_v2, + cublasIzamax_v2, + cublasIamaxEx, + cublasIsamin_v2, + cublasIdamin_v2, + cublasIcamin_v2, + cublasIzamin_v2, + cublasIaminEx, + cublasAsumEx, + cublasSasum_v2, + cublasDasum_v2, + cublasScasum_v2, + cublasDzasum_v2, + cublasSrot_v2, + cublasDrot_v2, + cublasCrot_v2, + cublasCsrot_v2, + cublasZrot_v2, + cublasZdrot_v2, + cublasRotEx, + cublasSrotg_v2, + cublasDrotg_v2, + cublasCrotg_v2, + cublasZrotg_v2, + cublasRotgEx, + cublasSrotm_v2, + cublasDrotm_v2, + cublasRotmEx, + cublasSrotmg_v2, + cublasDrotmg_v2, + cublasRotmgEx, + cublasSgemv_v2, + cublasDgemv_v2, + cublasCgemv_v2, + cublasZgemv_v2, + cublasSgbmv_v2, + cublasDgbmv_v2, + cublasCgbmv_v2, + cublasZgbmv_v2, + cublasStrmv_v2, + cublasDtrmv_v2, + cublasCtrmv_v2, + cublasZtrmv_v2, + cublasStbmv_v2, + cublasDtbmv_v2, + cublasCtbmv_v2, + cublasZtbmv_v2, + cublasStpmv_v2, + cublasDtpmv_v2, + cublasCtpmv_v2, + cublasZtpmv_v2, + cublasStrsv_v2, + cublasDtrsv_v2, + cublasCtrsv_v2, + cublasZtrsv_v2, + cublasStpsv_v2, + cublasDtpsv_v2, + cublasCtpsv_v2, + cublasZtpsv_v2, + cublasStbsv_v2, + cublasDtbsv_v2, + cublasCtbsv_v2, + cublasZtbsv_v2, + cublasSsymv_v2, + cublasDsymv_v2, + cublasCsymv_v2, + cublasZsymv_v2, + cublasChemv_v2, + cublasZhemv_v2, + cublasSsbmv_v2, + cublasDsbmv_v2, + cublasChbmv_v2, + cublasZhbmv_v2, + cublasSspmv_v2, + cublasDspmv_v2, + cublasChpmv_v2, + cublasZhpmv_v2, + cublasSger_v2, + cublasDger_v2, + cublasCgeru_v2, + cublasCgerc_v2, + cublasZgeru_v2, + cublasZgerc_v2, + cublasSsyr_v2, + cublasDsyr_v2, + cublasCsyr_v2, + cublasZsyr_v2, + cublasCher_v2, + cublasZher_v2, + cublasSspr_v2, + cublasDspr_v2, + cublasChpr_v2, + cublasZhpr_v2, + cublasSsyr2_v2, + cublasDsyr2_v2, + cublasCsyr2_v2, + cublasZsyr2_v2, + cublasCher2_v2, + cublasZher2_v2, + cublasSspr2_v2, + cublasDspr2_v2, + cublasChpr2_v2, + cublasZhpr2_v2, + cublasSgemm_v2, + cublasDgemm_v2, + cublasCgemm_v2, + cublasCgemm3m, + cublasCgemm3mEx, + cublasZgemm_v2, + cublasZgemm3m, + cublasSgemmEx, + cublasGemmEx, + cublasCgemmEx, + cublasUint8gemmBias, + cublasSsyrk_v2, + cublasDsyrk_v2, + cublasCsyrk_v2, + cublasZsyrk_v2, + cublasCsyrkEx, + cublasCsyrk3mEx, + cublasCherk_v2, + cublasZherk_v2, + cublasCherkEx, + cublasCherk3mEx, + cublasSsyr2k_v2, + cublasDsyr2k_v2, + cublasCsyr2k_v2, + cublasZsyr2k_v2, + cublasCher2k_v2, + cublasZher2k_v2, + cublasSsyrkx, + cublasDsyrkx, + cublasCsyrkx, + cublasZsyrkx, + cublasCherkx, + cublasZherkx, + cublasSsymm_v2, + cublasDsymm_v2, + cublasCsymm_v2, + cublasZsymm_v2, + cublasChemm_v2, + cublasZhemm_v2, + cublasStrsm_v2, + cublasDtrsm_v2, + cublasCtrsm_v2, + cublasZtrsm_v2, + cublasStrmm_v2, + cublasDtrmm_v2, + cublasCtrmm_v2, + cublasZtrmm_v2, + cublasSgemmBatched, + cublasDgemmBatched, + cublasCgemmBatched, + cublasCgemm3mBatched, + cublasZgemmBatched, + cublasGemmBatchedEx, + cublasGemmStridedBatchedEx, + cublasSgemmStridedBatched, + cublasDgemmStridedBatched, + cublasCgemmStridedBatched, + cublasCgemm3mStridedBatched, + cublasZgemmStridedBatched, + cublasSgeam, + cublasDgeam, + cublasCgeam, + cublasZgeam, + cublasSgetrfBatched, + cublasDgetrfBatched, + cublasCgetrfBatched, + cublasZgetrfBatched, + cublasSgetriBatched, + cublasDgetriBatched, + cublasCgetriBatched, + cublasZgetriBatched, + cublasSgetrsBatched, + cublasDgetrsBatched, + cublasCgetrsBatched, + cublasZgetrsBatched, + cublasStrsmBatched, + cublasDtrsmBatched, + cublasCtrsmBatched, + cublasZtrsmBatched, + cublasSmatinvBatched, + cublasDmatinvBatched, + cublasCmatinvBatched, + cublasZmatinvBatched, + cublasSgeqrfBatched, + cublasDgeqrfBatched, + cublasCgeqrfBatched, + cublasZgeqrfBatched, + cublasSgelsBatched, + cublasDgelsBatched, + cublasCgelsBatched, + cublasZgelsBatched, + cublasSdgmm, + cublasDdgmm, + cublasCdgmm, + cublasZdgmm, + cublasStpttr, + cublasDtpttr, + cublasCtpttr, + cublasZtpttr, + cublasStrttp, + cublasDtrttp, + cublasCtrttp, + cublasZtrttp, + }) + } + pub unsafe fn cublasCreate_v2(&self, handle: *mut cublasHandle_t) -> cublasStatus_t { + (self + .cublasCreate_v2 + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cublasDestroy_v2(&self, handle: cublasHandle_t) -> cublasStatus_t { + (self + .cublasDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cublasGetVersion_v2( + &self, + handle: cublasHandle_t, + version: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetVersion_v2 + .as_ref() + .expect("Expected function, got error."))(handle, version) + } + pub unsafe fn cublasGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cublasGetCudartVersion(&self) -> usize { + (self + .cublasGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasSetWorkspace_v2( + &self, + handle: cublasHandle_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasSetWorkspace_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, workspace, workspaceSizeInBytes + ) + } + pub unsafe fn cublasSetStream_v2( + &self, + handle: cublasHandle_t, + streamId: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetStream_v2 + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cublasGetStream_v2( + &self, + handle: cublasHandle_t, + streamId: *mut cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetStream_v2 + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cublasGetPointerMode_v2( + &self, + handle: cublasHandle_t, + mode: *mut cublasPointerMode_t, + ) -> cublasStatus_t { + (self + .cublasGetPointerMode_v2 + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetPointerMode_v2( + &self, + handle: cublasHandle_t, + mode: cublasPointerMode_t, + ) -> cublasStatus_t { + (self + .cublasSetPointerMode_v2 + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetAtomicsMode( + &self, + handle: cublasHandle_t, + mode: *mut cublasAtomicsMode_t, + ) -> cublasStatus_t { + (self + .cublasGetAtomicsMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetAtomicsMode( + &self, + handle: cublasHandle_t, + mode: cublasAtomicsMode_t, + ) -> cublasStatus_t { + (self + .cublasSetAtomicsMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetMathMode( + &self, + handle: cublasHandle_t, + mode: *mut cublasMath_t, + ) -> cublasStatus_t { + (self + .cublasGetMathMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetMathMode( + &self, + handle: cublasHandle_t, + mode: cublasMath_t, + ) -> cublasStatus_t { + (self + .cublasSetMathMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetSmCountTarget( + &self, + handle: cublasHandle_t, + smCountTarget: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetSmCountTarget + .as_ref() + .expect("Expected function, got error."))(handle, smCountTarget) + } + pub unsafe fn cublasSetSmCountTarget( + &self, + handle: cublasHandle_t, + smCountTarget: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetSmCountTarget + .as_ref() + .expect("Expected function, got error."))(handle, smCountTarget) + } + pub unsafe fn cublasGetStatusName(&self, status: cublasStatus_t) -> *const ::core::ffi::c_char { + (self + .cublasGetStatusName + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasGetStatusString( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasGetStatusString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLoggerConfigure( + &self, + logIsOn: ::core::ffi::c_int, + logToStdOut: ::core::ffi::c_int, + logToStdErr: ::core::ffi::c_int, + logFileName: *const ::core::ffi::c_char, + ) -> cublasStatus_t { + (self + .cublasLoggerConfigure + .as_ref() + .expect("Expected function, got error."))( + logIsOn, + logToStdOut, + logToStdErr, + logFileName, + ) + } + pub unsafe fn cublasSetLoggerCallback( + &self, + userCallback: cublasLogCallback, + ) -> cublasStatus_t { + (self + .cublasSetLoggerCallback + .as_ref() + .expect("Expected function, got error."))(userCallback) + } + pub unsafe fn cublasGetLoggerCallback( + &self, + userCallback: *mut cublasLogCallback, + ) -> cublasStatus_t { + (self + .cublasGetLoggerCallback + .as_ref() + .expect("Expected function, got error."))(userCallback) + } + pub unsafe fn cublasSetVector( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetVector + .as_ref() + .expect("Expected function, got error."))(n, elemSize, x, incx, devicePtr, incy) + } + pub unsafe fn cublasGetVector( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetVector + .as_ref() + .expect("Expected function, got error."))(n, elemSize, x, incx, y, incy) + } + pub unsafe fn cublasSetMatrix( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetMatrix + .as_ref() + .expect("Expected function, got error."))(rows, cols, elemSize, A, lda, B, ldb) + } + pub unsafe fn cublasGetMatrix( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetMatrix + .as_ref() + .expect("Expected function, got error."))(rows, cols, elemSize, A, lda, B, ldb) + } + pub unsafe fn cublasSetVectorAsync( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + hostPtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetVectorAsync + .as_ref() + .expect("Expected function, got error."))( + n, elemSize, hostPtr, incx, devicePtr, incy, stream, + ) + } + pub unsafe fn cublasGetVectorAsync( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + devicePtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + hostPtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetVectorAsync + .as_ref() + .expect("Expected function, got error."))( + n, elemSize, devicePtr, incx, hostPtr, incy, stream, + ) + } + pub unsafe fn cublasSetMatrixAsync( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetMatrixAsync + .as_ref() + .expect("Expected function, got error."))( + rows, cols, elemSize, A, lda, B, ldb, stream + ) + } + pub unsafe fn cublasGetMatrixAsync( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetMatrixAsync + .as_ref() + .expect("Expected function, got error."))( + rows, cols, elemSize, A, lda, B, ldb, stream + ) + } + pub unsafe fn cublasXerbla( + &self, + srName: *const ::core::ffi::c_char, + info: ::core::ffi::c_int, + ) { + (self + .cublasXerbla + .as_ref() + .expect("Expected function, got error."))(srName, info) + } + pub unsafe fn cublasNrm2Ex( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasNrm2Ex + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasSnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasScnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasScnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDznrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDznrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDotEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasDotEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasDotcEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasDotcEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasSdot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSdot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasDdot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDdot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasCdotu_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCdotu_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasCdotc_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCdotc_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasZdotu_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZdotu_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasZdotc_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZdotc_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasScalEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasScalEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + alpha, + alphaType, + x, + xType, + incx, + executionType, + ) + } + pub unsafe fn cublasSscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasDscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasCscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasCsscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasZscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasZdscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZdscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasAxpyEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasAxpyEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + alpha, + alphaType, + x, + xType, + incx, + y, + yType, + incy, + executiontype, + ) + } + pub unsafe fn cublasSaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasDaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasCaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasZaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasCopyEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCopyEx + .as_ref() + .expect("Expected function, got error."))( + handle, n, x, xType, incx, y, yType, incy + ) + } + pub unsafe fn cublasScopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasScopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasDcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasCcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasZcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasSswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasDswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasCswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasZswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasSwapEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSwapEx + .as_ref() + .expect("Expected function, got error."))( + handle, n, x, xType, incx, y, yType, incy + ) + } + pub unsafe fn cublasIsamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIsamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIdamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIdamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIcamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIcamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIzamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIzamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIamaxEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIamaxEx + .as_ref() + .expect("Expected function, got error."))(handle, n, x, xType, incx, result) + } + pub unsafe fn cublasIsamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIsamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIdamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIdamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIcamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIcamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIzamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIzamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIaminEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIaminEx + .as_ref() + .expect("Expected function, got error."))(handle, n, x, xType, incx, result) + } + pub unsafe fn cublasAsumEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasAsumEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + result, + resultType, + executiontype, + ) + } + pub unsafe fn cublasSasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasScasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasScasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDzasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDzasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasSrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t { + (self + .cublasSrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasDrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t { + (self + .cublasDrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasCrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const cuComplex, + ) -> cublasStatus_t { + (self + .cublasCrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasCsrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t { + (self + .cublasCsrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasZrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasZdrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t { + (self + .cublasZdrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasRotEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + c: *const ::core::ffi::c_void, + s: *const ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + c, + s, + csType, + executiontype, + ) + } + pub unsafe fn cublasSrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut f32, + b: *mut f32, + c: *mut f32, + s: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasDrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut f64, + b: *mut f64, + c: *mut f64, + s: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasCrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut cuComplex, + b: *mut cuComplex, + c: *mut f32, + s: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasZrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut cuDoubleComplex, + b: *mut cuDoubleComplex, + c: *mut f64, + s: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasRotgEx( + &self, + handle: cublasHandle_t, + a: *mut ::core::ffi::c_void, + b: *mut ::core::ffi::c_void, + abType: cudaDataType, + c: *mut ::core::ffi::c_void, + s: *mut ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotgEx + .as_ref() + .expect("Expected function, got error."))( + handle, + a, + b, + abType, + c, + s, + csType, + executiontype, + ) + } + pub unsafe fn cublasSrotm_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + param: *const f32, + ) -> cublasStatus_t { + (self + .cublasSrotm_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, param) + } + pub unsafe fn cublasDrotm_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + param: *const f64, + ) -> cublasStatus_t { + (self + .cublasDrotm_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, param) + } + pub unsafe fn cublasRotmEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + param: *const ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + param, + paramType, + executiontype, + ) + } + pub unsafe fn cublasSrotmg_v2( + &self, + handle: cublasHandle_t, + d1: *mut f32, + d2: *mut f32, + x1: *mut f32, + y1: *const f32, + param: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSrotmg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, d1, d2, x1, y1, param) + } + pub unsafe fn cublasDrotmg_v2( + &self, + handle: cublasHandle_t, + d1: *mut f64, + d2: *mut f64, + x1: *mut f64, + y1: *const f64, + param: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDrotmg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, d1, d2, x1, y1, param) + } + pub unsafe fn cublasRotmgEx( + &self, + handle: cublasHandle_t, + d1: *mut ::core::ffi::c_void, + d1Type: cudaDataType, + d2: *mut ::core::ffi::c_void, + d2Type: cudaDataType, + x1: *mut ::core::ffi::c_void, + x1Type: cudaDataType, + y1: *const ::core::ffi::c_void, + y1Type: cudaDataType, + param: *mut ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotmgEx + .as_ref() + .expect("Expected function, got error."))( + handle, + d1, + d1Type, + d2, + d2Type, + x1, + x1Type, + y1, + y1Type, + param, + paramType, + executiontype, + ) + } + pub unsafe fn cublasSgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasStrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasDtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasCtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasZtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasStbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasDtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasCtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasZtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasStpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasDtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasCtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasZtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasStrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasDtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasCtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasZtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasStpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasDtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasCtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasZtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasStbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasDtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasCtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasZtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasSsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChemv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhemv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSsbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDsbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSspmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + AP: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSspmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDspmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + AP: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDspmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + AP: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + AP: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSger_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSger_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasDger_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDger_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasCgeru_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeru_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasCgerc_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgerc_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasZgeru_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeru_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasZgerc_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgerc_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasSsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasDsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasCsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasZsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasCher_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasZher_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasSspr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSspr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasDspr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDspr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasChpr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasChpr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasZhpr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZhpr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasSsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasDsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasCsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasZsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasCher2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasZher2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasSspr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSspr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasDspr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDspr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasChpr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasChpr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasZhpr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZhpr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasSgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm3m( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3m + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm3mEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasZgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZgemm3m( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemm3m + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSgemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasGemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + A, + Atype, + lda, + B, + Btype, + ldb, + beta, + C, + Ctype, + ldc, + computeType, + algo, + ) + } + pub unsafe fn cublasCgemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasUint8gemmBias( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + transc: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const ::core::ffi::c_uchar, + A_bias: ::core::ffi::c_int, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_uchar, + B_bias: ::core::ffi::c_int, + ldb: ::core::ffi::c_int, + C: *mut ::core::ffi::c_uchar, + C_bias: ::core::ffi::c_int, + ldc: ::core::ffi::c_int, + C_mult: ::core::ffi::c_int, + C_shift: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasUint8gemmBias + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, transc, m, n, k, A, A_bias, lda, B, B_bias, ldb, C, C_bias, + ldc, C_mult, C_shift, + ) + } + pub unsafe fn cublasSsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrkEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrkEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCsyrk3mEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrk3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCherk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasZherk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZherk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCherkEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherkEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCherk3mEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherk3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasSsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCher2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZher2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCherkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZherkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZherkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasChemm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZhemm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasStrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *mut f32, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasDtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *mut f64, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasCtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *mut cuComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasZtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasStrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasDtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasCtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasZtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasSgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + Barray: *const *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasDgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + Barray: *const *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasCgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasCgemm3mBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasZgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasGemmBatchedEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + Aarray: *const *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + Barray: *const *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + Carray: *const *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmBatchedEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + Aarray, + Atype, + lda, + Barray, + Btype, + ldb, + beta, + Carray, + Ctype, + ldc, + batchCount, + computeType, + algo, + ) + } + pub unsafe fn cublasGemmStridedBatchedEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmStridedBatchedEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + A, + Atype, + lda, + strideA, + B, + Btype, + ldb, + strideB, + beta, + C, + Ctype, + ldc, + strideC, + batchCount, + computeType, + algo, + ) + } + pub unsafe fn cublasSgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f32, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasDgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f64, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasCgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasCgemm3mStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasZgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasSgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasDgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasCgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasZgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasSgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f32, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasDgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f64, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasCgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasZgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasSgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasDgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasCgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasZgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasSgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f32, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasDgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f64, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasCgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasZgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasStrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const *const f32, + lda: ::core::ffi::c_int, + B: *const *mut f32, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasDtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const *const f64, + lda: ::core::ffi::c_int, + B: *const *mut f64, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasCtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasZtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasSmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + Ainv: *const *mut f32, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasDmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + Ainv: *const *mut f64, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasCmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasZmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuDoubleComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasSgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + TauArray: *const *mut f32, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasDgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + TauArray: *const *mut f64, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasCgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasZgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuDoubleComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasSgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasDgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasCgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasZgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasSdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasDdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasCdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasZdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasStpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f32, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasDtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f64, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasCtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasZtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasStrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasStrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasDtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasCtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasZtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } +} diff --git a/src/cublas/sys/sys_11060.rs b/src/cublas/sys/sys_11060.rs new file mode 100644 index 00000000..98a8026d --- /dev/null +++ b/src/cublas/sys/sys_11060.rs @@ -0,0 +1,9910 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct float2 { + pub x: f32, + pub y: f32, +} +#[test] +fn bindgen_test_layout_float2() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(float2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(float2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(x)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 4usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(y)) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct double2 { + pub x: f64, + pub y: f64, +} +#[test] +fn bindgen_test_layout_double2() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(double2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 16usize, + concat!("Alignment of ", stringify!(double2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(y) + ) + ); +} +pub type cudaStream_t = *mut CUstream_st; +pub type cuFloatComplex = float2; +pub type cuDoubleComplex = double2; +pub type cuComplex = cuFloatComplex; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaDataType_t { + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, +} +pub use self::cudaDataType_t as cudaDataType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasStatus_t { + CUBLAS_STATUS_SUCCESS = 0, + CUBLAS_STATUS_NOT_INITIALIZED = 1, + CUBLAS_STATUS_ALLOC_FAILED = 3, + CUBLAS_STATUS_INVALID_VALUE = 7, + CUBLAS_STATUS_ARCH_MISMATCH = 8, + CUBLAS_STATUS_MAPPING_ERROR = 11, + CUBLAS_STATUS_EXECUTION_FAILED = 13, + CUBLAS_STATUS_INTERNAL_ERROR = 14, + CUBLAS_STATUS_NOT_SUPPORTED = 15, + CUBLAS_STATUS_LICENSE_ERROR = 16, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasFillMode_t { + CUBLAS_FILL_MODE_LOWER = 0, + CUBLAS_FILL_MODE_UPPER = 1, + CUBLAS_FILL_MODE_FULL = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasDiagType_t { + CUBLAS_DIAG_NON_UNIT = 0, + CUBLAS_DIAG_UNIT = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasSideMode_t { + CUBLAS_SIDE_LEFT = 0, + CUBLAS_SIDE_RIGHT = 1, +} +impl cublasOperation_t { + pub const CUBLAS_OP_HERMITAN: cublasOperation_t = cublasOperation_t::CUBLAS_OP_C; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasOperation_t { + CUBLAS_OP_N = 0, + CUBLAS_OP_T = 1, + CUBLAS_OP_C = 2, + CUBLAS_OP_CONJG = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasPointerMode_t { + CUBLAS_POINTER_MODE_HOST = 0, + CUBLAS_POINTER_MODE_DEVICE = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasAtomicsMode_t { + CUBLAS_ATOMICS_NOT_ALLOWED = 0, + CUBLAS_ATOMICS_ALLOWED = 1, +} +impl cublasGemmAlgo_t { + pub const CUBLAS_GEMM_DEFAULT: cublasGemmAlgo_t = cublasGemmAlgo_t::CUBLAS_GEMM_DFALT; +} +impl cublasGemmAlgo_t { + pub const CUBLAS_GEMM_DFALT_TENSOR_OP: cublasGemmAlgo_t = + cublasGemmAlgo_t::CUBLAS_GEMM_DEFAULT_TENSOR_OP; +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasGemmAlgo_t { + CUBLAS_GEMM_DFALT = -1, + CUBLAS_GEMM_ALGO0 = 0, + CUBLAS_GEMM_ALGO1 = 1, + CUBLAS_GEMM_ALGO2 = 2, + CUBLAS_GEMM_ALGO3 = 3, + CUBLAS_GEMM_ALGO4 = 4, + CUBLAS_GEMM_ALGO5 = 5, + CUBLAS_GEMM_ALGO6 = 6, + CUBLAS_GEMM_ALGO7 = 7, + CUBLAS_GEMM_ALGO8 = 8, + CUBLAS_GEMM_ALGO9 = 9, + CUBLAS_GEMM_ALGO10 = 10, + CUBLAS_GEMM_ALGO11 = 11, + CUBLAS_GEMM_ALGO12 = 12, + CUBLAS_GEMM_ALGO13 = 13, + CUBLAS_GEMM_ALGO14 = 14, + CUBLAS_GEMM_ALGO15 = 15, + CUBLAS_GEMM_ALGO16 = 16, + CUBLAS_GEMM_ALGO17 = 17, + CUBLAS_GEMM_ALGO18 = 18, + CUBLAS_GEMM_ALGO19 = 19, + CUBLAS_GEMM_ALGO20 = 20, + CUBLAS_GEMM_ALGO21 = 21, + CUBLAS_GEMM_ALGO22 = 22, + CUBLAS_GEMM_ALGO23 = 23, + CUBLAS_GEMM_DEFAULT_TENSOR_OP = 99, + CUBLAS_GEMM_ALGO0_TENSOR_OP = 100, + CUBLAS_GEMM_ALGO1_TENSOR_OP = 101, + CUBLAS_GEMM_ALGO2_TENSOR_OP = 102, + CUBLAS_GEMM_ALGO3_TENSOR_OP = 103, + CUBLAS_GEMM_ALGO4_TENSOR_OP = 104, + CUBLAS_GEMM_ALGO5_TENSOR_OP = 105, + CUBLAS_GEMM_ALGO6_TENSOR_OP = 106, + CUBLAS_GEMM_ALGO7_TENSOR_OP = 107, + CUBLAS_GEMM_ALGO8_TENSOR_OP = 108, + CUBLAS_GEMM_ALGO9_TENSOR_OP = 109, + CUBLAS_GEMM_ALGO10_TENSOR_OP = 110, + CUBLAS_GEMM_ALGO11_TENSOR_OP = 111, + CUBLAS_GEMM_ALGO12_TENSOR_OP = 112, + CUBLAS_GEMM_ALGO13_TENSOR_OP = 113, + CUBLAS_GEMM_ALGO14_TENSOR_OP = 114, + CUBLAS_GEMM_ALGO15_TENSOR_OP = 115, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasMath_t { + CUBLAS_DEFAULT_MATH = 0, + CUBLAS_TENSOR_OP_MATH = 1, + CUBLAS_PEDANTIC_MATH = 2, + CUBLAS_TF32_TENSOR_OP_MATH = 3, + CUBLAS_MATH_DISALLOW_REDUCED_PRECISION_REDUCTION = 16, +} +pub use self::cudaDataType as cublasDataType_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasComputeType_t { + CUBLAS_COMPUTE_16F = 64, + CUBLAS_COMPUTE_16F_PEDANTIC = 65, + CUBLAS_COMPUTE_32F = 68, + CUBLAS_COMPUTE_32F_PEDANTIC = 69, + CUBLAS_COMPUTE_32F_FAST_16F = 74, + CUBLAS_COMPUTE_32F_FAST_16BF = 75, + CUBLAS_COMPUTE_32F_FAST_TF32 = 77, + CUBLAS_COMPUTE_64F = 70, + CUBLAS_COMPUTE_64F_PEDANTIC = 71, + CUBLAS_COMPUTE_32I = 72, + CUBLAS_COMPUTE_32I_PEDANTIC = 73, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cublasContext { + _unused: [u8; 0], +} +pub type cublasHandle_t = *mut cublasContext; +pub type cublasLogCallback = + ::core::option::Option; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cublasCreate_v2: Result< + unsafe extern "C" fn(handle: *mut cublasHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDestroy_v2: + Result cublasStatus_t, ::libloading::Error>, + pub cublasGetVersion_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + version: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetCudartVersion: Result usize, ::libloading::Error>, + pub cublasSetWorkspace_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetStream_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, streamId: cudaStream_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetStream_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, streamId: *mut cudaStream_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetPointerMode_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: *mut cublasPointerMode_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetPointerMode_v2: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasPointerMode_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetAtomicsMode: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: *mut cublasAtomicsMode_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetAtomicsMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasAtomicsMode_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMathMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: *mut cublasMath_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMathMode: Result< + unsafe extern "C" fn(handle: cublasHandle_t, mode: cublasMath_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetSmCountTarget: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + smCountTarget: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetSmCountTarget: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + smCountTarget: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetStatusName: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasGetStatusString: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLoggerConfigure: Result< + unsafe extern "C" fn( + logIsOn: ::core::ffi::c_int, + logToStdOut: ::core::ffi::c_int, + logToStdErr: ::core::ffi::c_int, + logFileName: *const ::core::ffi::c_char, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetLoggerCallback: Result< + unsafe extern "C" fn(userCallback: cublasLogCallback) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetLoggerCallback: Result< + unsafe extern "C" fn(userCallback: *mut cublasLogCallback) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetVector: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetVector: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMatrix: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMatrix: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetVectorAsync: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + hostPtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetVectorAsync: Result< + unsafe extern "C" fn( + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + devicePtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + hostPtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSetMatrixAsync: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGetMatrixAsync: Result< + unsafe extern "C" fn( + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasXerbla: Result< + unsafe extern "C" fn(srName: *const ::core::ffi::c_char, info: ::core::ffi::c_int), + ::libloading::Error, + >, + pub cublasNrm2Ex: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScnrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDznrm2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDotEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDotcEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSdot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDdot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdotu_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdotc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdotu_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdotc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScalEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + executionType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdscal_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasAxpyEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZaxpy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCopyEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZcopy_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZswap_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSwapEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIsamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIdamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIcamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIzamax_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIamaxEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIsamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIdamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIcamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIzamin_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasIaminEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasAsumEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasScasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDzasum_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdrot_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + c: *const ::core::ffi::c_void, + s: *const ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut f32, + b: *mut f32, + c: *mut f32, + s: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut f64, + b: *mut f64, + c: *mut f64, + s: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut cuComplex, + b: *mut cuComplex, + c: *mut f32, + s: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZrotg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut cuDoubleComplex, + b: *mut cuDoubleComplex, + c: *mut f64, + s: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotgEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + a: *mut ::core::ffi::c_void, + b: *mut ::core::ffi::c_void, + abType: cudaDataType, + c: *mut ::core::ffi::c_void, + s: *mut ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + param: *const f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + param: *const f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + param: *const ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSrotmg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut f32, + d2: *mut f32, + x1: *mut f32, + y1: *const f32, + param: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDrotmg_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut f64, + d2: *mut f64, + x1: *mut f64, + y1: *const f64, + param: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasRotmgEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + d1: *mut ::core::ffi::c_void, + d1Type: cudaDataType, + d2: *mut ::core::ffi::c_void, + d2Type: cudaDataType, + x1: *mut ::core::ffi::c_void, + x1Type: cudaDataType, + y1: *const ::core::ffi::c_void, + y1Type: cudaDataType, + param: *mut ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtbsv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsymv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhemv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhbmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + AP: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + AP: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + AP: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpmv_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + AP: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSger_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDger_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeru_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgerc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeru_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgerc_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpr_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSspr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDspr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChpr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhpr2_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3m: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemm3m: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasUint8gemmBias: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + transc: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const ::core::ffi::c_uchar, + A_bias: ::core::ffi::c_int, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_uchar, + B_bias: ::core::ffi::c_int, + ldb: ::core::ffi::c_int, + C: *mut ::core::ffi::c_uchar, + C_bias: ::core::ffi::c_int, + ldc: ::core::ffi::c_int, + C_mult: ::core::ffi::c_int, + C_shift: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyrk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrkEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrk3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZherk_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherkEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherk3mEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyr2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCher2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZher2k_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsyrkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCherkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZherkx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZsymm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasChemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZhemm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *mut f32, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *mut f64, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *mut cuComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrmm_v2: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + Barray: *const *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + Barray: *const *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmBatchedEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + Aarray: *const *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + Barray: *const *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + Carray: *const *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasGemmStridedBatchedEx: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f32, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f64, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgemm3mStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgemmStridedBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeam: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f32, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f64, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetriBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f32, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f64, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgetrsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const *const f32, + lda: ::core::ffi::c_int, + B: *const *mut f32, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const *const f64, + lda: ::core::ffi::c_int, + B: *const *mut f64, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrsmBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + Ainv: *const *mut f32, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + Ainv: *const *mut f64, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZmatinvBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuDoubleComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + TauArray: *const *mut f32, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + TauArray: *const *mut f64, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgeqrfBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuDoubleComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZgelsBatched: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasSdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZdgmm: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f32, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f64, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtpttr: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasStrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasDtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasCtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasZtrttp: Result< + unsafe extern "C" fn( + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cublasCreate_v2 = __library.get(b"cublasCreate_v2\0").map(|sym| *sym); + let cublasDestroy_v2 = __library.get(b"cublasDestroy_v2\0").map(|sym| *sym); + let cublasGetVersion_v2 = __library.get(b"cublasGetVersion_v2\0").map(|sym| *sym); + let cublasGetProperty = __library.get(b"cublasGetProperty\0").map(|sym| *sym); + let cublasGetCudartVersion = __library.get(b"cublasGetCudartVersion\0").map(|sym| *sym); + let cublasSetWorkspace_v2 = __library.get(b"cublasSetWorkspace_v2\0").map(|sym| *sym); + let cublasSetStream_v2 = __library.get(b"cublasSetStream_v2\0").map(|sym| *sym); + let cublasGetStream_v2 = __library.get(b"cublasGetStream_v2\0").map(|sym| *sym); + let cublasGetPointerMode_v2 = __library.get(b"cublasGetPointerMode_v2\0").map(|sym| *sym); + let cublasSetPointerMode_v2 = __library.get(b"cublasSetPointerMode_v2\0").map(|sym| *sym); + let cublasGetAtomicsMode = __library.get(b"cublasGetAtomicsMode\0").map(|sym| *sym); + let cublasSetAtomicsMode = __library.get(b"cublasSetAtomicsMode\0").map(|sym| *sym); + let cublasGetMathMode = __library.get(b"cublasGetMathMode\0").map(|sym| *sym); + let cublasSetMathMode = __library.get(b"cublasSetMathMode\0").map(|sym| *sym); + let cublasGetSmCountTarget = __library.get(b"cublasGetSmCountTarget\0").map(|sym| *sym); + let cublasSetSmCountTarget = __library.get(b"cublasSetSmCountTarget\0").map(|sym| *sym); + let cublasGetStatusName = __library.get(b"cublasGetStatusName\0").map(|sym| *sym); + let cublasGetStatusString = __library.get(b"cublasGetStatusString\0").map(|sym| *sym); + let cublasLoggerConfigure = __library.get(b"cublasLoggerConfigure\0").map(|sym| *sym); + let cublasSetLoggerCallback = __library.get(b"cublasSetLoggerCallback\0").map(|sym| *sym); + let cublasGetLoggerCallback = __library.get(b"cublasGetLoggerCallback\0").map(|sym| *sym); + let cublasSetVector = __library.get(b"cublasSetVector\0").map(|sym| *sym); + let cublasGetVector = __library.get(b"cublasGetVector\0").map(|sym| *sym); + let cublasSetMatrix = __library.get(b"cublasSetMatrix\0").map(|sym| *sym); + let cublasGetMatrix = __library.get(b"cublasGetMatrix\0").map(|sym| *sym); + let cublasSetVectorAsync = __library.get(b"cublasSetVectorAsync\0").map(|sym| *sym); + let cublasGetVectorAsync = __library.get(b"cublasGetVectorAsync\0").map(|sym| *sym); + let cublasSetMatrixAsync = __library.get(b"cublasSetMatrixAsync\0").map(|sym| *sym); + let cublasGetMatrixAsync = __library.get(b"cublasGetMatrixAsync\0").map(|sym| *sym); + let cublasXerbla = __library.get(b"cublasXerbla\0").map(|sym| *sym); + let cublasNrm2Ex = __library.get(b"cublasNrm2Ex\0").map(|sym| *sym); + let cublasSnrm2_v2 = __library.get(b"cublasSnrm2_v2\0").map(|sym| *sym); + let cublasDnrm2_v2 = __library.get(b"cublasDnrm2_v2\0").map(|sym| *sym); + let cublasScnrm2_v2 = __library.get(b"cublasScnrm2_v2\0").map(|sym| *sym); + let cublasDznrm2_v2 = __library.get(b"cublasDznrm2_v2\0").map(|sym| *sym); + let cublasDotEx = __library.get(b"cublasDotEx\0").map(|sym| *sym); + let cublasDotcEx = __library.get(b"cublasDotcEx\0").map(|sym| *sym); + let cublasSdot_v2 = __library.get(b"cublasSdot_v2\0").map(|sym| *sym); + let cublasDdot_v2 = __library.get(b"cublasDdot_v2\0").map(|sym| *sym); + let cublasCdotu_v2 = __library.get(b"cublasCdotu_v2\0").map(|sym| *sym); + let cublasCdotc_v2 = __library.get(b"cublasCdotc_v2\0").map(|sym| *sym); + let cublasZdotu_v2 = __library.get(b"cublasZdotu_v2\0").map(|sym| *sym); + let cublasZdotc_v2 = __library.get(b"cublasZdotc_v2\0").map(|sym| *sym); + let cublasScalEx = __library.get(b"cublasScalEx\0").map(|sym| *sym); + let cublasSscal_v2 = __library.get(b"cublasSscal_v2\0").map(|sym| *sym); + let cublasDscal_v2 = __library.get(b"cublasDscal_v2\0").map(|sym| *sym); + let cublasCscal_v2 = __library.get(b"cublasCscal_v2\0").map(|sym| *sym); + let cublasCsscal_v2 = __library.get(b"cublasCsscal_v2\0").map(|sym| *sym); + let cublasZscal_v2 = __library.get(b"cublasZscal_v2\0").map(|sym| *sym); + let cublasZdscal_v2 = __library.get(b"cublasZdscal_v2\0").map(|sym| *sym); + let cublasAxpyEx = __library.get(b"cublasAxpyEx\0").map(|sym| *sym); + let cublasSaxpy_v2 = __library.get(b"cublasSaxpy_v2\0").map(|sym| *sym); + let cublasDaxpy_v2 = __library.get(b"cublasDaxpy_v2\0").map(|sym| *sym); + let cublasCaxpy_v2 = __library.get(b"cublasCaxpy_v2\0").map(|sym| *sym); + let cublasZaxpy_v2 = __library.get(b"cublasZaxpy_v2\0").map(|sym| *sym); + let cublasCopyEx = __library.get(b"cublasCopyEx\0").map(|sym| *sym); + let cublasScopy_v2 = __library.get(b"cublasScopy_v2\0").map(|sym| *sym); + let cublasDcopy_v2 = __library.get(b"cublasDcopy_v2\0").map(|sym| *sym); + let cublasCcopy_v2 = __library.get(b"cublasCcopy_v2\0").map(|sym| *sym); + let cublasZcopy_v2 = __library.get(b"cublasZcopy_v2\0").map(|sym| *sym); + let cublasSswap_v2 = __library.get(b"cublasSswap_v2\0").map(|sym| *sym); + let cublasDswap_v2 = __library.get(b"cublasDswap_v2\0").map(|sym| *sym); + let cublasCswap_v2 = __library.get(b"cublasCswap_v2\0").map(|sym| *sym); + let cublasZswap_v2 = __library.get(b"cublasZswap_v2\0").map(|sym| *sym); + let cublasSwapEx = __library.get(b"cublasSwapEx\0").map(|sym| *sym); + let cublasIsamax_v2 = __library.get(b"cublasIsamax_v2\0").map(|sym| *sym); + let cublasIdamax_v2 = __library.get(b"cublasIdamax_v2\0").map(|sym| *sym); + let cublasIcamax_v2 = __library.get(b"cublasIcamax_v2\0").map(|sym| *sym); + let cublasIzamax_v2 = __library.get(b"cublasIzamax_v2\0").map(|sym| *sym); + let cublasIamaxEx = __library.get(b"cublasIamaxEx\0").map(|sym| *sym); + let cublasIsamin_v2 = __library.get(b"cublasIsamin_v2\0").map(|sym| *sym); + let cublasIdamin_v2 = __library.get(b"cublasIdamin_v2\0").map(|sym| *sym); + let cublasIcamin_v2 = __library.get(b"cublasIcamin_v2\0").map(|sym| *sym); + let cublasIzamin_v2 = __library.get(b"cublasIzamin_v2\0").map(|sym| *sym); + let cublasIaminEx = __library.get(b"cublasIaminEx\0").map(|sym| *sym); + let cublasAsumEx = __library.get(b"cublasAsumEx\0").map(|sym| *sym); + let cublasSasum_v2 = __library.get(b"cublasSasum_v2\0").map(|sym| *sym); + let cublasDasum_v2 = __library.get(b"cublasDasum_v2\0").map(|sym| *sym); + let cublasScasum_v2 = __library.get(b"cublasScasum_v2\0").map(|sym| *sym); + let cublasDzasum_v2 = __library.get(b"cublasDzasum_v2\0").map(|sym| *sym); + let cublasSrot_v2 = __library.get(b"cublasSrot_v2\0").map(|sym| *sym); + let cublasDrot_v2 = __library.get(b"cublasDrot_v2\0").map(|sym| *sym); + let cublasCrot_v2 = __library.get(b"cublasCrot_v2\0").map(|sym| *sym); + let cublasCsrot_v2 = __library.get(b"cublasCsrot_v2\0").map(|sym| *sym); + let cublasZrot_v2 = __library.get(b"cublasZrot_v2\0").map(|sym| *sym); + let cublasZdrot_v2 = __library.get(b"cublasZdrot_v2\0").map(|sym| *sym); + let cublasRotEx = __library.get(b"cublasRotEx\0").map(|sym| *sym); + let cublasSrotg_v2 = __library.get(b"cublasSrotg_v2\0").map(|sym| *sym); + let cublasDrotg_v2 = __library.get(b"cublasDrotg_v2\0").map(|sym| *sym); + let cublasCrotg_v2 = __library.get(b"cublasCrotg_v2\0").map(|sym| *sym); + let cublasZrotg_v2 = __library.get(b"cublasZrotg_v2\0").map(|sym| *sym); + let cublasRotgEx = __library.get(b"cublasRotgEx\0").map(|sym| *sym); + let cublasSrotm_v2 = __library.get(b"cublasSrotm_v2\0").map(|sym| *sym); + let cublasDrotm_v2 = __library.get(b"cublasDrotm_v2\0").map(|sym| *sym); + let cublasRotmEx = __library.get(b"cublasRotmEx\0").map(|sym| *sym); + let cublasSrotmg_v2 = __library.get(b"cublasSrotmg_v2\0").map(|sym| *sym); + let cublasDrotmg_v2 = __library.get(b"cublasDrotmg_v2\0").map(|sym| *sym); + let cublasRotmgEx = __library.get(b"cublasRotmgEx\0").map(|sym| *sym); + let cublasSgemv_v2 = __library.get(b"cublasSgemv_v2\0").map(|sym| *sym); + let cublasDgemv_v2 = __library.get(b"cublasDgemv_v2\0").map(|sym| *sym); + let cublasCgemv_v2 = __library.get(b"cublasCgemv_v2\0").map(|sym| *sym); + let cublasZgemv_v2 = __library.get(b"cublasZgemv_v2\0").map(|sym| *sym); + let cublasSgbmv_v2 = __library.get(b"cublasSgbmv_v2\0").map(|sym| *sym); + let cublasDgbmv_v2 = __library.get(b"cublasDgbmv_v2\0").map(|sym| *sym); + let cublasCgbmv_v2 = __library.get(b"cublasCgbmv_v2\0").map(|sym| *sym); + let cublasZgbmv_v2 = __library.get(b"cublasZgbmv_v2\0").map(|sym| *sym); + let cublasStrmv_v2 = __library.get(b"cublasStrmv_v2\0").map(|sym| *sym); + let cublasDtrmv_v2 = __library.get(b"cublasDtrmv_v2\0").map(|sym| *sym); + let cublasCtrmv_v2 = __library.get(b"cublasCtrmv_v2\0").map(|sym| *sym); + let cublasZtrmv_v2 = __library.get(b"cublasZtrmv_v2\0").map(|sym| *sym); + let cublasStbmv_v2 = __library.get(b"cublasStbmv_v2\0").map(|sym| *sym); + let cublasDtbmv_v2 = __library.get(b"cublasDtbmv_v2\0").map(|sym| *sym); + let cublasCtbmv_v2 = __library.get(b"cublasCtbmv_v2\0").map(|sym| *sym); + let cublasZtbmv_v2 = __library.get(b"cublasZtbmv_v2\0").map(|sym| *sym); + let cublasStpmv_v2 = __library.get(b"cublasStpmv_v2\0").map(|sym| *sym); + let cublasDtpmv_v2 = __library.get(b"cublasDtpmv_v2\0").map(|sym| *sym); + let cublasCtpmv_v2 = __library.get(b"cublasCtpmv_v2\0").map(|sym| *sym); + let cublasZtpmv_v2 = __library.get(b"cublasZtpmv_v2\0").map(|sym| *sym); + let cublasStrsv_v2 = __library.get(b"cublasStrsv_v2\0").map(|sym| *sym); + let cublasDtrsv_v2 = __library.get(b"cublasDtrsv_v2\0").map(|sym| *sym); + let cublasCtrsv_v2 = __library.get(b"cublasCtrsv_v2\0").map(|sym| *sym); + let cublasZtrsv_v2 = __library.get(b"cublasZtrsv_v2\0").map(|sym| *sym); + let cublasStpsv_v2 = __library.get(b"cublasStpsv_v2\0").map(|sym| *sym); + let cublasDtpsv_v2 = __library.get(b"cublasDtpsv_v2\0").map(|sym| *sym); + let cublasCtpsv_v2 = __library.get(b"cublasCtpsv_v2\0").map(|sym| *sym); + let cublasZtpsv_v2 = __library.get(b"cublasZtpsv_v2\0").map(|sym| *sym); + let cublasStbsv_v2 = __library.get(b"cublasStbsv_v2\0").map(|sym| *sym); + let cublasDtbsv_v2 = __library.get(b"cublasDtbsv_v2\0").map(|sym| *sym); + let cublasCtbsv_v2 = __library.get(b"cublasCtbsv_v2\0").map(|sym| *sym); + let cublasZtbsv_v2 = __library.get(b"cublasZtbsv_v2\0").map(|sym| *sym); + let cublasSsymv_v2 = __library.get(b"cublasSsymv_v2\0").map(|sym| *sym); + let cublasDsymv_v2 = __library.get(b"cublasDsymv_v2\0").map(|sym| *sym); + let cublasCsymv_v2 = __library.get(b"cublasCsymv_v2\0").map(|sym| *sym); + let cublasZsymv_v2 = __library.get(b"cublasZsymv_v2\0").map(|sym| *sym); + let cublasChemv_v2 = __library.get(b"cublasChemv_v2\0").map(|sym| *sym); + let cublasZhemv_v2 = __library.get(b"cublasZhemv_v2\0").map(|sym| *sym); + let cublasSsbmv_v2 = __library.get(b"cublasSsbmv_v2\0").map(|sym| *sym); + let cublasDsbmv_v2 = __library.get(b"cublasDsbmv_v2\0").map(|sym| *sym); + let cublasChbmv_v2 = __library.get(b"cublasChbmv_v2\0").map(|sym| *sym); + let cublasZhbmv_v2 = __library.get(b"cublasZhbmv_v2\0").map(|sym| *sym); + let cublasSspmv_v2 = __library.get(b"cublasSspmv_v2\0").map(|sym| *sym); + let cublasDspmv_v2 = __library.get(b"cublasDspmv_v2\0").map(|sym| *sym); + let cublasChpmv_v2 = __library.get(b"cublasChpmv_v2\0").map(|sym| *sym); + let cublasZhpmv_v2 = __library.get(b"cublasZhpmv_v2\0").map(|sym| *sym); + let cublasSger_v2 = __library.get(b"cublasSger_v2\0").map(|sym| *sym); + let cublasDger_v2 = __library.get(b"cublasDger_v2\0").map(|sym| *sym); + let cublasCgeru_v2 = __library.get(b"cublasCgeru_v2\0").map(|sym| *sym); + let cublasCgerc_v2 = __library.get(b"cublasCgerc_v2\0").map(|sym| *sym); + let cublasZgeru_v2 = __library.get(b"cublasZgeru_v2\0").map(|sym| *sym); + let cublasZgerc_v2 = __library.get(b"cublasZgerc_v2\0").map(|sym| *sym); + let cublasSsyr_v2 = __library.get(b"cublasSsyr_v2\0").map(|sym| *sym); + let cublasDsyr_v2 = __library.get(b"cublasDsyr_v2\0").map(|sym| *sym); + let cublasCsyr_v2 = __library.get(b"cublasCsyr_v2\0").map(|sym| *sym); + let cublasZsyr_v2 = __library.get(b"cublasZsyr_v2\0").map(|sym| *sym); + let cublasCher_v2 = __library.get(b"cublasCher_v2\0").map(|sym| *sym); + let cublasZher_v2 = __library.get(b"cublasZher_v2\0").map(|sym| *sym); + let cublasSspr_v2 = __library.get(b"cublasSspr_v2\0").map(|sym| *sym); + let cublasDspr_v2 = __library.get(b"cublasDspr_v2\0").map(|sym| *sym); + let cublasChpr_v2 = __library.get(b"cublasChpr_v2\0").map(|sym| *sym); + let cublasZhpr_v2 = __library.get(b"cublasZhpr_v2\0").map(|sym| *sym); + let cublasSsyr2_v2 = __library.get(b"cublasSsyr2_v2\0").map(|sym| *sym); + let cublasDsyr2_v2 = __library.get(b"cublasDsyr2_v2\0").map(|sym| *sym); + let cublasCsyr2_v2 = __library.get(b"cublasCsyr2_v2\0").map(|sym| *sym); + let cublasZsyr2_v2 = __library.get(b"cublasZsyr2_v2\0").map(|sym| *sym); + let cublasCher2_v2 = __library.get(b"cublasCher2_v2\0").map(|sym| *sym); + let cublasZher2_v2 = __library.get(b"cublasZher2_v2\0").map(|sym| *sym); + let cublasSspr2_v2 = __library.get(b"cublasSspr2_v2\0").map(|sym| *sym); + let cublasDspr2_v2 = __library.get(b"cublasDspr2_v2\0").map(|sym| *sym); + let cublasChpr2_v2 = __library.get(b"cublasChpr2_v2\0").map(|sym| *sym); + let cublasZhpr2_v2 = __library.get(b"cublasZhpr2_v2\0").map(|sym| *sym); + let cublasSgemm_v2 = __library.get(b"cublasSgemm_v2\0").map(|sym| *sym); + let cublasDgemm_v2 = __library.get(b"cublasDgemm_v2\0").map(|sym| *sym); + let cublasCgemm_v2 = __library.get(b"cublasCgemm_v2\0").map(|sym| *sym); + let cublasCgemm3m = __library.get(b"cublasCgemm3m\0").map(|sym| *sym); + let cublasCgemm3mEx = __library.get(b"cublasCgemm3mEx\0").map(|sym| *sym); + let cublasZgemm_v2 = __library.get(b"cublasZgemm_v2\0").map(|sym| *sym); + let cublasZgemm3m = __library.get(b"cublasZgemm3m\0").map(|sym| *sym); + let cublasSgemmEx = __library.get(b"cublasSgemmEx\0").map(|sym| *sym); + let cublasGemmEx = __library.get(b"cublasGemmEx\0").map(|sym| *sym); + let cublasCgemmEx = __library.get(b"cublasCgemmEx\0").map(|sym| *sym); + let cublasUint8gemmBias = __library.get(b"cublasUint8gemmBias\0").map(|sym| *sym); + let cublasSsyrk_v2 = __library.get(b"cublasSsyrk_v2\0").map(|sym| *sym); + let cublasDsyrk_v2 = __library.get(b"cublasDsyrk_v2\0").map(|sym| *sym); + let cublasCsyrk_v2 = __library.get(b"cublasCsyrk_v2\0").map(|sym| *sym); + let cublasZsyrk_v2 = __library.get(b"cublasZsyrk_v2\0").map(|sym| *sym); + let cublasCsyrkEx = __library.get(b"cublasCsyrkEx\0").map(|sym| *sym); + let cublasCsyrk3mEx = __library.get(b"cublasCsyrk3mEx\0").map(|sym| *sym); + let cublasCherk_v2 = __library.get(b"cublasCherk_v2\0").map(|sym| *sym); + let cublasZherk_v2 = __library.get(b"cublasZherk_v2\0").map(|sym| *sym); + let cublasCherkEx = __library.get(b"cublasCherkEx\0").map(|sym| *sym); + let cublasCherk3mEx = __library.get(b"cublasCherk3mEx\0").map(|sym| *sym); + let cublasSsyr2k_v2 = __library.get(b"cublasSsyr2k_v2\0").map(|sym| *sym); + let cublasDsyr2k_v2 = __library.get(b"cublasDsyr2k_v2\0").map(|sym| *sym); + let cublasCsyr2k_v2 = __library.get(b"cublasCsyr2k_v2\0").map(|sym| *sym); + let cublasZsyr2k_v2 = __library.get(b"cublasZsyr2k_v2\0").map(|sym| *sym); + let cublasCher2k_v2 = __library.get(b"cublasCher2k_v2\0").map(|sym| *sym); + let cublasZher2k_v2 = __library.get(b"cublasZher2k_v2\0").map(|sym| *sym); + let cublasSsyrkx = __library.get(b"cublasSsyrkx\0").map(|sym| *sym); + let cublasDsyrkx = __library.get(b"cublasDsyrkx\0").map(|sym| *sym); + let cublasCsyrkx = __library.get(b"cublasCsyrkx\0").map(|sym| *sym); + let cublasZsyrkx = __library.get(b"cublasZsyrkx\0").map(|sym| *sym); + let cublasCherkx = __library.get(b"cublasCherkx\0").map(|sym| *sym); + let cublasZherkx = __library.get(b"cublasZherkx\0").map(|sym| *sym); + let cublasSsymm_v2 = __library.get(b"cublasSsymm_v2\0").map(|sym| *sym); + let cublasDsymm_v2 = __library.get(b"cublasDsymm_v2\0").map(|sym| *sym); + let cublasCsymm_v2 = __library.get(b"cublasCsymm_v2\0").map(|sym| *sym); + let cublasZsymm_v2 = __library.get(b"cublasZsymm_v2\0").map(|sym| *sym); + let cublasChemm_v2 = __library.get(b"cublasChemm_v2\0").map(|sym| *sym); + let cublasZhemm_v2 = __library.get(b"cublasZhemm_v2\0").map(|sym| *sym); + let cublasStrsm_v2 = __library.get(b"cublasStrsm_v2\0").map(|sym| *sym); + let cublasDtrsm_v2 = __library.get(b"cublasDtrsm_v2\0").map(|sym| *sym); + let cublasCtrsm_v2 = __library.get(b"cublasCtrsm_v2\0").map(|sym| *sym); + let cublasZtrsm_v2 = __library.get(b"cublasZtrsm_v2\0").map(|sym| *sym); + let cublasStrmm_v2 = __library.get(b"cublasStrmm_v2\0").map(|sym| *sym); + let cublasDtrmm_v2 = __library.get(b"cublasDtrmm_v2\0").map(|sym| *sym); + let cublasCtrmm_v2 = __library.get(b"cublasCtrmm_v2\0").map(|sym| *sym); + let cublasZtrmm_v2 = __library.get(b"cublasZtrmm_v2\0").map(|sym| *sym); + let cublasSgemmBatched = __library.get(b"cublasSgemmBatched\0").map(|sym| *sym); + let cublasDgemmBatched = __library.get(b"cublasDgemmBatched\0").map(|sym| *sym); + let cublasCgemmBatched = __library.get(b"cublasCgemmBatched\0").map(|sym| *sym); + let cublasCgemm3mBatched = __library.get(b"cublasCgemm3mBatched\0").map(|sym| *sym); + let cublasZgemmBatched = __library.get(b"cublasZgemmBatched\0").map(|sym| *sym); + let cublasGemmBatchedEx = __library.get(b"cublasGemmBatchedEx\0").map(|sym| *sym); + let cublasGemmStridedBatchedEx = __library + .get(b"cublasGemmStridedBatchedEx\0") + .map(|sym| *sym); + let cublasSgemmStridedBatched = __library + .get(b"cublasSgemmStridedBatched\0") + .map(|sym| *sym); + let cublasDgemmStridedBatched = __library + .get(b"cublasDgemmStridedBatched\0") + .map(|sym| *sym); + let cublasCgemmStridedBatched = __library + .get(b"cublasCgemmStridedBatched\0") + .map(|sym| *sym); + let cublasCgemm3mStridedBatched = __library + .get(b"cublasCgemm3mStridedBatched\0") + .map(|sym| *sym); + let cublasZgemmStridedBatched = __library + .get(b"cublasZgemmStridedBatched\0") + .map(|sym| *sym); + let cublasSgeam = __library.get(b"cublasSgeam\0").map(|sym| *sym); + let cublasDgeam = __library.get(b"cublasDgeam\0").map(|sym| *sym); + let cublasCgeam = __library.get(b"cublasCgeam\0").map(|sym| *sym); + let cublasZgeam = __library.get(b"cublasZgeam\0").map(|sym| *sym); + let cublasSgetrfBatched = __library.get(b"cublasSgetrfBatched\0").map(|sym| *sym); + let cublasDgetrfBatched = __library.get(b"cublasDgetrfBatched\0").map(|sym| *sym); + let cublasCgetrfBatched = __library.get(b"cublasCgetrfBatched\0").map(|sym| *sym); + let cublasZgetrfBatched = __library.get(b"cublasZgetrfBatched\0").map(|sym| *sym); + let cublasSgetriBatched = __library.get(b"cublasSgetriBatched\0").map(|sym| *sym); + let cublasDgetriBatched = __library.get(b"cublasDgetriBatched\0").map(|sym| *sym); + let cublasCgetriBatched = __library.get(b"cublasCgetriBatched\0").map(|sym| *sym); + let cublasZgetriBatched = __library.get(b"cublasZgetriBatched\0").map(|sym| *sym); + let cublasSgetrsBatched = __library.get(b"cublasSgetrsBatched\0").map(|sym| *sym); + let cublasDgetrsBatched = __library.get(b"cublasDgetrsBatched\0").map(|sym| *sym); + let cublasCgetrsBatched = __library.get(b"cublasCgetrsBatched\0").map(|sym| *sym); + let cublasZgetrsBatched = __library.get(b"cublasZgetrsBatched\0").map(|sym| *sym); + let cublasStrsmBatched = __library.get(b"cublasStrsmBatched\0").map(|sym| *sym); + let cublasDtrsmBatched = __library.get(b"cublasDtrsmBatched\0").map(|sym| *sym); + let cublasCtrsmBatched = __library.get(b"cublasCtrsmBatched\0").map(|sym| *sym); + let cublasZtrsmBatched = __library.get(b"cublasZtrsmBatched\0").map(|sym| *sym); + let cublasSmatinvBatched = __library.get(b"cublasSmatinvBatched\0").map(|sym| *sym); + let cublasDmatinvBatched = __library.get(b"cublasDmatinvBatched\0").map(|sym| *sym); + let cublasCmatinvBatched = __library.get(b"cublasCmatinvBatched\0").map(|sym| *sym); + let cublasZmatinvBatched = __library.get(b"cublasZmatinvBatched\0").map(|sym| *sym); + let cublasSgeqrfBatched = __library.get(b"cublasSgeqrfBatched\0").map(|sym| *sym); + let cublasDgeqrfBatched = __library.get(b"cublasDgeqrfBatched\0").map(|sym| *sym); + let cublasCgeqrfBatched = __library.get(b"cublasCgeqrfBatched\0").map(|sym| *sym); + let cublasZgeqrfBatched = __library.get(b"cublasZgeqrfBatched\0").map(|sym| *sym); + let cublasSgelsBatched = __library.get(b"cublasSgelsBatched\0").map(|sym| *sym); + let cublasDgelsBatched = __library.get(b"cublasDgelsBatched\0").map(|sym| *sym); + let cublasCgelsBatched = __library.get(b"cublasCgelsBatched\0").map(|sym| *sym); + let cublasZgelsBatched = __library.get(b"cublasZgelsBatched\0").map(|sym| *sym); + let cublasSdgmm = __library.get(b"cublasSdgmm\0").map(|sym| *sym); + let cublasDdgmm = __library.get(b"cublasDdgmm\0").map(|sym| *sym); + let cublasCdgmm = __library.get(b"cublasCdgmm\0").map(|sym| *sym); + let cublasZdgmm = __library.get(b"cublasZdgmm\0").map(|sym| *sym); + let cublasStpttr = __library.get(b"cublasStpttr\0").map(|sym| *sym); + let cublasDtpttr = __library.get(b"cublasDtpttr\0").map(|sym| *sym); + let cublasCtpttr = __library.get(b"cublasCtpttr\0").map(|sym| *sym); + let cublasZtpttr = __library.get(b"cublasZtpttr\0").map(|sym| *sym); + let cublasStrttp = __library.get(b"cublasStrttp\0").map(|sym| *sym); + let cublasDtrttp = __library.get(b"cublasDtrttp\0").map(|sym| *sym); + let cublasCtrttp = __library.get(b"cublasCtrttp\0").map(|sym| *sym); + let cublasZtrttp = __library.get(b"cublasZtrttp\0").map(|sym| *sym); + Ok(Lib { + __library, + cublasCreate_v2, + cublasDestroy_v2, + cublasGetVersion_v2, + cublasGetProperty, + cublasGetCudartVersion, + cublasSetWorkspace_v2, + cublasSetStream_v2, + cublasGetStream_v2, + cublasGetPointerMode_v2, + cublasSetPointerMode_v2, + cublasGetAtomicsMode, + cublasSetAtomicsMode, + cublasGetMathMode, + cublasSetMathMode, + cublasGetSmCountTarget, + cublasSetSmCountTarget, + cublasGetStatusName, + cublasGetStatusString, + cublasLoggerConfigure, + cublasSetLoggerCallback, + cublasGetLoggerCallback, + cublasSetVector, + cublasGetVector, + cublasSetMatrix, + cublasGetMatrix, + cublasSetVectorAsync, + cublasGetVectorAsync, + cublasSetMatrixAsync, + cublasGetMatrixAsync, + cublasXerbla, + cublasNrm2Ex, + cublasSnrm2_v2, + cublasDnrm2_v2, + cublasScnrm2_v2, + cublasDznrm2_v2, + cublasDotEx, + cublasDotcEx, + cublasSdot_v2, + cublasDdot_v2, + cublasCdotu_v2, + cublasCdotc_v2, + cublasZdotu_v2, + cublasZdotc_v2, + cublasScalEx, + cublasSscal_v2, + cublasDscal_v2, + cublasCscal_v2, + cublasCsscal_v2, + cublasZscal_v2, + cublasZdscal_v2, + cublasAxpyEx, + cublasSaxpy_v2, + cublasDaxpy_v2, + cublasCaxpy_v2, + cublasZaxpy_v2, + cublasCopyEx, + cublasScopy_v2, + cublasDcopy_v2, + cublasCcopy_v2, + cublasZcopy_v2, + cublasSswap_v2, + cublasDswap_v2, + cublasCswap_v2, + cublasZswap_v2, + cublasSwapEx, + cublasIsamax_v2, + cublasIdamax_v2, + cublasIcamax_v2, + cublasIzamax_v2, + cublasIamaxEx, + cublasIsamin_v2, + cublasIdamin_v2, + cublasIcamin_v2, + cublasIzamin_v2, + cublasIaminEx, + cublasAsumEx, + cublasSasum_v2, + cublasDasum_v2, + cublasScasum_v2, + cublasDzasum_v2, + cublasSrot_v2, + cublasDrot_v2, + cublasCrot_v2, + cublasCsrot_v2, + cublasZrot_v2, + cublasZdrot_v2, + cublasRotEx, + cublasSrotg_v2, + cublasDrotg_v2, + cublasCrotg_v2, + cublasZrotg_v2, + cublasRotgEx, + cublasSrotm_v2, + cublasDrotm_v2, + cublasRotmEx, + cublasSrotmg_v2, + cublasDrotmg_v2, + cublasRotmgEx, + cublasSgemv_v2, + cublasDgemv_v2, + cublasCgemv_v2, + cublasZgemv_v2, + cublasSgbmv_v2, + cublasDgbmv_v2, + cublasCgbmv_v2, + cublasZgbmv_v2, + cublasStrmv_v2, + cublasDtrmv_v2, + cublasCtrmv_v2, + cublasZtrmv_v2, + cublasStbmv_v2, + cublasDtbmv_v2, + cublasCtbmv_v2, + cublasZtbmv_v2, + cublasStpmv_v2, + cublasDtpmv_v2, + cublasCtpmv_v2, + cublasZtpmv_v2, + cublasStrsv_v2, + cublasDtrsv_v2, + cublasCtrsv_v2, + cublasZtrsv_v2, + cublasStpsv_v2, + cublasDtpsv_v2, + cublasCtpsv_v2, + cublasZtpsv_v2, + cublasStbsv_v2, + cublasDtbsv_v2, + cublasCtbsv_v2, + cublasZtbsv_v2, + cublasSsymv_v2, + cublasDsymv_v2, + cublasCsymv_v2, + cublasZsymv_v2, + cublasChemv_v2, + cublasZhemv_v2, + cublasSsbmv_v2, + cublasDsbmv_v2, + cublasChbmv_v2, + cublasZhbmv_v2, + cublasSspmv_v2, + cublasDspmv_v2, + cublasChpmv_v2, + cublasZhpmv_v2, + cublasSger_v2, + cublasDger_v2, + cublasCgeru_v2, + cublasCgerc_v2, + cublasZgeru_v2, + cublasZgerc_v2, + cublasSsyr_v2, + cublasDsyr_v2, + cublasCsyr_v2, + cublasZsyr_v2, + cublasCher_v2, + cublasZher_v2, + cublasSspr_v2, + cublasDspr_v2, + cublasChpr_v2, + cublasZhpr_v2, + cublasSsyr2_v2, + cublasDsyr2_v2, + cublasCsyr2_v2, + cublasZsyr2_v2, + cublasCher2_v2, + cublasZher2_v2, + cublasSspr2_v2, + cublasDspr2_v2, + cublasChpr2_v2, + cublasZhpr2_v2, + cublasSgemm_v2, + cublasDgemm_v2, + cublasCgemm_v2, + cublasCgemm3m, + cublasCgemm3mEx, + cublasZgemm_v2, + cublasZgemm3m, + cublasSgemmEx, + cublasGemmEx, + cublasCgemmEx, + cublasUint8gemmBias, + cublasSsyrk_v2, + cublasDsyrk_v2, + cublasCsyrk_v2, + cublasZsyrk_v2, + cublasCsyrkEx, + cublasCsyrk3mEx, + cublasCherk_v2, + cublasZherk_v2, + cublasCherkEx, + cublasCherk3mEx, + cublasSsyr2k_v2, + cublasDsyr2k_v2, + cublasCsyr2k_v2, + cublasZsyr2k_v2, + cublasCher2k_v2, + cublasZher2k_v2, + cublasSsyrkx, + cublasDsyrkx, + cublasCsyrkx, + cublasZsyrkx, + cublasCherkx, + cublasZherkx, + cublasSsymm_v2, + cublasDsymm_v2, + cublasCsymm_v2, + cublasZsymm_v2, + cublasChemm_v2, + cublasZhemm_v2, + cublasStrsm_v2, + cublasDtrsm_v2, + cublasCtrsm_v2, + cublasZtrsm_v2, + cublasStrmm_v2, + cublasDtrmm_v2, + cublasCtrmm_v2, + cublasZtrmm_v2, + cublasSgemmBatched, + cublasDgemmBatched, + cublasCgemmBatched, + cublasCgemm3mBatched, + cublasZgemmBatched, + cublasGemmBatchedEx, + cublasGemmStridedBatchedEx, + cublasSgemmStridedBatched, + cublasDgemmStridedBatched, + cublasCgemmStridedBatched, + cublasCgemm3mStridedBatched, + cublasZgemmStridedBatched, + cublasSgeam, + cublasDgeam, + cublasCgeam, + cublasZgeam, + cublasSgetrfBatched, + cublasDgetrfBatched, + cublasCgetrfBatched, + cublasZgetrfBatched, + cublasSgetriBatched, + cublasDgetriBatched, + cublasCgetriBatched, + cublasZgetriBatched, + cublasSgetrsBatched, + cublasDgetrsBatched, + cublasCgetrsBatched, + cublasZgetrsBatched, + cublasStrsmBatched, + cublasDtrsmBatched, + cublasCtrsmBatched, + cublasZtrsmBatched, + cublasSmatinvBatched, + cublasDmatinvBatched, + cublasCmatinvBatched, + cublasZmatinvBatched, + cublasSgeqrfBatched, + cublasDgeqrfBatched, + cublasCgeqrfBatched, + cublasZgeqrfBatched, + cublasSgelsBatched, + cublasDgelsBatched, + cublasCgelsBatched, + cublasZgelsBatched, + cublasSdgmm, + cublasDdgmm, + cublasCdgmm, + cublasZdgmm, + cublasStpttr, + cublasDtpttr, + cublasCtpttr, + cublasZtpttr, + cublasStrttp, + cublasDtrttp, + cublasCtrttp, + cublasZtrttp, + }) + } + pub unsafe fn cublasCreate_v2(&self, handle: *mut cublasHandle_t) -> cublasStatus_t { + (self + .cublasCreate_v2 + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cublasDestroy_v2(&self, handle: cublasHandle_t) -> cublasStatus_t { + (self + .cublasDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cublasGetVersion_v2( + &self, + handle: cublasHandle_t, + version: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetVersion_v2 + .as_ref() + .expect("Expected function, got error."))(handle, version) + } + pub unsafe fn cublasGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cublasGetCudartVersion(&self) -> usize { + (self + .cublasGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasSetWorkspace_v2( + &self, + handle: cublasHandle_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasSetWorkspace_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, workspace, workspaceSizeInBytes + ) + } + pub unsafe fn cublasSetStream_v2( + &self, + handle: cublasHandle_t, + streamId: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetStream_v2 + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cublasGetStream_v2( + &self, + handle: cublasHandle_t, + streamId: *mut cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetStream_v2 + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cublasGetPointerMode_v2( + &self, + handle: cublasHandle_t, + mode: *mut cublasPointerMode_t, + ) -> cublasStatus_t { + (self + .cublasGetPointerMode_v2 + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetPointerMode_v2( + &self, + handle: cublasHandle_t, + mode: cublasPointerMode_t, + ) -> cublasStatus_t { + (self + .cublasSetPointerMode_v2 + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetAtomicsMode( + &self, + handle: cublasHandle_t, + mode: *mut cublasAtomicsMode_t, + ) -> cublasStatus_t { + (self + .cublasGetAtomicsMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetAtomicsMode( + &self, + handle: cublasHandle_t, + mode: cublasAtomicsMode_t, + ) -> cublasStatus_t { + (self + .cublasSetAtomicsMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetMathMode( + &self, + handle: cublasHandle_t, + mode: *mut cublasMath_t, + ) -> cublasStatus_t { + (self + .cublasGetMathMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasSetMathMode( + &self, + handle: cublasHandle_t, + mode: cublasMath_t, + ) -> cublasStatus_t { + (self + .cublasSetMathMode + .as_ref() + .expect("Expected function, got error."))(handle, mode) + } + pub unsafe fn cublasGetSmCountTarget( + &self, + handle: cublasHandle_t, + smCountTarget: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetSmCountTarget + .as_ref() + .expect("Expected function, got error."))(handle, smCountTarget) + } + pub unsafe fn cublasSetSmCountTarget( + &self, + handle: cublasHandle_t, + smCountTarget: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetSmCountTarget + .as_ref() + .expect("Expected function, got error."))(handle, smCountTarget) + } + pub unsafe fn cublasGetStatusName(&self, status: cublasStatus_t) -> *const ::core::ffi::c_char { + (self + .cublasGetStatusName + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasGetStatusString( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasGetStatusString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLoggerConfigure( + &self, + logIsOn: ::core::ffi::c_int, + logToStdOut: ::core::ffi::c_int, + logToStdErr: ::core::ffi::c_int, + logFileName: *const ::core::ffi::c_char, + ) -> cublasStatus_t { + (self + .cublasLoggerConfigure + .as_ref() + .expect("Expected function, got error."))( + logIsOn, + logToStdOut, + logToStdErr, + logFileName, + ) + } + pub unsafe fn cublasSetLoggerCallback( + &self, + userCallback: cublasLogCallback, + ) -> cublasStatus_t { + (self + .cublasSetLoggerCallback + .as_ref() + .expect("Expected function, got error."))(userCallback) + } + pub unsafe fn cublasGetLoggerCallback( + &self, + userCallback: *mut cublasLogCallback, + ) -> cublasStatus_t { + (self + .cublasGetLoggerCallback + .as_ref() + .expect("Expected function, got error."))(userCallback) + } + pub unsafe fn cublasSetVector( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetVector + .as_ref() + .expect("Expected function, got error."))(n, elemSize, x, incx, devicePtr, incy) + } + pub unsafe fn cublasGetVector( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetVector + .as_ref() + .expect("Expected function, got error."))(n, elemSize, x, incx, y, incy) + } + pub unsafe fn cublasSetMatrix( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSetMatrix + .as_ref() + .expect("Expected function, got error."))(rows, cols, elemSize, A, lda, B, ldb) + } + pub unsafe fn cublasGetMatrix( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasGetMatrix + .as_ref() + .expect("Expected function, got error."))(rows, cols, elemSize, A, lda, B, ldb) + } + pub unsafe fn cublasSetVectorAsync( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + hostPtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + devicePtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetVectorAsync + .as_ref() + .expect("Expected function, got error."))( + n, elemSize, hostPtr, incx, devicePtr, incy, stream, + ) + } + pub unsafe fn cublasGetVectorAsync( + &self, + n: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + devicePtr: *const ::core::ffi::c_void, + incx: ::core::ffi::c_int, + hostPtr: *mut ::core::ffi::c_void, + incy: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetVectorAsync + .as_ref() + .expect("Expected function, got error."))( + n, elemSize, devicePtr, incx, hostPtr, incy, stream, + ) + } + pub unsafe fn cublasSetMatrixAsync( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasSetMatrixAsync + .as_ref() + .expect("Expected function, got error."))( + rows, cols, elemSize, A, lda, B, ldb, stream + ) + } + pub unsafe fn cublasGetMatrixAsync( + &self, + rows: ::core::ffi::c_int, + cols: ::core::ffi::c_int, + elemSize: ::core::ffi::c_int, + A: *const ::core::ffi::c_void, + lda: ::core::ffi::c_int, + B: *mut ::core::ffi::c_void, + ldb: ::core::ffi::c_int, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasGetMatrixAsync + .as_ref() + .expect("Expected function, got error."))( + rows, cols, elemSize, A, lda, B, ldb, stream + ) + } + pub unsafe fn cublasXerbla( + &self, + srName: *const ::core::ffi::c_char, + info: ::core::ffi::c_int, + ) { + (self + .cublasXerbla + .as_ref() + .expect("Expected function, got error."))(srName, info) + } + pub unsafe fn cublasNrm2Ex( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasNrm2Ex + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasSnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasScnrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasScnrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDznrm2_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDznrm2_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDotEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasDotEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasDotcEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *const ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasDotcEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + result, + resultType, + executionType, + ) + } + pub unsafe fn cublasSdot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSdot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasDdot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDdot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasCdotu_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCdotu_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasCdotc_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + result: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCdotc_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasZdotu_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZdotu_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasZdotc_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + result: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZdotc_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, result) + } + pub unsafe fn cublasScalEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + executionType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasScalEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + alpha, + alphaType, + x, + xType, + incx, + executionType, + ) + } + pub unsafe fn cublasSscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasDscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasCscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasCsscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasZscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasZdscal_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZdscal_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx) + } + pub unsafe fn cublasAxpyEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + alphaType: cudaDataType, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasAxpyEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + alpha, + alphaType, + x, + xType, + incx, + y, + yType, + incy, + executiontype, + ) + } + pub unsafe fn cublasSaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasDaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasCaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasZaxpy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZaxpy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, alpha, x, incx, y, incy) + } + pub unsafe fn cublasCopyEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCopyEx + .as_ref() + .expect("Expected function, got error."))( + handle, n, x, xType, incx, y, yType, incy + ) + } + pub unsafe fn cublasScopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasScopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasDcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasCcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasZcopy_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZcopy_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasSswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasDswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasCswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasZswap_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZswap_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy) + } + pub unsafe fn cublasSwapEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSwapEx + .as_ref() + .expect("Expected function, got error."))( + handle, n, x, xType, incx, y, yType, incy + ) + } + pub unsafe fn cublasIsamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIsamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIdamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIdamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIcamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIcamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIzamax_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIzamax_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIamaxEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIamaxEx + .as_ref() + .expect("Expected function, got error."))(handle, n, x, xType, incx, result) + } + pub unsafe fn cublasIsamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIsamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIdamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIdamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIcamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIcamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIzamin_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIzamin_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasIaminEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasIaminEx + .as_ref() + .expect("Expected function, got error."))(handle, n, x, xType, incx, result) + } + pub unsafe fn cublasAsumEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + result: *mut ::core::ffi::c_void, + resultType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasAsumEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + result, + resultType, + executiontype, + ) + } + pub unsafe fn cublasSasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasScasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + result: *mut f32, + ) -> cublasStatus_t { + (self + .cublasScasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasDzasum_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + result: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDzasum_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, result) + } + pub unsafe fn cublasSrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t { + (self + .cublasSrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasDrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t { + (self + .cublasDrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasCrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const cuComplex, + ) -> cublasStatus_t { + (self + .cublasCrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasCsrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + c: *const f32, + s: *const f32, + ) -> cublasStatus_t { + (self + .cublasCsrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasZrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasZdrot_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + c: *const f64, + s: *const f64, + ) -> cublasStatus_t { + (self + .cublasZdrot_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, c, s) + } + pub unsafe fn cublasRotEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + c: *const ::core::ffi::c_void, + s: *const ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + c, + s, + csType, + executiontype, + ) + } + pub unsafe fn cublasSrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut f32, + b: *mut f32, + c: *mut f32, + s: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasDrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut f64, + b: *mut f64, + c: *mut f64, + s: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasCrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut cuComplex, + b: *mut cuComplex, + c: *mut f32, + s: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasZrotg_v2( + &self, + handle: cublasHandle_t, + a: *mut cuDoubleComplex, + b: *mut cuDoubleComplex, + c: *mut f64, + s: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZrotg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, a, b, c, s) + } + pub unsafe fn cublasRotgEx( + &self, + handle: cublasHandle_t, + a: *mut ::core::ffi::c_void, + b: *mut ::core::ffi::c_void, + abType: cudaDataType, + c: *mut ::core::ffi::c_void, + s: *mut ::core::ffi::c_void, + csType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotgEx + .as_ref() + .expect("Expected function, got error."))( + handle, + a, + b, + abType, + c, + s, + csType, + executiontype, + ) + } + pub unsafe fn cublasSrotm_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + y: *mut f32, + incy: ::core::ffi::c_int, + param: *const f32, + ) -> cublasStatus_t { + (self + .cublasSrotm_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, param) + } + pub unsafe fn cublasDrotm_v2( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + y: *mut f64, + incy: ::core::ffi::c_int, + param: *const f64, + ) -> cublasStatus_t { + (self + .cublasDrotm_v2 + .as_ref() + .expect("Expected function, got error."))(handle, n, x, incx, y, incy, param) + } + pub unsafe fn cublasRotmEx( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + x: *mut ::core::ffi::c_void, + xType: cudaDataType, + incx: ::core::ffi::c_int, + y: *mut ::core::ffi::c_void, + yType: cudaDataType, + incy: ::core::ffi::c_int, + param: *const ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + n, + x, + xType, + incx, + y, + yType, + incy, + param, + paramType, + executiontype, + ) + } + pub unsafe fn cublasSrotmg_v2( + &self, + handle: cublasHandle_t, + d1: *mut f32, + d2: *mut f32, + x1: *mut f32, + y1: *const f32, + param: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSrotmg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, d1, d2, x1, y1, param) + } + pub unsafe fn cublasDrotmg_v2( + &self, + handle: cublasHandle_t, + d1: *mut f64, + d2: *mut f64, + x1: *mut f64, + y1: *const f64, + param: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDrotmg_v2 + .as_ref() + .expect("Expected function, got error."))(handle, d1, d2, x1, y1, param) + } + pub unsafe fn cublasRotmgEx( + &self, + handle: cublasHandle_t, + d1: *mut ::core::ffi::c_void, + d1Type: cudaDataType, + d2: *mut ::core::ffi::c_void, + d2Type: cudaDataType, + x1: *mut ::core::ffi::c_void, + x1Type: cudaDataType, + y1: *const ::core::ffi::c_void, + y1Type: cudaDataType, + param: *mut ::core::ffi::c_void, + paramType: cudaDataType, + executiontype: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasRotmgEx + .as_ref() + .expect("Expected function, got error."))( + handle, + d1, + d1Type, + d2, + d2Type, + x1, + x1Type, + y1, + y1Type, + param, + paramType, + executiontype, + ) + } + pub unsafe fn cublasSgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZgemv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZgbmv_v2( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + kl: ::core::ffi::c_int, + ku: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, trans, m, n, kl, ku, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasStrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasDtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasCtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasZtrmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasStbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasDtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasCtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasZtbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasStpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasDtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasCtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasZtpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasStrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasDtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasCtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasZtrsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, A, lda, x, incx + ) + } + pub unsafe fn cublasStpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f32, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasDtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const f64, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasCtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasZtpsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, AP, x, incx + ) + } + pub unsafe fn cublasStbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *mut f32, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasDtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *mut f64, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasCtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *mut cuComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasZtbsv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *mut cuDoubleComplex, + incx: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtbsv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, diag, n, k, A, lda, x, incx, + ) + } + pub unsafe fn cublasSsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasCsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZsymv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsymv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChemv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhemv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhemv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSsbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDsbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhbmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhbmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, k, alpha, A, lda, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSspmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + AP: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + beta: *const f32, + y: *mut f32, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSspmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasDspmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + AP: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + beta: *const f64, + y: *mut f64, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDspmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasChpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + AP: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + beta: *const cuComplex, + y: *mut cuComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasZhpmv_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + AP: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + y: *mut cuDoubleComplex, + incy: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhpmv_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, AP, x, incx, beta, y, incy, + ) + } + pub unsafe fn cublasSger_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSger_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasDger_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDger_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasCgeru_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeru_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasCgerc_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgerc_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasZgeru_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeru_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasZgerc_v2( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgerc_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, alpha, x, incx, y, incy, A, lda + ) + } + pub unsafe fn cublasSsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasDsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasCsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasZsyr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasCher_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasZher_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, A, lda + ) + } + pub unsafe fn cublasSspr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSspr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasDspr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDspr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasChpr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const cuComplex, + incx: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasChpr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasZhpr_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZhpr_v2 + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, alpha, x, incx, AP) + } + pub unsafe fn cublasSsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasDsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasCsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasZsyr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasCher2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasZher2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, A, lda, + ) + } + pub unsafe fn cublasSspr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f32, + x: *const f32, + incx: ::core::ffi::c_int, + y: *const f32, + incy: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasSspr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasDspr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const f64, + x: *const f64, + incx: ::core::ffi::c_int, + y: *const f64, + incy: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDspr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasChpr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + x: *const cuComplex, + incx: ::core::ffi::c_int, + y: *const cuComplex, + incy: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasChpr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasZhpr2_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + y: *const cuDoubleComplex, + incy: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZhpr2_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, n, alpha, x, incx, y, incy, AP + ) + } + pub unsafe fn cublasSgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm3m( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3m + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCgemm3mEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasZgemm_v2( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZgemm3m( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemm3m + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSgemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasGemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + A, + Atype, + lda, + B, + Btype, + ldb, + beta, + C, + Ctype, + ldc, + computeType, + algo, + ) + } + pub unsafe fn cublasCgemmEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmEx + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, Atype, lda, B, Btype, ldb, beta, C, Ctype, + ldc, + ) + } + pub unsafe fn cublasUint8gemmBias( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + transc: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + A: *const ::core::ffi::c_uchar, + A_bias: ::core::ffi::c_int, + lda: ::core::ffi::c_int, + B: *const ::core::ffi::c_uchar, + B_bias: ::core::ffi::c_int, + ldb: ::core::ffi::c_int, + C: *mut ::core::ffi::c_uchar, + C_bias: ::core::ffi::c_int, + ldc: ::core::ffi::c_int, + C_mult: ::core::ffi::c_int, + C_shift: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasUint8gemmBias + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, transc, m, n, k, A, A_bias, lda, B, B_bias, ldb, C, C_bias, + ldc, C_mult, C_shift, + ) + } + pub unsafe fn cublasSsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyrk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyrk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrkEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrkEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCsyrk3mEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrk3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCherk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasZherk_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZherk_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, beta, C, ldc, + ) + } + pub unsafe fn cublasCherkEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherkEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasCherk3mEx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + beta: *const f32, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherk3mEx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, Atype, lda, beta, C, Ctype, ldc, + ) + } + pub unsafe fn cublasSsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyr2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyr2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCher2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCher2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZher2k_v2( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZher2k_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsyrkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsyrkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCherkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCherkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZherkx( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZherkx + .as_ref() + .expect("Expected function, got error."))( + handle, uplo, trans, n, k, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasSsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasDsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasCsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZsymm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZsymm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasChemm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasChemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasZhemm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZhemm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, m, n, alpha, A, lda, B, ldb, beta, C, ldc, + ) + } + pub unsafe fn cublasStrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *mut f32, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasDtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *mut f64, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasCtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *mut cuComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasZtrsm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, + ) + } + pub unsafe fn cublasStrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasDtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasCtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasZtrmm_v2( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrmm_v2 + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasSgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + Barray: *const *const f32, + ldb: ::core::ffi::c_int, + beta: *const f32, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasDgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + Barray: *const *const f64, + ldb: ::core::ffi::c_int, + beta: *const f64, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasCgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasCgemm3mBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuComplex, + ldb: ::core::ffi::c_int, + beta: *const cuComplex, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasZgemmBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Barray: *const *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, + batchCount, + ) + } + pub unsafe fn cublasGemmBatchedEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + Aarray: *const *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + Barray: *const *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + beta: *const ::core::ffi::c_void, + Carray: *const *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmBatchedEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + Aarray, + Atype, + lda, + Barray, + Btype, + ldb, + beta, + Carray, + Ctype, + ldc, + batchCount, + computeType, + algo, + ) + } + pub unsafe fn cublasGemmStridedBatchedEx( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Atype: cudaDataType, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const ::core::ffi::c_void, + Btype: cudaDataType, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const ::core::ffi::c_void, + C: *mut ::core::ffi::c_void, + Ctype: cudaDataType, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + computeType: cublasComputeType_t, + algo: cublasGemmAlgo_t, + ) -> cublasStatus_t { + (self + .cublasGemmStridedBatchedEx + .as_ref() + .expect("Expected function, got error."))( + handle, + transa, + transb, + m, + n, + k, + alpha, + A, + Atype, + lda, + strideA, + B, + Btype, + ldb, + strideB, + beta, + C, + Ctype, + ldc, + strideC, + batchCount, + computeType, + algo, + ) + } + pub unsafe fn cublasSgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f32, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f32, + C: *mut f32, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasDgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const f64, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const f64, + C: *mut f64, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasCgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasCgemm3mStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuComplex, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgemm3mStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasZgemmStridedBatched( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + k: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + strideA: ::core::ffi::c_longlong, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + strideB: ::core::ffi::c_longlong, + beta: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + strideC: ::core::ffi::c_longlong, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgemmStridedBatched + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, k, alpha, A, lda, strideA, B, ldb, strideB, beta, C, ldc, + strideC, batchCount, + ) + } + pub unsafe fn cublasSgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const f32, + lda: ::core::ffi::c_int, + beta: *const f32, + B: *const f32, + ldb: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasDgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const f64, + lda: ::core::ffi::c_int, + beta: *const f64, + B: *const f64, + ldb: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasCgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const cuComplex, + lda: ::core::ffi::c_int, + beta: *const cuComplex, + B: *const cuComplex, + ldb: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasZgeam( + &self, + handle: cublasHandle_t, + transa: cublasOperation_t, + transb: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + beta: *const cuDoubleComplex, + B: *const cuDoubleComplex, + ldb: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeam + .as_ref() + .expect("Expected function, got error."))( + handle, transa, transb, m, n, alpha, A, lda, beta, B, ldb, C, ldc, + ) + } + pub unsafe fn cublasSgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f32, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasDgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut f64, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasCgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasZgetrfBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *mut ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetrfBatched + .as_ref() + .expect("Expected function, got error."))(handle, n, A, lda, P, info, batchSize) + } + pub unsafe fn cublasSgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasDgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasCgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasZgetriBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + P: *const ::core::ffi::c_int, + C: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetriBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, P, C, ldc, info, batchSize + ) + } + pub unsafe fn cublasSgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f32, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f32, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasDgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const f64, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut f64, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasCgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasZgetrsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + devIpiv: *const ::core::ffi::c_int, + Barray: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgetrsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, trans, n, nrhs, Aarray, lda, devIpiv, Barray, ldb, info, batchSize, + ) + } + pub unsafe fn cublasStrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f32, + A: *const *const f32, + lda: ::core::ffi::c_int, + B: *const *mut f32, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasDtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const f64, + A: *const *const f64, + lda: ::core::ffi::c_int, + B: *const *mut f64, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasCtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuComplex, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasZtrsmBatched( + &self, + handle: cublasHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + diag: cublasDiagType_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + alpha: *const cuDoubleComplex, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + B: *const *mut cuDoubleComplex, + ldb: ::core::ffi::c_int, + batchCount: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtrsmBatched + .as_ref() + .expect("Expected function, got error."))( + handle, side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, batchCount, + ) + } + pub unsafe fn cublasSmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f32, + lda: ::core::ffi::c_int, + Ainv: *const *mut f32, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasDmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const f64, + lda: ::core::ffi::c_int, + Ainv: *const *mut f64, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasCmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasZmatinvBatched( + &self, + handle: cublasHandle_t, + n: ::core::ffi::c_int, + A: *const *const cuDoubleComplex, + lda: ::core::ffi::c_int, + Ainv: *const *mut cuDoubleComplex, + lda_inv: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZmatinvBatched + .as_ref() + .expect("Expected function, got error."))( + handle, n, A, lda, Ainv, lda_inv, info, batchSize, + ) + } + pub unsafe fn cublasSgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + TauArray: *const *mut f32, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasDgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + TauArray: *const *mut f64, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasCgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasZgeqrfBatched( + &self, + handle: cublasHandle_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + TauArray: *const *mut cuDoubleComplex, + info: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgeqrfBatched + .as_ref() + .expect("Expected function, got error."))( + handle, m, n, Aarray, lda, TauArray, info, batchSize, + ) + } + pub unsafe fn cublasSgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f32, + lda: ::core::ffi::c_int, + Carray: *const *mut f32, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasDgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut f64, + lda: ::core::ffi::c_int, + Carray: *const *mut f64, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasCgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasZgelsBatched( + &self, + handle: cublasHandle_t, + trans: cublasOperation_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + nrhs: ::core::ffi::c_int, + Aarray: *const *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + Carray: *const *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + info: *mut ::core::ffi::c_int, + devInfoArray: *mut ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZgelsBatched + .as_ref() + .expect("Expected function, got error."))( + handle, + trans, + m, + n, + nrhs, + Aarray, + lda, + Carray, + ldc, + info, + devInfoArray, + batchSize, + ) + } + pub unsafe fn cublasSdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + x: *const f32, + incx: ::core::ffi::c_int, + C: *mut f32, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasSdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasDdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + x: *const f64, + incx: ::core::ffi::c_int, + C: *mut f64, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasCdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + x: *const cuComplex, + incx: ::core::ffi::c_int, + C: *mut cuComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasZdgmm( + &self, + handle: cublasHandle_t, + mode: cublasSideMode_t, + m: ::core::ffi::c_int, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + x: *const cuDoubleComplex, + incx: ::core::ffi::c_int, + C: *mut cuDoubleComplex, + ldc: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZdgmm + .as_ref() + .expect("Expected function, got error."))( + handle, mode, m, n, A, lda, x, incx, C, ldc + ) + } + pub unsafe fn cublasStpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f32, + A: *mut f32, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasStpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasDtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const f64, + A: *mut f64, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasDtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasCtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuComplex, + A: *mut cuComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasCtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasZtpttr( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + AP: *const cuDoubleComplex, + A: *mut cuDoubleComplex, + lda: ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasZtpttr + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, AP, A, lda) + } + pub unsafe fn cublasStrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f32, + lda: ::core::ffi::c_int, + AP: *mut f32, + ) -> cublasStatus_t { + (self + .cublasStrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasDtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const f64, + lda: ::core::ffi::c_int, + AP: *mut f64, + ) -> cublasStatus_t { + (self + .cublasDtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasCtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuComplex, + lda: ::core::ffi::c_int, + AP: *mut cuComplex, + ) -> cublasStatus_t { + (self + .cublasCtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } + pub unsafe fn cublasZtrttp( + &self, + handle: cublasHandle_t, + uplo: cublasFillMode_t, + n: ::core::ffi::c_int, + A: *const cuDoubleComplex, + lda: ::core::ffi::c_int, + AP: *mut cuDoubleComplex, + ) -> cublasStatus_t { + (self + .cublasZtrttp + .as_ref() + .expect("Expected function, got error."))(handle, uplo, n, A, lda, AP) + } +} diff --git a/src/cublaslt/sys/mod.rs b/src/cublaslt/sys/mod.rs index 228c2aff..f49a6b64 100644 --- a/src/cublaslt/sys/mod.rs +++ b/src/cublaslt/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/cublaslt/sys/sys_11050.rs b/src/cublaslt/sys/sys_11050.rs new file mode 100644 index 00000000..86327ada --- /dev/null +++ b/src/cublaslt/sys/sys_11050.rs @@ -0,0 +1,1987 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +pub type __off_t = ::core::ffi::c_long; +pub type __off64_t = ::core::ffi::c_long; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaDataType_t { + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, +} +pub use self::cudaDataType_t as cudaDataType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasStatus_t { + CUBLAS_STATUS_SUCCESS = 0, + CUBLAS_STATUS_NOT_INITIALIZED = 1, + CUBLAS_STATUS_ALLOC_FAILED = 3, + CUBLAS_STATUS_INVALID_VALUE = 7, + CUBLAS_STATUS_ARCH_MISMATCH = 8, + CUBLAS_STATUS_MAPPING_ERROR = 11, + CUBLAS_STATUS_EXECUTION_FAILED = 13, + CUBLAS_STATUS_INTERNAL_ERROR = 14, + CUBLAS_STATUS_NOT_SUPPORTED = 15, + CUBLAS_STATUS_LICENSE_ERROR = 16, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasComputeType_t { + CUBLAS_COMPUTE_16F = 64, + CUBLAS_COMPUTE_16F_PEDANTIC = 65, + CUBLAS_COMPUTE_32F = 68, + CUBLAS_COMPUTE_32F_PEDANTIC = 69, + CUBLAS_COMPUTE_32F_FAST_16F = 74, + CUBLAS_COMPUTE_32F_FAST_16BF = 75, + CUBLAS_COMPUTE_32F_FAST_TF32 = 77, + CUBLAS_COMPUTE_64F = 70, + CUBLAS_COMPUTE_64F_PEDANTIC = 71, + CUBLAS_COMPUTE_32I = 72, + CUBLAS_COMPUTE_32I_PEDANTIC = 73, +} +pub type FILE = _IO_FILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_marker { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_codecvt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_wide_data { + _unused: [u8; 0], +} +pub type _IO_lock_t = ::core::ffi::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct _IO_FILE { + pub _flags: ::core::ffi::c_int, + pub _IO_read_ptr: *mut ::core::ffi::c_char, + pub _IO_read_end: *mut ::core::ffi::c_char, + pub _IO_read_base: *mut ::core::ffi::c_char, + pub _IO_write_base: *mut ::core::ffi::c_char, + pub _IO_write_ptr: *mut ::core::ffi::c_char, + pub _IO_write_end: *mut ::core::ffi::c_char, + pub _IO_buf_base: *mut ::core::ffi::c_char, + pub _IO_buf_end: *mut ::core::ffi::c_char, + pub _IO_save_base: *mut ::core::ffi::c_char, + pub _IO_backup_base: *mut ::core::ffi::c_char, + pub _IO_save_end: *mut ::core::ffi::c_char, + pub _markers: *mut _IO_marker, + pub _chain: *mut _IO_FILE, + pub _fileno: ::core::ffi::c_int, + pub _flags2: ::core::ffi::c_int, + pub _old_offset: __off_t, + pub _cur_column: ::core::ffi::c_ushort, + pub _vtable_offset: ::core::ffi::c_schar, + pub _shortbuf: [::core::ffi::c_char; 1usize], + pub _lock: *mut _IO_lock_t, + pub _offset: __off64_t, + pub _codecvt: *mut _IO_codecvt, + pub _wide_data: *mut _IO_wide_data, + pub _freeres_list: *mut _IO_FILE, + pub _freeres_buf: *mut ::core::ffi::c_void, + pub __pad5: usize, + pub _mode: ::core::ffi::c_int, + pub _unused2: [::core::ffi::c_char; 20usize], +} +#[test] +fn bindgen_test_layout__IO_FILE() { + const UNINIT: ::core::mem::MaybeUninit<_IO_FILE> = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::<_IO_FILE>(), + 216usize, + concat!("Size of: ", stringify!(_IO_FILE)) + ); + assert_eq!( + ::core::mem::align_of::<_IO_FILE>(), + 8usize, + concat!("Alignment of ", stringify!(_IO_FILE)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_buf_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_buf_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_save_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_backup_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_save_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_markers) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_chain) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_fileno) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_flags2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_old_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_cur_column) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, + 130usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_vtable_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, + 131usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_shortbuf) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_lock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_codecvt) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_wide_data) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_freeres_list) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_freeres_buf) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(__pad5) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_mode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, + 196usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_unused2) + ) + ); +} +impl Default for _IO_FILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cublasLtContext { + _unused: [u8; 0], +} +pub type cublasLtHandle_t = *mut cublasLtContext; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatrixLayoutOpaque_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatrixLayoutOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatrixLayoutOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatrixLayoutOpaque_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatrixLayoutOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatrixLayout_t = *mut cublasLtMatrixLayoutOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulAlgo_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulAlgo_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatmulAlgo_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulAlgo_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulAlgo_t), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulDescOpaque_t { + pub data: [u64; 12usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulDescOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(cublasLtMatmulDescOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulDescOpaque_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulDescOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatmulDesc_t = *mut cublasLtMatmulDescOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatrixTransformDescOpaque_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatrixTransformDescOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatrixTransformDescOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cublasLtMatrixTransformDescOpaque_t) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatrixTransformDescOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatrixTransformDesc_t = *mut cublasLtMatrixTransformDescOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulPreferenceOpaque_t { + pub data: [u64; 10usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulPreferenceOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(cublasLtMatmulPreferenceOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cublasLtMatmulPreferenceOpaque_t) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulPreferenceOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatmulPreference_t = *mut cublasLtMatmulPreferenceOpaque_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulTile_t { + CUBLASLT_MATMUL_TILE_UNDEFINED = 0, + CUBLASLT_MATMUL_TILE_8x8 = 1, + CUBLASLT_MATMUL_TILE_8x16 = 2, + CUBLASLT_MATMUL_TILE_16x8 = 3, + CUBLASLT_MATMUL_TILE_8x32 = 4, + CUBLASLT_MATMUL_TILE_16x16 = 5, + CUBLASLT_MATMUL_TILE_32x8 = 6, + CUBLASLT_MATMUL_TILE_8x64 = 7, + CUBLASLT_MATMUL_TILE_16x32 = 8, + CUBLASLT_MATMUL_TILE_32x16 = 9, + CUBLASLT_MATMUL_TILE_64x8 = 10, + CUBLASLT_MATMUL_TILE_32x32 = 11, + CUBLASLT_MATMUL_TILE_32x64 = 12, + CUBLASLT_MATMUL_TILE_64x32 = 13, + CUBLASLT_MATMUL_TILE_32x128 = 14, + CUBLASLT_MATMUL_TILE_64x64 = 15, + CUBLASLT_MATMUL_TILE_128x32 = 16, + CUBLASLT_MATMUL_TILE_64x128 = 17, + CUBLASLT_MATMUL_TILE_128x64 = 18, + CUBLASLT_MATMUL_TILE_64x256 = 19, + CUBLASLT_MATMUL_TILE_128x128 = 20, + CUBLASLT_MATMUL_TILE_256x64 = 21, + CUBLASLT_MATMUL_TILE_64x512 = 22, + CUBLASLT_MATMUL_TILE_128x256 = 23, + CUBLASLT_MATMUL_TILE_256x128 = 24, + CUBLASLT_MATMUL_TILE_512x64 = 25, + CUBLASLT_MATMUL_TILE_64x96 = 26, + CUBLASLT_MATMUL_TILE_96x64 = 27, + CUBLASLT_MATMUL_TILE_96x128 = 28, + CUBLASLT_MATMUL_TILE_128x160 = 29, + CUBLASLT_MATMUL_TILE_160x128 = 30, + CUBLASLT_MATMUL_TILE_192x128 = 31, + CUBLASLT_MATMUL_TILE_END = 32, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulStages_t { + CUBLASLT_MATMUL_STAGES_UNDEFINED = 0, + CUBLASLT_MATMUL_STAGES_16x1 = 1, + CUBLASLT_MATMUL_STAGES_16x2 = 2, + CUBLASLT_MATMUL_STAGES_16x3 = 3, + CUBLASLT_MATMUL_STAGES_16x4 = 4, + CUBLASLT_MATMUL_STAGES_16x5 = 5, + CUBLASLT_MATMUL_STAGES_16x6 = 6, + CUBLASLT_MATMUL_STAGES_32x1 = 7, + CUBLASLT_MATMUL_STAGES_32x2 = 8, + CUBLASLT_MATMUL_STAGES_32x3 = 9, + CUBLASLT_MATMUL_STAGES_32x4 = 10, + CUBLASLT_MATMUL_STAGES_32x5 = 11, + CUBLASLT_MATMUL_STAGES_32x6 = 12, + CUBLASLT_MATMUL_STAGES_64x1 = 13, + CUBLASLT_MATMUL_STAGES_64x2 = 14, + CUBLASLT_MATMUL_STAGES_64x3 = 15, + CUBLASLT_MATMUL_STAGES_64x4 = 16, + CUBLASLT_MATMUL_STAGES_64x5 = 17, + CUBLASLT_MATMUL_STAGES_64x6 = 18, + CUBLASLT_MATMUL_STAGES_128x1 = 19, + CUBLASLT_MATMUL_STAGES_128x2 = 20, + CUBLASLT_MATMUL_STAGES_128x3 = 21, + CUBLASLT_MATMUL_STAGES_128x4 = 22, + CUBLASLT_MATMUL_STAGES_128x5 = 23, + CUBLASLT_MATMUL_STAGES_128x6 = 24, + CUBLASLT_MATMUL_STAGES_32x10 = 25, + CUBLASLT_MATMUL_STAGES_8x4 = 26, + CUBLASLT_MATMUL_STAGES_16x10 = 27, + CUBLASLT_MATMUL_STAGES_8x5 = 28, + CUBLASLT_MATMUL_STAGES_16x80 = 29, + CUBLASLT_MATMUL_STAGES_64x80 = 30, + CUBLASLT_MATMUL_STAGES_END = 31, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtPointerMode_t { + CUBLASLT_POINTER_MODE_HOST = 0, + CUBLASLT_POINTER_MODE_DEVICE = 1, + CUBLASLT_POINTER_MODE_DEVICE_VECTOR = 2, + CUBLASLT_POINTER_MODE_ALPHA_DEVICE_VECTOR_BETA_ZERO = 3, + CUBLASLT_POINTER_MODE_ALPHA_DEVICE_VECTOR_BETA_HOST = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtPointerModeMask_t { + CUBLASLT_POINTER_MODE_MASK_NO_FILTERING = 0, + CUBLASLT_POINTER_MODE_MASK_HOST = 1, + CUBLASLT_POINTER_MODE_MASK_DEVICE = 2, + CUBLASLT_POINTER_MODE_MASK_DEVICE_VECTOR = 4, + CUBLASLT_POINTER_MODE_MASK_ALPHA_DEVICE_VECTOR_BETA_ZERO = 8, + CUBLASLT_POINTER_MODE_MASK_ALPHA_DEVICE_VECTOR_BETA_HOST = 16, +} +pub type cublasLtNumericalImplFlags_t = u64; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtOrder_t { + CUBLASLT_ORDER_COL = 0, + CUBLASLT_ORDER_ROW = 1, + CUBLASLT_ORDER_COL32 = 2, + CUBLASLT_ORDER_COL4_4R2_8C = 3, + CUBLASLT_ORDER_COL32_2R_4R4 = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatrixLayoutAttribute_t { + CUBLASLT_MATRIX_LAYOUT_TYPE = 0, + CUBLASLT_MATRIX_LAYOUT_ORDER = 1, + CUBLASLT_MATRIX_LAYOUT_ROWS = 2, + CUBLASLT_MATRIX_LAYOUT_COLS = 3, + CUBLASLT_MATRIX_LAYOUT_LD = 4, + CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT = 5, + CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET = 6, + CUBLASLT_MATRIX_LAYOUT_PLANE_OFFSET = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulDescAttributes_t { + CUBLASLT_MATMUL_DESC_COMPUTE_TYPE = 0, + CUBLASLT_MATMUL_DESC_SCALE_TYPE = 1, + CUBLASLT_MATMUL_DESC_POINTER_MODE = 2, + CUBLASLT_MATMUL_DESC_TRANSA = 3, + CUBLASLT_MATMUL_DESC_TRANSB = 4, + CUBLASLT_MATMUL_DESC_TRANSC = 5, + CUBLASLT_MATMUL_DESC_FILL_MODE = 6, + CUBLASLT_MATMUL_DESC_EPILOGUE = 7, + CUBLASLT_MATMUL_DESC_BIAS_POINTER = 8, + CUBLASLT_MATMUL_DESC_BIAS_BATCH_STRIDE = 10, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_POINTER = 11, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_LD = 12, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_BATCH_STRIDE = 13, + CUBLASLT_MATMUL_DESC_ALPHA_VECTOR_BATCH_STRIDE = 14, + CUBLASLT_MATMUL_DESC_SM_COUNT_TARGET = 15, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatrixTransformDescAttributes_t { + CUBLASLT_MATRIX_TRANSFORM_DESC_SCALE_TYPE = 0, + CUBLASLT_MATRIX_TRANSFORM_DESC_POINTER_MODE = 1, + CUBLASLT_MATRIX_TRANSFORM_DESC_TRANSA = 2, + CUBLASLT_MATRIX_TRANSFORM_DESC_TRANSB = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLt3mMode_t { + CUBLASLT_3M_MODE_DISALLOWED = 0, + CUBLASLT_3M_MODE_ALLOWED = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtReductionScheme_t { + CUBLASLT_REDUCTION_SCHEME_NONE = 0, + CUBLASLT_REDUCTION_SCHEME_INPLACE = 1, + CUBLASLT_REDUCTION_SCHEME_COMPUTE_TYPE = 2, + CUBLASLT_REDUCTION_SCHEME_OUTPUT_TYPE = 4, + CUBLASLT_REDUCTION_SCHEME_MASK = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtEpilogue_t { + CUBLASLT_EPILOGUE_DEFAULT = 1, + CUBLASLT_EPILOGUE_RELU = 2, + CUBLASLT_EPILOGUE_RELU_AUX = 130, + CUBLASLT_EPILOGUE_BIAS = 4, + CUBLASLT_EPILOGUE_RELU_BIAS = 6, + CUBLASLT_EPILOGUE_RELU_AUX_BIAS = 134, + CUBLASLT_EPILOGUE_DRELU_BGRAD = 152, + CUBLASLT_EPILOGUE_GELU = 32, + CUBLASLT_EPILOGUE_GELU_AUX = 160, + CUBLASLT_EPILOGUE_GELU_BIAS = 36, + CUBLASLT_EPILOGUE_GELU_AUX_BIAS = 164, + CUBLASLT_EPILOGUE_DGELU_BGRAD = 208, + CUBLASLT_EPILOGUE_BGRADA = 256, + CUBLASLT_EPILOGUE_BGRADB = 512, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulSearch_t { + CUBLASLT_SEARCH_BEST_FIT = 0, + CUBLASLT_SEARCH_LIMITED_BY_ALGO_ID = 1, + CUBLASLT_SEARCH_RESERVED_02 = 2, + CUBLASLT_SEARCH_RESERVED_03 = 3, + CUBLASLT_SEARCH_RESERVED_04 = 4, + CUBLASLT_SEARCH_RESERVED_05 = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulPreferenceAttributes_t { + CUBLASLT_MATMUL_PREF_SEARCH_MODE = 0, + CUBLASLT_MATMUL_PREF_MAX_WORKSPACE_BYTES = 1, + CUBLASLT_MATMUL_PREF_MATH_MODE_MASK = 2, + CUBLASLT_MATMUL_PREF_REDUCTION_SCHEME_MASK = 3, + CUBLASLT_MATMUL_PREF_GAUSSIAN_MODE_MASK = 4, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_A_BYTES = 5, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_B_BYTES = 6, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_C_BYTES = 7, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_D_BYTES = 8, + CUBLASLT_MATMUL_PREF_MAX_WAVES_COUNT = 9, + CUBLASLT_MATMUL_PREF_POINTER_MODE_MASK = 10, + CUBLASLT_MATMUL_PREF_EPILOGUE_MASK = 11, + CUBLASLT_MATMUL_PREF_IMPL_MASK = 12, + CUBLASLT_MATMUL_PREF_SM_COUNT_TARGET = 13, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cublasLtMatmulHeuristicResult_t { + pub algo: cublasLtMatmulAlgo_t, + pub workspaceSize: usize, + pub state: cublasStatus_t, + pub wavesCount: f32, + pub reserved: [::core::ffi::c_int; 4usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulHeuristicResult_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(cublasLtMatmulHeuristicResult_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulHeuristicResult_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).workspaceSize) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(workspaceSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).wavesCount) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(wavesCount) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cublasLtMatmulHeuristicResult_t { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulAlgoCapAttributes_t { + CUBLASLT_ALGO_CAP_SPLITK_SUPPORT = 0, + CUBLASLT_ALGO_CAP_REDUCTION_SCHEME_MASK = 1, + CUBLASLT_ALGO_CAP_CTA_SWIZZLING_SUPPORT = 2, + CUBLASLT_ALGO_CAP_STRIDED_BATCH_SUPPORT = 3, + CUBLASLT_ALGO_CAP_OUT_OF_PLACE_RESULT_SUPPORT = 4, + CUBLASLT_ALGO_CAP_UPLO_SUPPORT = 5, + CUBLASLT_ALGO_CAP_TILE_IDS = 6, + CUBLASLT_ALGO_CAP_CUSTOM_OPTION_MAX = 7, + CUBLASLT_ALGO_CAP_MATHMODE_IMPL = 8, + CUBLASLT_ALGO_CAP_GAUSSIAN_IMPL = 9, + CUBLASLT_ALGO_CAP_CUSTOM_MEMORY_ORDER = 10, + CUBLASLT_ALGO_CAP_POINTER_MODE_MASK = 11, + CUBLASLT_ALGO_CAP_EPILOGUE_MASK = 12, + CUBLASLT_ALGO_CAP_STAGES_IDS = 13, + CUBLASLT_ALGO_CAP_LD_NEGATIVE = 14, + CUBLASLT_ALGO_CAP_NUMERICAL_IMPL_FLAGS = 15, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_A_BYTES = 16, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_B_BYTES = 17, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_C_BYTES = 18, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_D_BYTES = 19, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulAlgoConfigAttributes_t { + CUBLASLT_ALGO_CONFIG_ID = 0, + CUBLASLT_ALGO_CONFIG_TILE_ID = 1, + CUBLASLT_ALGO_CONFIG_SPLITK_NUM = 2, + CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME = 3, + CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING = 4, + CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION = 5, + CUBLASLT_ALGO_CONFIG_STAGES_ID = 6, +} +pub type cublasLtLoggerCallback_t = ::core::option::Option< + unsafe extern "C" fn( + logLevel: ::core::ffi::c_int, + functionName: *const ::core::ffi::c_char, + message: *const ::core::ffi::c_char, + ), +>; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cublasLtCreate: Result< + unsafe extern "C" fn(lightHandle: *mut cublasLtHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtDestroy: Result< + unsafe extern "C" fn(lightHandle: cublasLtHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtGetStatusName: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLtGetStatusString: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLtGetVersion: Result usize, ::libloading::Error>, + pub cublasLtGetCudartVersion: Result usize, ::libloading::Error>, + pub cublasLtGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmul: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeDesc: cublasLtMatmulDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + C: *const ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + D: *mut ::core::ffi::c_void, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransform: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + transformDesc: cublasLtMatrixTransformDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + C: *mut ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutInit_internal: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + size: usize, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutCreate: Result< + unsafe extern "C" fn( + matLayout: *mut cublasLtMatrixLayout_t, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutDestroy: Result< + unsafe extern "C" fn(matLayout: cublasLtMatrixLayout_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutSetAttribute: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutGetAttribute: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescInit_internal: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + size: usize, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescCreate: Result< + unsafe extern "C" fn( + matmulDesc: *mut cublasLtMatmulDesc_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescDestroy: Result< + unsafe extern "C" fn(matmulDesc: cublasLtMatmulDesc_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescSetAttribute: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescGetAttribute: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescInit_internal: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + size: usize, + scaleType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescCreate: Result< + unsafe extern "C" fn( + transformDesc: *mut cublasLtMatrixTransformDesc_t, + scaleType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescDestroy: Result< + unsafe extern "C" fn(transformDesc: cublasLtMatrixTransformDesc_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescSetAttribute: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescGetAttribute: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceInit_internal: Result< + unsafe extern "C" fn(pref: cublasLtMatmulPreference_t, size: usize) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceCreate: Result< + unsafe extern "C" fn(pref: *mut cublasLtMatmulPreference_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceDestroy: Result< + unsafe extern "C" fn(pref: cublasLtMatmulPreference_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceSetAttribute: Result< + unsafe extern "C" fn( + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceGetAttribute: Result< + unsafe extern "C" fn( + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoGetHeuristic: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + preference: cublasLtMatmulPreference_t, + requestedAlgoCount: ::core::ffi::c_int, + heuristicResultsArray: *mut cublasLtMatmulHeuristicResult_t, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoGetIds: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + requestedAlgoCount: ::core::ffi::c_int, + algoIdsArray: *mut ::core::ffi::c_int, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoInit: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + algoId: ::core::ffi::c_int, + algo: *mut cublasLtMatmulAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoCheck: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + result: *mut cublasLtMatmulHeuristicResult_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoCapGetAttribute: Result< + unsafe extern "C" fn( + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoCapAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoConfigSetAttribute: Result< + unsafe extern "C" fn( + algo: *mut cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoConfigGetAttribute: Result< + unsafe extern "C" fn( + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetCallback: Result< + unsafe extern "C" fn(callback: cublasLtLoggerCallback_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetFile: + Result cublasStatus_t, ::libloading::Error>, + pub cublasLtLoggerOpenFile: Result< + unsafe extern "C" fn(logFile: *const ::core::ffi::c_char) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetLevel: Result< + unsafe extern "C" fn(level: ::core::ffi::c_int) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetMask: Result< + unsafe extern "C" fn(mask: ::core::ffi::c_int) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerForceDisable: + Result cublasStatus_t, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cublasLtCreate = __library.get(b"cublasLtCreate\0").map(|sym| *sym); + let cublasLtDestroy = __library.get(b"cublasLtDestroy\0").map(|sym| *sym); + let cublasLtGetStatusName = __library.get(b"cublasLtGetStatusName\0").map(|sym| *sym); + let cublasLtGetStatusString = __library.get(b"cublasLtGetStatusString\0").map(|sym| *sym); + let cublasLtGetVersion = __library.get(b"cublasLtGetVersion\0").map(|sym| *sym); + let cublasLtGetCudartVersion = __library.get(b"cublasLtGetCudartVersion\0").map(|sym| *sym); + let cublasLtGetProperty = __library.get(b"cublasLtGetProperty\0").map(|sym| *sym); + let cublasLtMatmul = __library.get(b"cublasLtMatmul\0").map(|sym| *sym); + let cublasLtMatrixTransform = __library.get(b"cublasLtMatrixTransform\0").map(|sym| *sym); + let cublasLtMatrixLayoutInit_internal = __library + .get(b"cublasLtMatrixLayoutInit_internal\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutCreate = __library + .get(b"cublasLtMatrixLayoutCreate\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutDestroy = __library + .get(b"cublasLtMatrixLayoutDestroy\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutSetAttribute = __library + .get(b"cublasLtMatrixLayoutSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutGetAttribute = __library + .get(b"cublasLtMatrixLayoutGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulDescInit_internal = __library + .get(b"cublasLtMatmulDescInit_internal\0") + .map(|sym| *sym); + let cublasLtMatmulDescCreate = __library.get(b"cublasLtMatmulDescCreate\0").map(|sym| *sym); + let cublasLtMatmulDescDestroy = __library + .get(b"cublasLtMatmulDescDestroy\0") + .map(|sym| *sym); + let cublasLtMatmulDescSetAttribute = __library + .get(b"cublasLtMatmulDescSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulDescGetAttribute = __library + .get(b"cublasLtMatmulDescGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescInit_internal = __library + .get(b"cublasLtMatrixTransformDescInit_internal\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescCreate = __library + .get(b"cublasLtMatrixTransformDescCreate\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescDestroy = __library + .get(b"cublasLtMatrixTransformDescDestroy\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescSetAttribute = __library + .get(b"cublasLtMatrixTransformDescSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescGetAttribute = __library + .get(b"cublasLtMatrixTransformDescGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceInit_internal = __library + .get(b"cublasLtMatmulPreferenceInit_internal\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceCreate = __library + .get(b"cublasLtMatmulPreferenceCreate\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceDestroy = __library + .get(b"cublasLtMatmulPreferenceDestroy\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceSetAttribute = __library + .get(b"cublasLtMatmulPreferenceSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceGetAttribute = __library + .get(b"cublasLtMatmulPreferenceGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoGetHeuristic = __library + .get(b"cublasLtMatmulAlgoGetHeuristic\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoGetIds = __library.get(b"cublasLtMatmulAlgoGetIds\0").map(|sym| *sym); + let cublasLtMatmulAlgoInit = __library.get(b"cublasLtMatmulAlgoInit\0").map(|sym| *sym); + let cublasLtMatmulAlgoCheck = __library.get(b"cublasLtMatmulAlgoCheck\0").map(|sym| *sym); + let cublasLtMatmulAlgoCapGetAttribute = __library + .get(b"cublasLtMatmulAlgoCapGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoConfigSetAttribute = __library + .get(b"cublasLtMatmulAlgoConfigSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoConfigGetAttribute = __library + .get(b"cublasLtMatmulAlgoConfigGetAttribute\0") + .map(|sym| *sym); + let cublasLtLoggerSetCallback = __library + .get(b"cublasLtLoggerSetCallback\0") + .map(|sym| *sym); + let cublasLtLoggerSetFile = __library.get(b"cublasLtLoggerSetFile\0").map(|sym| *sym); + let cublasLtLoggerOpenFile = __library.get(b"cublasLtLoggerOpenFile\0").map(|sym| *sym); + let cublasLtLoggerSetLevel = __library.get(b"cublasLtLoggerSetLevel\0").map(|sym| *sym); + let cublasLtLoggerSetMask = __library.get(b"cublasLtLoggerSetMask\0").map(|sym| *sym); + let cublasLtLoggerForceDisable = __library + .get(b"cublasLtLoggerForceDisable\0") + .map(|sym| *sym); + Ok(Lib { + __library, + cublasLtCreate, + cublasLtDestroy, + cublasLtGetStatusName, + cublasLtGetStatusString, + cublasLtGetVersion, + cublasLtGetCudartVersion, + cublasLtGetProperty, + cublasLtMatmul, + cublasLtMatrixTransform, + cublasLtMatrixLayoutInit_internal, + cublasLtMatrixLayoutCreate, + cublasLtMatrixLayoutDestroy, + cublasLtMatrixLayoutSetAttribute, + cublasLtMatrixLayoutGetAttribute, + cublasLtMatmulDescInit_internal, + cublasLtMatmulDescCreate, + cublasLtMatmulDescDestroy, + cublasLtMatmulDescSetAttribute, + cublasLtMatmulDescGetAttribute, + cublasLtMatrixTransformDescInit_internal, + cublasLtMatrixTransformDescCreate, + cublasLtMatrixTransformDescDestroy, + cublasLtMatrixTransformDescSetAttribute, + cublasLtMatrixTransformDescGetAttribute, + cublasLtMatmulPreferenceInit_internal, + cublasLtMatmulPreferenceCreate, + cublasLtMatmulPreferenceDestroy, + cublasLtMatmulPreferenceSetAttribute, + cublasLtMatmulPreferenceGetAttribute, + cublasLtMatmulAlgoGetHeuristic, + cublasLtMatmulAlgoGetIds, + cublasLtMatmulAlgoInit, + cublasLtMatmulAlgoCheck, + cublasLtMatmulAlgoCapGetAttribute, + cublasLtMatmulAlgoConfigSetAttribute, + cublasLtMatmulAlgoConfigGetAttribute, + cublasLtLoggerSetCallback, + cublasLtLoggerSetFile, + cublasLtLoggerOpenFile, + cublasLtLoggerSetLevel, + cublasLtLoggerSetMask, + cublasLtLoggerForceDisable, + }) + } + pub unsafe fn cublasLtCreate(&self, lightHandle: *mut cublasLtHandle_t) -> cublasStatus_t { + (self + .cublasLtCreate + .as_ref() + .expect("Expected function, got error."))(lightHandle) + } + pub unsafe fn cublasLtDestroy(&self, lightHandle: cublasLtHandle_t) -> cublasStatus_t { + (self + .cublasLtDestroy + .as_ref() + .expect("Expected function, got error."))(lightHandle) + } + pub unsafe fn cublasLtGetStatusName( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasLtGetStatusName + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLtGetStatusString( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasLtGetStatusString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLtGetVersion(&self) -> usize { + (self + .cublasLtGetVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasLtGetCudartVersion(&self) -> usize { + (self + .cublasLtGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasLtGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cublasLtMatmul( + &self, + lightHandle: cublasLtHandle_t, + computeDesc: cublasLtMatmulDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + C: *const ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + D: *mut ::core::ffi::c_void, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmul + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeDesc, + alpha, + A, + Adesc, + B, + Bdesc, + beta, + C, + Cdesc, + D, + Ddesc, + algo, + workspace, + workspaceSizeInBytes, + stream, + ) + } + pub unsafe fn cublasLtMatrixTransform( + &self, + lightHandle: cublasLtHandle_t, + transformDesc: cublasLtMatrixTransformDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + C: *mut ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransform + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + transformDesc, + alpha, + A, + Adesc, + beta, + B, + Bdesc, + C, + Cdesc, + stream, + ) + } + pub unsafe fn cublasLtMatrixLayoutInit_internal( + &self, + matLayout: cublasLtMatrixLayout_t, + size: usize, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutInit_internal + .as_ref() + .expect("Expected function, got error."))(matLayout, size, type_, rows, cols, ld) + } + pub unsafe fn cublasLtMatrixLayoutCreate( + &self, + matLayout: *mut cublasLtMatrixLayout_t, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutCreate + .as_ref() + .expect("Expected function, got error."))(matLayout, type_, rows, cols, ld) + } + pub unsafe fn cublasLtMatrixLayoutDestroy( + &self, + matLayout: cublasLtMatrixLayout_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutDestroy + .as_ref() + .expect("Expected function, got error."))(matLayout) + } + pub unsafe fn cublasLtMatrixLayoutSetAttribute( + &self, + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutSetAttribute + .as_ref() + .expect("Expected function, got error."))(matLayout, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatrixLayoutGetAttribute( + &self, + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutGetAttribute + .as_ref() + .expect("Expected function, got error."))( + matLayout, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatmulDescInit_internal( + &self, + matmulDesc: cublasLtMatmulDesc_t, + size: usize, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescInit_internal + .as_ref() + .expect("Expected function, got error."))( + matmulDesc, size, computeType, scaleType + ) + } + pub unsafe fn cublasLtMatmulDescCreate( + &self, + matmulDesc: *mut cublasLtMatmulDesc_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescCreate + .as_ref() + .expect("Expected function, got error."))(matmulDesc, computeType, scaleType) + } + pub unsafe fn cublasLtMatmulDescDestroy( + &self, + matmulDesc: cublasLtMatmulDesc_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescDestroy + .as_ref() + .expect("Expected function, got error."))(matmulDesc) + } + pub unsafe fn cublasLtMatmulDescSetAttribute( + &self, + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescSetAttribute + .as_ref() + .expect("Expected function, got error."))(matmulDesc, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulDescGetAttribute( + &self, + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescGetAttribute + .as_ref() + .expect("Expected function, got error."))( + matmulDesc, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatrixTransformDescInit_internal( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + size: usize, + scaleType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescInit_internal + .as_ref() + .expect("Expected function, got error."))(transformDesc, size, scaleType) + } + pub unsafe fn cublasLtMatrixTransformDescCreate( + &self, + transformDesc: *mut cublasLtMatrixTransformDesc_t, + scaleType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescCreate + .as_ref() + .expect("Expected function, got error."))(transformDesc, scaleType) + } + pub unsafe fn cublasLtMatrixTransformDescDestroy( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescDestroy + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cublasLtMatrixTransformDescSetAttribute( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescSetAttribute + .as_ref() + .expect("Expected function, got error."))(transformDesc, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatrixTransformDescGetAttribute( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescGetAttribute + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatmulPreferenceInit_internal( + &self, + pref: cublasLtMatmulPreference_t, + size: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceInit_internal + .as_ref() + .expect("Expected function, got error."))(pref, size) + } + pub unsafe fn cublasLtMatmulPreferenceCreate( + &self, + pref: *mut cublasLtMatmulPreference_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceCreate + .as_ref() + .expect("Expected function, got error."))(pref) + } + pub unsafe fn cublasLtMatmulPreferenceDestroy( + &self, + pref: cublasLtMatmulPreference_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceDestroy + .as_ref() + .expect("Expected function, got error."))(pref) + } + pub unsafe fn cublasLtMatmulPreferenceSetAttribute( + &self, + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceSetAttribute + .as_ref() + .expect("Expected function, got error."))(pref, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulPreferenceGetAttribute( + &self, + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceGetAttribute + .as_ref() + .expect("Expected function, got error."))( + pref, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtMatmulAlgoGetHeuristic( + &self, + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + preference: cublasLtMatmulPreference_t, + requestedAlgoCount: ::core::ffi::c_int, + heuristicResultsArray: *mut cublasLtMatmulHeuristicResult_t, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoGetHeuristic + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Ddesc, + preference, + requestedAlgoCount, + heuristicResultsArray, + returnAlgoCount, + ) + } + pub unsafe fn cublasLtMatmulAlgoGetIds( + &self, + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + requestedAlgoCount: ::core::ffi::c_int, + algoIdsArray: *mut ::core::ffi::c_int, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoGetIds + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeType, + scaleType, + Atype, + Btype, + Ctype, + Dtype, + requestedAlgoCount, + algoIdsArray, + returnAlgoCount, + ) + } + pub unsafe fn cublasLtMatmulAlgoInit( + &self, + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + algoId: ::core::ffi::c_int, + algo: *mut cublasLtMatmulAlgo_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoInit + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeType, + scaleType, + Atype, + Btype, + Ctype, + Dtype, + algoId, + algo, + ) + } + pub unsafe fn cublasLtMatmulAlgoCheck( + &self, + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + result: *mut cublasLtMatmulHeuristicResult_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoCheck + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Ddesc, + algo, + result, + ) + } + pub unsafe fn cublasLtMatmulAlgoCapGetAttribute( + &self, + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoCapAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoCapGetAttribute + .as_ref() + .expect("Expected function, got error."))( + algo, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtMatmulAlgoConfigSetAttribute( + &self, + algo: *mut cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoConfigSetAttribute + .as_ref() + .expect("Expected function, got error."))(algo, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulAlgoConfigGetAttribute( + &self, + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoConfigGetAttribute + .as_ref() + .expect("Expected function, got error."))( + algo, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtLoggerSetCallback( + &self, + callback: cublasLtLoggerCallback_t, + ) -> cublasStatus_t { + (self + .cublasLtLoggerSetCallback + .as_ref() + .expect("Expected function, got error."))(callback) + } + pub unsafe fn cublasLtLoggerSetFile(&self, file: *mut FILE) -> cublasStatus_t { + (self + .cublasLtLoggerSetFile + .as_ref() + .expect("Expected function, got error."))(file) + } + pub unsafe fn cublasLtLoggerOpenFile( + &self, + logFile: *const ::core::ffi::c_char, + ) -> cublasStatus_t { + (self + .cublasLtLoggerOpenFile + .as_ref() + .expect("Expected function, got error."))(logFile) + } + pub unsafe fn cublasLtLoggerSetLevel(&self, level: ::core::ffi::c_int) -> cublasStatus_t { + (self + .cublasLtLoggerSetLevel + .as_ref() + .expect("Expected function, got error."))(level) + } + pub unsafe fn cublasLtLoggerSetMask(&self, mask: ::core::ffi::c_int) -> cublasStatus_t { + (self + .cublasLtLoggerSetMask + .as_ref() + .expect("Expected function, got error."))(mask) + } + pub unsafe fn cublasLtLoggerForceDisable(&self) -> cublasStatus_t { + (self + .cublasLtLoggerForceDisable + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/cublaslt/sys/sys_11060.rs b/src/cublaslt/sys/sys_11060.rs new file mode 100644 index 00000000..0ee91e49 --- /dev/null +++ b/src/cublaslt/sys/sys_11060.rs @@ -0,0 +1,1989 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +pub type __off_t = ::core::ffi::c_long; +pub type __off64_t = ::core::ffi::c_long; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaDataType_t { + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, +} +pub use self::cudaDataType_t as cudaDataType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasStatus_t { + CUBLAS_STATUS_SUCCESS = 0, + CUBLAS_STATUS_NOT_INITIALIZED = 1, + CUBLAS_STATUS_ALLOC_FAILED = 3, + CUBLAS_STATUS_INVALID_VALUE = 7, + CUBLAS_STATUS_ARCH_MISMATCH = 8, + CUBLAS_STATUS_MAPPING_ERROR = 11, + CUBLAS_STATUS_EXECUTION_FAILED = 13, + CUBLAS_STATUS_INTERNAL_ERROR = 14, + CUBLAS_STATUS_NOT_SUPPORTED = 15, + CUBLAS_STATUS_LICENSE_ERROR = 16, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasComputeType_t { + CUBLAS_COMPUTE_16F = 64, + CUBLAS_COMPUTE_16F_PEDANTIC = 65, + CUBLAS_COMPUTE_32F = 68, + CUBLAS_COMPUTE_32F_PEDANTIC = 69, + CUBLAS_COMPUTE_32F_FAST_16F = 74, + CUBLAS_COMPUTE_32F_FAST_16BF = 75, + CUBLAS_COMPUTE_32F_FAST_TF32 = 77, + CUBLAS_COMPUTE_64F = 70, + CUBLAS_COMPUTE_64F_PEDANTIC = 71, + CUBLAS_COMPUTE_32I = 72, + CUBLAS_COMPUTE_32I_PEDANTIC = 73, +} +pub type FILE = _IO_FILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_marker { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_codecvt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_wide_data { + _unused: [u8; 0], +} +pub type _IO_lock_t = ::core::ffi::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct _IO_FILE { + pub _flags: ::core::ffi::c_int, + pub _IO_read_ptr: *mut ::core::ffi::c_char, + pub _IO_read_end: *mut ::core::ffi::c_char, + pub _IO_read_base: *mut ::core::ffi::c_char, + pub _IO_write_base: *mut ::core::ffi::c_char, + pub _IO_write_ptr: *mut ::core::ffi::c_char, + pub _IO_write_end: *mut ::core::ffi::c_char, + pub _IO_buf_base: *mut ::core::ffi::c_char, + pub _IO_buf_end: *mut ::core::ffi::c_char, + pub _IO_save_base: *mut ::core::ffi::c_char, + pub _IO_backup_base: *mut ::core::ffi::c_char, + pub _IO_save_end: *mut ::core::ffi::c_char, + pub _markers: *mut _IO_marker, + pub _chain: *mut _IO_FILE, + pub _fileno: ::core::ffi::c_int, + pub _flags2: ::core::ffi::c_int, + pub _old_offset: __off_t, + pub _cur_column: ::core::ffi::c_ushort, + pub _vtable_offset: ::core::ffi::c_schar, + pub _shortbuf: [::core::ffi::c_char; 1usize], + pub _lock: *mut _IO_lock_t, + pub _offset: __off64_t, + pub _codecvt: *mut _IO_codecvt, + pub _wide_data: *mut _IO_wide_data, + pub _freeres_list: *mut _IO_FILE, + pub _freeres_buf: *mut ::core::ffi::c_void, + pub __pad5: usize, + pub _mode: ::core::ffi::c_int, + pub _unused2: [::core::ffi::c_char; 20usize], +} +#[test] +fn bindgen_test_layout__IO_FILE() { + const UNINIT: ::core::mem::MaybeUninit<_IO_FILE> = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::<_IO_FILE>(), + 216usize, + concat!("Size of: ", stringify!(_IO_FILE)) + ); + assert_eq!( + ::core::mem::align_of::<_IO_FILE>(), + 8usize, + concat!("Alignment of ", stringify!(_IO_FILE)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_read_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_write_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_buf_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_buf_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_save_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_backup_base) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_IO_save_end) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_markers) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_chain) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_fileno) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_flags2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_old_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_cur_column) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, + 130usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_vtable_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, + 131usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_shortbuf) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_lock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_codecvt) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_wide_data) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_freeres_list) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_freeres_buf) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(__pad5) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_mode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, + 196usize, + concat!( + "Offset of field: ", + stringify!(_IO_FILE), + "::", + stringify!(_unused2) + ) + ); +} +impl Default for _IO_FILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cublasLtContext { + _unused: [u8; 0], +} +pub type cublasLtHandle_t = *mut cublasLtContext; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatrixLayoutOpaque_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatrixLayoutOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatrixLayoutOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatrixLayoutOpaque_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatrixLayoutOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatrixLayout_t = *mut cublasLtMatrixLayoutOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulAlgo_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulAlgo_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatmulAlgo_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulAlgo_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulAlgo_t), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulDescOpaque_t { + pub data: [u64; 12usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulDescOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(cublasLtMatmulDescOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulDescOpaque_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulDescOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatmulDesc_t = *mut cublasLtMatmulDescOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatrixTransformDescOpaque_t { + pub data: [u64; 8usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatrixTransformDescOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(cublasLtMatrixTransformDescOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cublasLtMatrixTransformDescOpaque_t) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatrixTransformDescOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatrixTransformDesc_t = *mut cublasLtMatrixTransformDescOpaque_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cublasLtMatmulPreferenceOpaque_t { + pub data: [u64; 10usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulPreferenceOpaque_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(cublasLtMatmulPreferenceOpaque_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cublasLtMatmulPreferenceOpaque_t) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulPreferenceOpaque_t), + "::", + stringify!(data) + ) + ); +} +pub type cublasLtMatmulPreference_t = *mut cublasLtMatmulPreferenceOpaque_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulTile_t { + CUBLASLT_MATMUL_TILE_UNDEFINED = 0, + CUBLASLT_MATMUL_TILE_8x8 = 1, + CUBLASLT_MATMUL_TILE_8x16 = 2, + CUBLASLT_MATMUL_TILE_16x8 = 3, + CUBLASLT_MATMUL_TILE_8x32 = 4, + CUBLASLT_MATMUL_TILE_16x16 = 5, + CUBLASLT_MATMUL_TILE_32x8 = 6, + CUBLASLT_MATMUL_TILE_8x64 = 7, + CUBLASLT_MATMUL_TILE_16x32 = 8, + CUBLASLT_MATMUL_TILE_32x16 = 9, + CUBLASLT_MATMUL_TILE_64x8 = 10, + CUBLASLT_MATMUL_TILE_32x32 = 11, + CUBLASLT_MATMUL_TILE_32x64 = 12, + CUBLASLT_MATMUL_TILE_64x32 = 13, + CUBLASLT_MATMUL_TILE_32x128 = 14, + CUBLASLT_MATMUL_TILE_64x64 = 15, + CUBLASLT_MATMUL_TILE_128x32 = 16, + CUBLASLT_MATMUL_TILE_64x128 = 17, + CUBLASLT_MATMUL_TILE_128x64 = 18, + CUBLASLT_MATMUL_TILE_64x256 = 19, + CUBLASLT_MATMUL_TILE_128x128 = 20, + CUBLASLT_MATMUL_TILE_256x64 = 21, + CUBLASLT_MATMUL_TILE_64x512 = 22, + CUBLASLT_MATMUL_TILE_128x256 = 23, + CUBLASLT_MATMUL_TILE_256x128 = 24, + CUBLASLT_MATMUL_TILE_512x64 = 25, + CUBLASLT_MATMUL_TILE_64x96 = 26, + CUBLASLT_MATMUL_TILE_96x64 = 27, + CUBLASLT_MATMUL_TILE_96x128 = 28, + CUBLASLT_MATMUL_TILE_128x160 = 29, + CUBLASLT_MATMUL_TILE_160x128 = 30, + CUBLASLT_MATMUL_TILE_192x128 = 31, + CUBLASLT_MATMUL_TILE_END = 32, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulStages_t { + CUBLASLT_MATMUL_STAGES_UNDEFINED = 0, + CUBLASLT_MATMUL_STAGES_16x1 = 1, + CUBLASLT_MATMUL_STAGES_16x2 = 2, + CUBLASLT_MATMUL_STAGES_16x3 = 3, + CUBLASLT_MATMUL_STAGES_16x4 = 4, + CUBLASLT_MATMUL_STAGES_16x5 = 5, + CUBLASLT_MATMUL_STAGES_16x6 = 6, + CUBLASLT_MATMUL_STAGES_32x1 = 7, + CUBLASLT_MATMUL_STAGES_32x2 = 8, + CUBLASLT_MATMUL_STAGES_32x3 = 9, + CUBLASLT_MATMUL_STAGES_32x4 = 10, + CUBLASLT_MATMUL_STAGES_32x5 = 11, + CUBLASLT_MATMUL_STAGES_32x6 = 12, + CUBLASLT_MATMUL_STAGES_64x1 = 13, + CUBLASLT_MATMUL_STAGES_64x2 = 14, + CUBLASLT_MATMUL_STAGES_64x3 = 15, + CUBLASLT_MATMUL_STAGES_64x4 = 16, + CUBLASLT_MATMUL_STAGES_64x5 = 17, + CUBLASLT_MATMUL_STAGES_64x6 = 18, + CUBLASLT_MATMUL_STAGES_128x1 = 19, + CUBLASLT_MATMUL_STAGES_128x2 = 20, + CUBLASLT_MATMUL_STAGES_128x3 = 21, + CUBLASLT_MATMUL_STAGES_128x4 = 22, + CUBLASLT_MATMUL_STAGES_128x5 = 23, + CUBLASLT_MATMUL_STAGES_128x6 = 24, + CUBLASLT_MATMUL_STAGES_32x10 = 25, + CUBLASLT_MATMUL_STAGES_8x4 = 26, + CUBLASLT_MATMUL_STAGES_16x10 = 27, + CUBLASLT_MATMUL_STAGES_8x5 = 28, + CUBLASLT_MATMUL_STAGES_16x80 = 29, + CUBLASLT_MATMUL_STAGES_64x80 = 30, + CUBLASLT_MATMUL_STAGES_END = 31, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtPointerMode_t { + CUBLASLT_POINTER_MODE_HOST = 0, + CUBLASLT_POINTER_MODE_DEVICE = 1, + CUBLASLT_POINTER_MODE_DEVICE_VECTOR = 2, + CUBLASLT_POINTER_MODE_ALPHA_DEVICE_VECTOR_BETA_ZERO = 3, + CUBLASLT_POINTER_MODE_ALPHA_DEVICE_VECTOR_BETA_HOST = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtPointerModeMask_t { + CUBLASLT_POINTER_MODE_MASK_NO_FILTERING = 0, + CUBLASLT_POINTER_MODE_MASK_HOST = 1, + CUBLASLT_POINTER_MODE_MASK_DEVICE = 2, + CUBLASLT_POINTER_MODE_MASK_DEVICE_VECTOR = 4, + CUBLASLT_POINTER_MODE_MASK_ALPHA_DEVICE_VECTOR_BETA_ZERO = 8, + CUBLASLT_POINTER_MODE_MASK_ALPHA_DEVICE_VECTOR_BETA_HOST = 16, +} +pub type cublasLtNumericalImplFlags_t = u64; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtOrder_t { + CUBLASLT_ORDER_COL = 0, + CUBLASLT_ORDER_ROW = 1, + CUBLASLT_ORDER_COL32 = 2, + CUBLASLT_ORDER_COL4_4R2_8C = 3, + CUBLASLT_ORDER_COL32_2R_4R4 = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatrixLayoutAttribute_t { + CUBLASLT_MATRIX_LAYOUT_TYPE = 0, + CUBLASLT_MATRIX_LAYOUT_ORDER = 1, + CUBLASLT_MATRIX_LAYOUT_ROWS = 2, + CUBLASLT_MATRIX_LAYOUT_COLS = 3, + CUBLASLT_MATRIX_LAYOUT_LD = 4, + CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT = 5, + CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET = 6, + CUBLASLT_MATRIX_LAYOUT_PLANE_OFFSET = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulDescAttributes_t { + CUBLASLT_MATMUL_DESC_COMPUTE_TYPE = 0, + CUBLASLT_MATMUL_DESC_SCALE_TYPE = 1, + CUBLASLT_MATMUL_DESC_POINTER_MODE = 2, + CUBLASLT_MATMUL_DESC_TRANSA = 3, + CUBLASLT_MATMUL_DESC_TRANSB = 4, + CUBLASLT_MATMUL_DESC_TRANSC = 5, + CUBLASLT_MATMUL_DESC_FILL_MODE = 6, + CUBLASLT_MATMUL_DESC_EPILOGUE = 7, + CUBLASLT_MATMUL_DESC_BIAS_POINTER = 8, + CUBLASLT_MATMUL_DESC_BIAS_BATCH_STRIDE = 10, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_POINTER = 11, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_LD = 12, + CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_BATCH_STRIDE = 13, + CUBLASLT_MATMUL_DESC_ALPHA_VECTOR_BATCH_STRIDE = 14, + CUBLASLT_MATMUL_DESC_SM_COUNT_TARGET = 15, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatrixTransformDescAttributes_t { + CUBLASLT_MATRIX_TRANSFORM_DESC_SCALE_TYPE = 0, + CUBLASLT_MATRIX_TRANSFORM_DESC_POINTER_MODE = 1, + CUBLASLT_MATRIX_TRANSFORM_DESC_TRANSA = 2, + CUBLASLT_MATRIX_TRANSFORM_DESC_TRANSB = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLt3mMode_t { + CUBLASLT_3M_MODE_DISALLOWED = 0, + CUBLASLT_3M_MODE_ALLOWED = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtReductionScheme_t { + CUBLASLT_REDUCTION_SCHEME_NONE = 0, + CUBLASLT_REDUCTION_SCHEME_INPLACE = 1, + CUBLASLT_REDUCTION_SCHEME_COMPUTE_TYPE = 2, + CUBLASLT_REDUCTION_SCHEME_OUTPUT_TYPE = 4, + CUBLASLT_REDUCTION_SCHEME_MASK = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtEpilogue_t { + CUBLASLT_EPILOGUE_DEFAULT = 1, + CUBLASLT_EPILOGUE_RELU = 2, + CUBLASLT_EPILOGUE_RELU_AUX = 130, + CUBLASLT_EPILOGUE_BIAS = 4, + CUBLASLT_EPILOGUE_RELU_BIAS = 6, + CUBLASLT_EPILOGUE_RELU_AUX_BIAS = 134, + CUBLASLT_EPILOGUE_DRELU = 136, + CUBLASLT_EPILOGUE_DRELU_BGRAD = 152, + CUBLASLT_EPILOGUE_GELU = 32, + CUBLASLT_EPILOGUE_GELU_AUX = 160, + CUBLASLT_EPILOGUE_GELU_BIAS = 36, + CUBLASLT_EPILOGUE_GELU_AUX_BIAS = 164, + CUBLASLT_EPILOGUE_DGELU = 192, + CUBLASLT_EPILOGUE_DGELU_BGRAD = 208, + CUBLASLT_EPILOGUE_BGRADA = 256, + CUBLASLT_EPILOGUE_BGRADB = 512, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulSearch_t { + CUBLASLT_SEARCH_BEST_FIT = 0, + CUBLASLT_SEARCH_LIMITED_BY_ALGO_ID = 1, + CUBLASLT_SEARCH_RESERVED_02 = 2, + CUBLASLT_SEARCH_RESERVED_03 = 3, + CUBLASLT_SEARCH_RESERVED_04 = 4, + CUBLASLT_SEARCH_RESERVED_05 = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulPreferenceAttributes_t { + CUBLASLT_MATMUL_PREF_SEARCH_MODE = 0, + CUBLASLT_MATMUL_PREF_MAX_WORKSPACE_BYTES = 1, + CUBLASLT_MATMUL_PREF_MATH_MODE_MASK = 2, + CUBLASLT_MATMUL_PREF_REDUCTION_SCHEME_MASK = 3, + CUBLASLT_MATMUL_PREF_GAUSSIAN_MODE_MASK = 4, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_A_BYTES = 5, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_B_BYTES = 6, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_C_BYTES = 7, + CUBLASLT_MATMUL_PREF_MIN_ALIGNMENT_D_BYTES = 8, + CUBLASLT_MATMUL_PREF_MAX_WAVES_COUNT = 9, + CUBLASLT_MATMUL_PREF_POINTER_MODE_MASK = 10, + CUBLASLT_MATMUL_PREF_EPILOGUE_MASK = 11, + CUBLASLT_MATMUL_PREF_IMPL_MASK = 12, + CUBLASLT_MATMUL_PREF_SM_COUNT_TARGET = 13, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cublasLtMatmulHeuristicResult_t { + pub algo: cublasLtMatmulAlgo_t, + pub workspaceSize: usize, + pub state: cublasStatus_t, + pub wavesCount: f32, + pub reserved: [::core::ffi::c_int; 4usize], +} +#[test] +fn bindgen_test_layout_cublasLtMatmulHeuristicResult_t() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(cublasLtMatmulHeuristicResult_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cublasLtMatmulHeuristicResult_t)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).workspaceSize) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(workspaceSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).wavesCount) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(wavesCount) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(cublasLtMatmulHeuristicResult_t), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cublasLtMatmulHeuristicResult_t { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulAlgoCapAttributes_t { + CUBLASLT_ALGO_CAP_SPLITK_SUPPORT = 0, + CUBLASLT_ALGO_CAP_REDUCTION_SCHEME_MASK = 1, + CUBLASLT_ALGO_CAP_CTA_SWIZZLING_SUPPORT = 2, + CUBLASLT_ALGO_CAP_STRIDED_BATCH_SUPPORT = 3, + CUBLASLT_ALGO_CAP_OUT_OF_PLACE_RESULT_SUPPORT = 4, + CUBLASLT_ALGO_CAP_UPLO_SUPPORT = 5, + CUBLASLT_ALGO_CAP_TILE_IDS = 6, + CUBLASLT_ALGO_CAP_CUSTOM_OPTION_MAX = 7, + CUBLASLT_ALGO_CAP_MATHMODE_IMPL = 8, + CUBLASLT_ALGO_CAP_GAUSSIAN_IMPL = 9, + CUBLASLT_ALGO_CAP_CUSTOM_MEMORY_ORDER = 10, + CUBLASLT_ALGO_CAP_POINTER_MODE_MASK = 11, + CUBLASLT_ALGO_CAP_EPILOGUE_MASK = 12, + CUBLASLT_ALGO_CAP_STAGES_IDS = 13, + CUBLASLT_ALGO_CAP_LD_NEGATIVE = 14, + CUBLASLT_ALGO_CAP_NUMERICAL_IMPL_FLAGS = 15, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_A_BYTES = 16, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_B_BYTES = 17, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_C_BYTES = 18, + CUBLASLT_ALGO_CAP_MIN_ALIGNMENT_D_BYTES = 19, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cublasLtMatmulAlgoConfigAttributes_t { + CUBLASLT_ALGO_CONFIG_ID = 0, + CUBLASLT_ALGO_CONFIG_TILE_ID = 1, + CUBLASLT_ALGO_CONFIG_SPLITK_NUM = 2, + CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME = 3, + CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING = 4, + CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION = 5, + CUBLASLT_ALGO_CONFIG_STAGES_ID = 6, +} +pub type cublasLtLoggerCallback_t = ::core::option::Option< + unsafe extern "C" fn( + logLevel: ::core::ffi::c_int, + functionName: *const ::core::ffi::c_char, + message: *const ::core::ffi::c_char, + ), +>; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cublasLtCreate: Result< + unsafe extern "C" fn(lightHandle: *mut cublasLtHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtDestroy: Result< + unsafe extern "C" fn(lightHandle: cublasLtHandle_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtGetStatusName: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLtGetStatusString: Result< + unsafe extern "C" fn(status: cublasStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cublasLtGetVersion: Result usize, ::libloading::Error>, + pub cublasLtGetCudartVersion: Result usize, ::libloading::Error>, + pub cublasLtGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmul: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeDesc: cublasLtMatmulDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + C: *const ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + D: *mut ::core::ffi::c_void, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransform: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + transformDesc: cublasLtMatrixTransformDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + C: *mut ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + stream: cudaStream_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutInit_internal: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + size: usize, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutCreate: Result< + unsafe extern "C" fn( + matLayout: *mut cublasLtMatrixLayout_t, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutDestroy: Result< + unsafe extern "C" fn(matLayout: cublasLtMatrixLayout_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutSetAttribute: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixLayoutGetAttribute: Result< + unsafe extern "C" fn( + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescInit_internal: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + size: usize, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescCreate: Result< + unsafe extern "C" fn( + matmulDesc: *mut cublasLtMatmulDesc_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescDestroy: Result< + unsafe extern "C" fn(matmulDesc: cublasLtMatmulDesc_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescSetAttribute: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulDescGetAttribute: Result< + unsafe extern "C" fn( + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescInit_internal: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + size: usize, + scaleType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescCreate: Result< + unsafe extern "C" fn( + transformDesc: *mut cublasLtMatrixTransformDesc_t, + scaleType: cudaDataType, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescDestroy: Result< + unsafe extern "C" fn(transformDesc: cublasLtMatrixTransformDesc_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescSetAttribute: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatrixTransformDescGetAttribute: Result< + unsafe extern "C" fn( + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceInit_internal: Result< + unsafe extern "C" fn(pref: cublasLtMatmulPreference_t, size: usize) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceCreate: Result< + unsafe extern "C" fn(pref: *mut cublasLtMatmulPreference_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceDestroy: Result< + unsafe extern "C" fn(pref: cublasLtMatmulPreference_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceSetAttribute: Result< + unsafe extern "C" fn( + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulPreferenceGetAttribute: Result< + unsafe extern "C" fn( + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoGetHeuristic: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + preference: cublasLtMatmulPreference_t, + requestedAlgoCount: ::core::ffi::c_int, + heuristicResultsArray: *mut cublasLtMatmulHeuristicResult_t, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoGetIds: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + requestedAlgoCount: ::core::ffi::c_int, + algoIdsArray: *mut ::core::ffi::c_int, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoInit: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + algoId: ::core::ffi::c_int, + algo: *mut cublasLtMatmulAlgo_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoCheck: Result< + unsafe extern "C" fn( + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + result: *mut cublasLtMatmulHeuristicResult_t, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoCapGetAttribute: Result< + unsafe extern "C" fn( + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoCapAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoConfigSetAttribute: Result< + unsafe extern "C" fn( + algo: *mut cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtMatmulAlgoConfigGetAttribute: Result< + unsafe extern "C" fn( + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetCallback: Result< + unsafe extern "C" fn(callback: cublasLtLoggerCallback_t) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetFile: + Result cublasStatus_t, ::libloading::Error>, + pub cublasLtLoggerOpenFile: Result< + unsafe extern "C" fn(logFile: *const ::core::ffi::c_char) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetLevel: Result< + unsafe extern "C" fn(level: ::core::ffi::c_int) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerSetMask: Result< + unsafe extern "C" fn(mask: ::core::ffi::c_int) -> cublasStatus_t, + ::libloading::Error, + >, + pub cublasLtLoggerForceDisable: + Result cublasStatus_t, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cublasLtCreate = __library.get(b"cublasLtCreate\0").map(|sym| *sym); + let cublasLtDestroy = __library.get(b"cublasLtDestroy\0").map(|sym| *sym); + let cublasLtGetStatusName = __library.get(b"cublasLtGetStatusName\0").map(|sym| *sym); + let cublasLtGetStatusString = __library.get(b"cublasLtGetStatusString\0").map(|sym| *sym); + let cublasLtGetVersion = __library.get(b"cublasLtGetVersion\0").map(|sym| *sym); + let cublasLtGetCudartVersion = __library.get(b"cublasLtGetCudartVersion\0").map(|sym| *sym); + let cublasLtGetProperty = __library.get(b"cublasLtGetProperty\0").map(|sym| *sym); + let cublasLtMatmul = __library.get(b"cublasLtMatmul\0").map(|sym| *sym); + let cublasLtMatrixTransform = __library.get(b"cublasLtMatrixTransform\0").map(|sym| *sym); + let cublasLtMatrixLayoutInit_internal = __library + .get(b"cublasLtMatrixLayoutInit_internal\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutCreate = __library + .get(b"cublasLtMatrixLayoutCreate\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutDestroy = __library + .get(b"cublasLtMatrixLayoutDestroy\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutSetAttribute = __library + .get(b"cublasLtMatrixLayoutSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixLayoutGetAttribute = __library + .get(b"cublasLtMatrixLayoutGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulDescInit_internal = __library + .get(b"cublasLtMatmulDescInit_internal\0") + .map(|sym| *sym); + let cublasLtMatmulDescCreate = __library.get(b"cublasLtMatmulDescCreate\0").map(|sym| *sym); + let cublasLtMatmulDescDestroy = __library + .get(b"cublasLtMatmulDescDestroy\0") + .map(|sym| *sym); + let cublasLtMatmulDescSetAttribute = __library + .get(b"cublasLtMatmulDescSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulDescGetAttribute = __library + .get(b"cublasLtMatmulDescGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescInit_internal = __library + .get(b"cublasLtMatrixTransformDescInit_internal\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescCreate = __library + .get(b"cublasLtMatrixTransformDescCreate\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescDestroy = __library + .get(b"cublasLtMatrixTransformDescDestroy\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescSetAttribute = __library + .get(b"cublasLtMatrixTransformDescSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatrixTransformDescGetAttribute = __library + .get(b"cublasLtMatrixTransformDescGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceInit_internal = __library + .get(b"cublasLtMatmulPreferenceInit_internal\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceCreate = __library + .get(b"cublasLtMatmulPreferenceCreate\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceDestroy = __library + .get(b"cublasLtMatmulPreferenceDestroy\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceSetAttribute = __library + .get(b"cublasLtMatmulPreferenceSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulPreferenceGetAttribute = __library + .get(b"cublasLtMatmulPreferenceGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoGetHeuristic = __library + .get(b"cublasLtMatmulAlgoGetHeuristic\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoGetIds = __library.get(b"cublasLtMatmulAlgoGetIds\0").map(|sym| *sym); + let cublasLtMatmulAlgoInit = __library.get(b"cublasLtMatmulAlgoInit\0").map(|sym| *sym); + let cublasLtMatmulAlgoCheck = __library.get(b"cublasLtMatmulAlgoCheck\0").map(|sym| *sym); + let cublasLtMatmulAlgoCapGetAttribute = __library + .get(b"cublasLtMatmulAlgoCapGetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoConfigSetAttribute = __library + .get(b"cublasLtMatmulAlgoConfigSetAttribute\0") + .map(|sym| *sym); + let cublasLtMatmulAlgoConfigGetAttribute = __library + .get(b"cublasLtMatmulAlgoConfigGetAttribute\0") + .map(|sym| *sym); + let cublasLtLoggerSetCallback = __library + .get(b"cublasLtLoggerSetCallback\0") + .map(|sym| *sym); + let cublasLtLoggerSetFile = __library.get(b"cublasLtLoggerSetFile\0").map(|sym| *sym); + let cublasLtLoggerOpenFile = __library.get(b"cublasLtLoggerOpenFile\0").map(|sym| *sym); + let cublasLtLoggerSetLevel = __library.get(b"cublasLtLoggerSetLevel\0").map(|sym| *sym); + let cublasLtLoggerSetMask = __library.get(b"cublasLtLoggerSetMask\0").map(|sym| *sym); + let cublasLtLoggerForceDisable = __library + .get(b"cublasLtLoggerForceDisable\0") + .map(|sym| *sym); + Ok(Lib { + __library, + cublasLtCreate, + cublasLtDestroy, + cublasLtGetStatusName, + cublasLtGetStatusString, + cublasLtGetVersion, + cublasLtGetCudartVersion, + cublasLtGetProperty, + cublasLtMatmul, + cublasLtMatrixTransform, + cublasLtMatrixLayoutInit_internal, + cublasLtMatrixLayoutCreate, + cublasLtMatrixLayoutDestroy, + cublasLtMatrixLayoutSetAttribute, + cublasLtMatrixLayoutGetAttribute, + cublasLtMatmulDescInit_internal, + cublasLtMatmulDescCreate, + cublasLtMatmulDescDestroy, + cublasLtMatmulDescSetAttribute, + cublasLtMatmulDescGetAttribute, + cublasLtMatrixTransformDescInit_internal, + cublasLtMatrixTransformDescCreate, + cublasLtMatrixTransformDescDestroy, + cublasLtMatrixTransformDescSetAttribute, + cublasLtMatrixTransformDescGetAttribute, + cublasLtMatmulPreferenceInit_internal, + cublasLtMatmulPreferenceCreate, + cublasLtMatmulPreferenceDestroy, + cublasLtMatmulPreferenceSetAttribute, + cublasLtMatmulPreferenceGetAttribute, + cublasLtMatmulAlgoGetHeuristic, + cublasLtMatmulAlgoGetIds, + cublasLtMatmulAlgoInit, + cublasLtMatmulAlgoCheck, + cublasLtMatmulAlgoCapGetAttribute, + cublasLtMatmulAlgoConfigSetAttribute, + cublasLtMatmulAlgoConfigGetAttribute, + cublasLtLoggerSetCallback, + cublasLtLoggerSetFile, + cublasLtLoggerOpenFile, + cublasLtLoggerSetLevel, + cublasLtLoggerSetMask, + cublasLtLoggerForceDisable, + }) + } + pub unsafe fn cublasLtCreate(&self, lightHandle: *mut cublasLtHandle_t) -> cublasStatus_t { + (self + .cublasLtCreate + .as_ref() + .expect("Expected function, got error."))(lightHandle) + } + pub unsafe fn cublasLtDestroy(&self, lightHandle: cublasLtHandle_t) -> cublasStatus_t { + (self + .cublasLtDestroy + .as_ref() + .expect("Expected function, got error."))(lightHandle) + } + pub unsafe fn cublasLtGetStatusName( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasLtGetStatusName + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLtGetStatusString( + &self, + status: cublasStatus_t, + ) -> *const ::core::ffi::c_char { + (self + .cublasLtGetStatusString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cublasLtGetVersion(&self) -> usize { + (self + .cublasLtGetVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasLtGetCudartVersion(&self) -> usize { + (self + .cublasLtGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cublasLtGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cublasLtMatmul( + &self, + lightHandle: cublasLtHandle_t, + computeDesc: cublasLtMatmulDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + C: *const ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + D: *mut ::core::ffi::c_void, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmul + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeDesc, + alpha, + A, + Adesc, + B, + Bdesc, + beta, + C, + Cdesc, + D, + Ddesc, + algo, + workspace, + workspaceSizeInBytes, + stream, + ) + } + pub unsafe fn cublasLtMatrixTransform( + &self, + lightHandle: cublasLtHandle_t, + transformDesc: cublasLtMatrixTransformDesc_t, + alpha: *const ::core::ffi::c_void, + A: *const ::core::ffi::c_void, + Adesc: cublasLtMatrixLayout_t, + beta: *const ::core::ffi::c_void, + B: *const ::core::ffi::c_void, + Bdesc: cublasLtMatrixLayout_t, + C: *mut ::core::ffi::c_void, + Cdesc: cublasLtMatrixLayout_t, + stream: cudaStream_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransform + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + transformDesc, + alpha, + A, + Adesc, + beta, + B, + Bdesc, + C, + Cdesc, + stream, + ) + } + pub unsafe fn cublasLtMatrixLayoutInit_internal( + &self, + matLayout: cublasLtMatrixLayout_t, + size: usize, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutInit_internal + .as_ref() + .expect("Expected function, got error."))(matLayout, size, type_, rows, cols, ld) + } + pub unsafe fn cublasLtMatrixLayoutCreate( + &self, + matLayout: *mut cublasLtMatrixLayout_t, + type_: cudaDataType, + rows: u64, + cols: u64, + ld: i64, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutCreate + .as_ref() + .expect("Expected function, got error."))(matLayout, type_, rows, cols, ld) + } + pub unsafe fn cublasLtMatrixLayoutDestroy( + &self, + matLayout: cublasLtMatrixLayout_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutDestroy + .as_ref() + .expect("Expected function, got error."))(matLayout) + } + pub unsafe fn cublasLtMatrixLayoutSetAttribute( + &self, + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutSetAttribute + .as_ref() + .expect("Expected function, got error."))(matLayout, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatrixLayoutGetAttribute( + &self, + matLayout: cublasLtMatrixLayout_t, + attr: cublasLtMatrixLayoutAttribute_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixLayoutGetAttribute + .as_ref() + .expect("Expected function, got error."))( + matLayout, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatmulDescInit_internal( + &self, + matmulDesc: cublasLtMatmulDesc_t, + size: usize, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescInit_internal + .as_ref() + .expect("Expected function, got error."))( + matmulDesc, size, computeType, scaleType + ) + } + pub unsafe fn cublasLtMatmulDescCreate( + &self, + matmulDesc: *mut cublasLtMatmulDesc_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescCreate + .as_ref() + .expect("Expected function, got error."))(matmulDesc, computeType, scaleType) + } + pub unsafe fn cublasLtMatmulDescDestroy( + &self, + matmulDesc: cublasLtMatmulDesc_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescDestroy + .as_ref() + .expect("Expected function, got error."))(matmulDesc) + } + pub unsafe fn cublasLtMatmulDescSetAttribute( + &self, + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescSetAttribute + .as_ref() + .expect("Expected function, got error."))(matmulDesc, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulDescGetAttribute( + &self, + matmulDesc: cublasLtMatmulDesc_t, + attr: cublasLtMatmulDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulDescGetAttribute + .as_ref() + .expect("Expected function, got error."))( + matmulDesc, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatrixTransformDescInit_internal( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + size: usize, + scaleType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescInit_internal + .as_ref() + .expect("Expected function, got error."))(transformDesc, size, scaleType) + } + pub unsafe fn cublasLtMatrixTransformDescCreate( + &self, + transformDesc: *mut cublasLtMatrixTransformDesc_t, + scaleType: cudaDataType, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescCreate + .as_ref() + .expect("Expected function, got error."))(transformDesc, scaleType) + } + pub unsafe fn cublasLtMatrixTransformDescDestroy( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescDestroy + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cublasLtMatrixTransformDescSetAttribute( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescSetAttribute + .as_ref() + .expect("Expected function, got error."))(transformDesc, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatrixTransformDescGetAttribute( + &self, + transformDesc: cublasLtMatrixTransformDesc_t, + attr: cublasLtMatrixTransformDescAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatrixTransformDescGetAttribute + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + attr, + buf, + sizeInBytes, + sizeWritten, + ) + } + pub unsafe fn cublasLtMatmulPreferenceInit_internal( + &self, + pref: cublasLtMatmulPreference_t, + size: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceInit_internal + .as_ref() + .expect("Expected function, got error."))(pref, size) + } + pub unsafe fn cublasLtMatmulPreferenceCreate( + &self, + pref: *mut cublasLtMatmulPreference_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceCreate + .as_ref() + .expect("Expected function, got error."))(pref) + } + pub unsafe fn cublasLtMatmulPreferenceDestroy( + &self, + pref: cublasLtMatmulPreference_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceDestroy + .as_ref() + .expect("Expected function, got error."))(pref) + } + pub unsafe fn cublasLtMatmulPreferenceSetAttribute( + &self, + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceSetAttribute + .as_ref() + .expect("Expected function, got error."))(pref, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulPreferenceGetAttribute( + &self, + pref: cublasLtMatmulPreference_t, + attr: cublasLtMatmulPreferenceAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulPreferenceGetAttribute + .as_ref() + .expect("Expected function, got error."))( + pref, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtMatmulAlgoGetHeuristic( + &self, + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + preference: cublasLtMatmulPreference_t, + requestedAlgoCount: ::core::ffi::c_int, + heuristicResultsArray: *mut cublasLtMatmulHeuristicResult_t, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoGetHeuristic + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Ddesc, + preference, + requestedAlgoCount, + heuristicResultsArray, + returnAlgoCount, + ) + } + pub unsafe fn cublasLtMatmulAlgoGetIds( + &self, + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + requestedAlgoCount: ::core::ffi::c_int, + algoIdsArray: *mut ::core::ffi::c_int, + returnAlgoCount: *mut ::core::ffi::c_int, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoGetIds + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeType, + scaleType, + Atype, + Btype, + Ctype, + Dtype, + requestedAlgoCount, + algoIdsArray, + returnAlgoCount, + ) + } + pub unsafe fn cublasLtMatmulAlgoInit( + &self, + lightHandle: cublasLtHandle_t, + computeType: cublasComputeType_t, + scaleType: cudaDataType_t, + Atype: cudaDataType_t, + Btype: cudaDataType_t, + Ctype: cudaDataType_t, + Dtype: cudaDataType_t, + algoId: ::core::ffi::c_int, + algo: *mut cublasLtMatmulAlgo_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoInit + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + computeType, + scaleType, + Atype, + Btype, + Ctype, + Dtype, + algoId, + algo, + ) + } + pub unsafe fn cublasLtMatmulAlgoCheck( + &self, + lightHandle: cublasLtHandle_t, + operationDesc: cublasLtMatmulDesc_t, + Adesc: cublasLtMatrixLayout_t, + Bdesc: cublasLtMatrixLayout_t, + Cdesc: cublasLtMatrixLayout_t, + Ddesc: cublasLtMatrixLayout_t, + algo: *const cublasLtMatmulAlgo_t, + result: *mut cublasLtMatmulHeuristicResult_t, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoCheck + .as_ref() + .expect("Expected function, got error."))( + lightHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Ddesc, + algo, + result, + ) + } + pub unsafe fn cublasLtMatmulAlgoCapGetAttribute( + &self, + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoCapAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoCapGetAttribute + .as_ref() + .expect("Expected function, got error."))( + algo, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtMatmulAlgoConfigSetAttribute( + &self, + algo: *mut cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *const ::core::ffi::c_void, + sizeInBytes: usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoConfigSetAttribute + .as_ref() + .expect("Expected function, got error."))(algo, attr, buf, sizeInBytes) + } + pub unsafe fn cublasLtMatmulAlgoConfigGetAttribute( + &self, + algo: *const cublasLtMatmulAlgo_t, + attr: cublasLtMatmulAlgoConfigAttributes_t, + buf: *mut ::core::ffi::c_void, + sizeInBytes: usize, + sizeWritten: *mut usize, + ) -> cublasStatus_t { + (self + .cublasLtMatmulAlgoConfigGetAttribute + .as_ref() + .expect("Expected function, got error."))( + algo, attr, buf, sizeInBytes, sizeWritten + ) + } + pub unsafe fn cublasLtLoggerSetCallback( + &self, + callback: cublasLtLoggerCallback_t, + ) -> cublasStatus_t { + (self + .cublasLtLoggerSetCallback + .as_ref() + .expect("Expected function, got error."))(callback) + } + pub unsafe fn cublasLtLoggerSetFile(&self, file: *mut FILE) -> cublasStatus_t { + (self + .cublasLtLoggerSetFile + .as_ref() + .expect("Expected function, got error."))(file) + } + pub unsafe fn cublasLtLoggerOpenFile( + &self, + logFile: *const ::core::ffi::c_char, + ) -> cublasStatus_t { + (self + .cublasLtLoggerOpenFile + .as_ref() + .expect("Expected function, got error."))(logFile) + } + pub unsafe fn cublasLtLoggerSetLevel(&self, level: ::core::ffi::c_int) -> cublasStatus_t { + (self + .cublasLtLoggerSetLevel + .as_ref() + .expect("Expected function, got error."))(level) + } + pub unsafe fn cublasLtLoggerSetMask(&self, mask: ::core::ffi::c_int) -> cublasStatus_t { + (self + .cublasLtLoggerSetMask + .as_ref() + .expect("Expected function, got error."))(mask) + } + pub unsafe fn cublasLtLoggerForceDisable(&self) -> cublasStatus_t { + (self + .cublasLtLoggerForceDisable + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/cudnn/sys/mod.rs b/src/cudnn/sys/mod.rs index 2b3137b6..5bd5fa94 100644 --- a/src/cudnn/sys/mod.rs +++ b/src/cudnn/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/cudnn/sys/sys_11050.rs b/src/cudnn/sys/sys_11050.rs new file mode 100644 index 00000000..88d240df --- /dev/null +++ b/src/cudnn/sys/sys_11050.rs @@ -0,0 +1,10888 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnContext { + _unused: [u8; 0], +} +pub type cudnnHandle_t = *mut cudnnContext; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnStatus_t { + CUDNN_STATUS_SUCCESS = 0, + CUDNN_STATUS_NOT_INITIALIZED = 1, + CUDNN_STATUS_ALLOC_FAILED = 2, + CUDNN_STATUS_BAD_PARAM = 3, + CUDNN_STATUS_INTERNAL_ERROR = 4, + CUDNN_STATUS_INVALID_VALUE = 5, + CUDNN_STATUS_ARCH_MISMATCH = 6, + CUDNN_STATUS_MAPPING_ERROR = 7, + CUDNN_STATUS_EXECUTION_FAILED = 8, + CUDNN_STATUS_NOT_SUPPORTED = 9, + CUDNN_STATUS_LICENSE_ERROR = 10, + CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING = 11, + CUDNN_STATUS_RUNTIME_IN_PROGRESS = 12, + CUDNN_STATUS_RUNTIME_FP_OVERFLOW = 13, + CUDNN_STATUS_VERSION_MISMATCH = 14, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRuntimeTag_t { + _unused: [u8; 0], +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnErrQueryMode_t { + CUDNN_ERRQUERY_RAWCODE = 0, + CUDNN_ERRQUERY_NONBLOCKING = 1, + CUDNN_ERRQUERY_BLOCKING = 2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnTensorStruct { + _unused: [u8; 0], +} +pub type cudnnTensorDescriptor_t = *mut cudnnTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnPoolingStruct { + _unused: [u8; 0], +} +pub type cudnnPoolingDescriptor_t = *mut cudnnPoolingStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFilterStruct { + _unused: [u8; 0], +} +pub type cudnnFilterDescriptor_t = *mut cudnnFilterStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnLRNStruct { + _unused: [u8; 0], +} +pub type cudnnLRNDescriptor_t = *mut cudnnLRNStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnActivationStruct { + _unused: [u8; 0], +} +pub type cudnnActivationDescriptor_t = *mut cudnnActivationStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnSpatialTransformerStruct { + _unused: [u8; 0], +} +pub type cudnnSpatialTransformerDescriptor_t = *mut cudnnSpatialTransformerStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnOpTensorStruct { + _unused: [u8; 0], +} +pub type cudnnOpTensorDescriptor_t = *mut cudnnOpTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnReduceTensorStruct { + _unused: [u8; 0], +} +pub type cudnnReduceTensorDescriptor_t = *mut cudnnReduceTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnCTCLossStruct { + _unused: [u8; 0], +} +pub type cudnnCTCLossDescriptor_t = *mut cudnnCTCLossStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnTensorTransformStruct { + _unused: [u8; 0], +} +pub type cudnnTensorTransformDescriptor_t = *mut cudnnTensorTransformStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDataType_t { + CUDNN_DATA_FLOAT = 0, + CUDNN_DATA_DOUBLE = 1, + CUDNN_DATA_HALF = 2, + CUDNN_DATA_INT8 = 3, + CUDNN_DATA_INT32 = 4, + CUDNN_DATA_INT8x4 = 5, + CUDNN_DATA_UINT8 = 6, + CUDNN_DATA_UINT8x4 = 7, + CUDNN_DATA_INT8x32 = 8, + CUDNN_DATA_BFLOAT16 = 9, + CUDNN_DATA_INT64 = 10, + CUDNN_DATA_BOOLEAN = 11, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnMathType_t { + CUDNN_DEFAULT_MATH = 0, + CUDNN_TENSOR_OP_MATH = 1, + CUDNN_TENSOR_OP_MATH_ALLOW_CONVERSION = 2, + CUDNN_FMA_MATH = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNanPropagation_t { + CUDNN_NOT_PROPAGATE_NAN = 0, + CUDNN_PROPAGATE_NAN = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDeterminism_t { + CUDNN_NON_DETERMINISTIC = 0, + CUDNN_DETERMINISTIC = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnTensorFormat_t { + CUDNN_TENSOR_NCHW = 0, + CUDNN_TENSOR_NHWC = 1, + CUDNN_TENSOR_NCHW_VECT_C = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFoldingDirection_t { + CUDNN_TRANSFORM_FOLD = 0, + CUDNN_TRANSFORM_UNFOLD = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnOpTensorOp_t { + CUDNN_OP_TENSOR_ADD = 0, + CUDNN_OP_TENSOR_MUL = 1, + CUDNN_OP_TENSOR_MIN = 2, + CUDNN_OP_TENSOR_MAX = 3, + CUDNN_OP_TENSOR_SQRT = 4, + CUDNN_OP_TENSOR_NOT = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReduceTensorOp_t { + CUDNN_REDUCE_TENSOR_ADD = 0, + CUDNN_REDUCE_TENSOR_MUL = 1, + CUDNN_REDUCE_TENSOR_MIN = 2, + CUDNN_REDUCE_TENSOR_MAX = 3, + CUDNN_REDUCE_TENSOR_AMAX = 4, + CUDNN_REDUCE_TENSOR_AVG = 5, + CUDNN_REDUCE_TENSOR_NORM1 = 6, + CUDNN_REDUCE_TENSOR_NORM2 = 7, + CUDNN_REDUCE_TENSOR_MUL_NO_ZEROS = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReduceTensorIndices_t { + CUDNN_REDUCE_TENSOR_NO_INDICES = 0, + CUDNN_REDUCE_TENSOR_FLATTENED_INDICES = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnIndicesType_t { + CUDNN_32BIT_INDICES = 0, + CUDNN_64BIT_INDICES = 1, + CUDNN_16BIT_INDICES = 2, + CUDNN_8BIT_INDICES = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSoftmaxAlgorithm_t { + CUDNN_SOFTMAX_FAST = 0, + CUDNN_SOFTMAX_ACCURATE = 1, + CUDNN_SOFTMAX_LOG = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSoftmaxMode_t { + CUDNN_SOFTMAX_MODE_INSTANCE = 0, + CUDNN_SOFTMAX_MODE_CHANNEL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPoolingMode_t { + CUDNN_POOLING_MAX = 0, + CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING = 1, + CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING = 2, + CUDNN_POOLING_MAX_DETERMINISTIC = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnActivationMode_t { + CUDNN_ACTIVATION_SIGMOID = 0, + CUDNN_ACTIVATION_RELU = 1, + CUDNN_ACTIVATION_TANH = 2, + CUDNN_ACTIVATION_CLIPPED_RELU = 3, + CUDNN_ACTIVATION_ELU = 4, + CUDNN_ACTIVATION_IDENTITY = 5, + CUDNN_ACTIVATION_SWISH = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnLRNMode_t { + CUDNN_LRN_CROSS_CHANNEL_DIM1 = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDivNormMode_t { + CUDNN_DIVNORM_PRECOMPUTED_MEANS = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBatchNormMode_t { + CUDNN_BATCHNORM_PER_ACTIVATION = 0, + CUDNN_BATCHNORM_SPATIAL = 1, + CUDNN_BATCHNORM_SPATIAL_PERSISTENT = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBatchNormOps_t { + CUDNN_BATCHNORM_OPS_BN = 0, + CUDNN_BATCHNORM_OPS_BN_ACTIVATION = 1, + CUDNN_BATCHNORM_OPS_BN_ADD_ACTIVATION = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormMode_t { + CUDNN_NORM_PER_ACTIVATION = 0, + CUDNN_NORM_PER_CHANNEL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormAlgo_t { + CUDNN_NORM_ALGO_STANDARD = 0, + CUDNN_NORM_ALGO_PERSIST = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormOps_t { + CUDNN_NORM_OPS_NORM = 0, + CUDNN_NORM_OPS_NORM_ACTIVATION = 1, + CUDNN_NORM_OPS_NORM_ADD_ACTIVATION = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSamplerType_t { + CUDNN_SAMPLER_BILINEAR = 0, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnDropoutStruct { + _unused: [u8; 0], +} +pub type cudnnDropoutDescriptor_t = *mut cudnnDropoutStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAlgorithmStruct { + _unused: [u8; 0], +} +pub type cudnnAlgorithmDescriptor_t = *mut cudnnAlgorithmStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAlgorithmPerformanceStruct { + _unused: [u8; 0], +} +pub type cudnnAlgorithmPerformance_t = *mut cudnnAlgorithmPerformanceStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionFwdAlgo_t { + CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM = 0, + CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM = 1, + CUDNN_CONVOLUTION_FWD_ALGO_GEMM = 2, + CUDNN_CONVOLUTION_FWD_ALGO_DIRECT = 3, + CUDNN_CONVOLUTION_FWD_ALGO_FFT = 4, + CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING = 5, + CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD = 6, + CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED = 7, + CUDNN_CONVOLUTION_FWD_ALGO_COUNT = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionBwdFilterAlgo_t { + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0 = 0, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1 = 1, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT = 2, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3 = 3, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD = 4, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED = 5, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING = 6, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionBwdDataAlgo_t { + CUDNN_CONVOLUTION_BWD_DATA_ALGO_0 = 0, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_1 = 1, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT = 2, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT_TILING = 3, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD = 4, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD_NONFUSED = 5, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_COUNT = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNAlgo_t { + CUDNN_RNN_ALGO_STANDARD = 0, + CUDNN_RNN_ALGO_PERSIST_STATIC = 1, + CUDNN_RNN_ALGO_PERSIST_DYNAMIC = 2, + CUDNN_RNN_ALGO_PERSIST_STATIC_SMALL_H = 3, + CUDNN_RNN_ALGO_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnCTCLossAlgo_t { + CUDNN_CTC_LOSS_ALGO_DETERMINISTIC = 0, + CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC = 1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cudnnAlgorithmUnionStruct { + pub algo: cudnnAlgorithmUnionStruct_Algorithm, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cudnnAlgorithmUnionStruct_Algorithm { + pub convFwdAlgo: cudnnConvolutionFwdAlgo_t, + pub convBwdFilterAlgo: cudnnConvolutionBwdFilterAlgo_t, + pub convBwdDataAlgo: cudnnConvolutionBwdDataAlgo_t, + pub RNNAlgo: cudnnRNNAlgo_t, + pub CTCLossAlgo: cudnnCTCLossAlgo_t, +} +#[test] +fn bindgen_test_layout_cudnnAlgorithmUnionStruct_Algorithm() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(cudnnAlgorithmUnionStruct_Algorithm)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convFwdAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convFwdAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convBwdFilterAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convBwdFilterAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convBwdDataAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convBwdDataAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).RNNAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(RNNAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).CTCLossAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(CTCLossAlgo) + ) + ); +} +impl Default for cudnnAlgorithmUnionStruct_Algorithm { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_cudnnAlgorithmUnionStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(cudnnAlgorithmUnionStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(cudnnAlgorithmUnionStruct)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct), + "::", + stringify!(algo) + ) + ); +} +impl Default for cudnnAlgorithmUnionStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnAlgorithm_t = cudnnAlgorithmUnionStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSeverity_t { + CUDNN_SEV_FATAL = 0, + CUDNN_SEV_ERROR = 1, + CUDNN_SEV_WARNING = 2, + CUDNN_SEV_INFO = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cudnnDebugStruct { + pub cudnn_version: ::core::ffi::c_uint, + pub cudnnStatus: cudnnStatus_t, + pub time_sec: ::core::ffi::c_uint, + pub time_usec: ::core::ffi::c_uint, + pub time_delta: ::core::ffi::c_uint, + pub handle: cudnnHandle_t, + pub stream: cudaStream_t, + pub pid: ::core::ffi::c_ulonglong, + pub tid: ::core::ffi::c_ulonglong, + pub cudaDeviceId: ::core::ffi::c_int, + pub reserved: [::core::ffi::c_int; 15usize], +} +#[test] +fn bindgen_test_layout_cudnnDebugStruct() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!("Size of: ", stringify!(cudnnDebugStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cudnnDebugStruct)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudnn_version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudnn_version) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudnnStatus) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudnnStatus) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_sec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_sec) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_usec) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_usec) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_delta) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_delta) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).stream) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(stream) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pid) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(pid) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).tid) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(tid) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudaDeviceId) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudaDeviceId) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnDebugStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnDebug_t = cudnnDebugStruct; +pub type cudnnCallback_t = ::core::option::Option< + unsafe extern "C" fn( + sev: cudnnSeverity_t, + udata: *mut ::core::ffi::c_void, + dbg: *const cudnnDebug_t, + msg: *const ::core::ffi::c_char, + ), +>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnForwardMode_t { + CUDNN_FWD_MODE_INFERENCE = 0, + CUDNN_FWD_MODE_TRAINING = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNMode_t { + CUDNN_RNN_RELU = 0, + CUDNN_RNN_TANH = 1, + CUDNN_LSTM = 2, + CUDNN_GRU = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNBiasMode_t { + CUDNN_RNN_NO_BIAS = 0, + CUDNN_RNN_SINGLE_INP_BIAS = 1, + CUDNN_RNN_DOUBLE_BIAS = 2, + CUDNN_RNN_SINGLE_REC_BIAS = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDirectionMode_t { + CUDNN_UNIDIRECTIONAL = 0, + CUDNN_BIDIRECTIONAL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNInputMode_t { + CUDNN_LINEAR_INPUT = 0, + CUDNN_SKIP_INPUT = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNClipMode_t { + CUDNN_RNN_CLIP_NONE = 0, + CUDNN_RNN_CLIP_MINMAX = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNDataLayout_t { + CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED = 0, + CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED = 1, + CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED = 2, +} +pub type cudnnRNNPaddingMode_t = ::core::ffi::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRNNStruct { + _unused: [u8; 0], +} +pub type cudnnRNNDescriptor_t = *mut cudnnRNNStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnPersistentRNNPlan { + _unused: [u8; 0], +} +pub type cudnnPersistentRNNPlan_t = *mut cudnnPersistentRNNPlan; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRNNDataStruct { + _unused: [u8; 0], +} +pub type cudnnRNNDataDescriptor_t = *mut cudnnRNNDataStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSeqDataAxis_t { + CUDNN_SEQDATA_TIME_DIM = 0, + CUDNN_SEQDATA_BATCH_DIM = 1, + CUDNN_SEQDATA_BEAM_DIM = 2, + CUDNN_SEQDATA_VECT_DIM = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnSeqDataStruct { + _unused: [u8; 0], +} +pub type cudnnSeqDataDescriptor_t = *mut cudnnSeqDataStruct; +pub type cudnnAttnQueryMap_t = ::core::ffi::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAttnStruct { + _unused: [u8; 0], +} +pub type cudnnAttnDescriptor_t = *mut cudnnAttnStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnMultiHeadAttnWeightKind_t { + CUDNN_MH_ATTN_Q_WEIGHTS = 0, + CUDNN_MH_ATTN_K_WEIGHTS = 1, + CUDNN_MH_ATTN_V_WEIGHTS = 2, + CUDNN_MH_ATTN_O_WEIGHTS = 3, + CUDNN_MH_ATTN_Q_BIASES = 4, + CUDNN_MH_ATTN_K_BIASES = 5, + CUDNN_MH_ATTN_V_BIASES = 6, + CUDNN_MH_ATTN_O_BIASES = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnWgradMode_t { + CUDNN_WGRAD_MODE_ADD = 0, + CUDNN_WGRAD_MODE_SET = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnLossNormalizationMode_t { + CUDNN_LOSS_NORMALIZATION_NONE = 0, + CUDNN_LOSS_NORMALIZATION_SOFTMAX = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnConvolutionStruct { + _unused: [u8; 0], +} +pub type cudnnConvolutionDescriptor_t = *mut cudnnConvolutionStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionMode_t { + CUDNN_CONVOLUTION = 0, + CUDNN_CROSS_CORRELATION = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReorderType_t { + CUDNN_DEFAULT_REORDER = 0, + CUDNN_NO_REORDER = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionFwdAlgoPerfStruct { + pub algo: cudnnConvolutionFwdAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionFwdAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(cudnnConvolutionFwdAlgoPerfStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionFwdAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionFwdAlgoPerf_t = cudnnConvolutionFwdAlgoPerfStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionBwdDataAlgoPerfStruct { + pub algo: cudnnConvolutionBwdDataAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionBwdDataAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!( + "Size of: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionBwdDataAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionBwdDataAlgoPerf_t = cudnnConvolutionBwdDataAlgoPerfStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsConstParamStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsConstParamPack_t = *mut cudnnFusedOpsConstParamStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsVariantParamStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsVariantParamPack_t = *mut cudnnFusedOpsVariantParamStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsPlanStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsPlan_t = *mut cudnnFusedOpsPlanStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOps_t { + CUDNN_FUSED_SCALE_BIAS_ACTIVATION_CONV_BNSTATS = 0, + CUDNN_FUSED_SCALE_BIAS_ACTIVATION_WGRAD = 1, + CUDNN_FUSED_BN_FINALIZE_STATISTICS_TRAINING = 2, + CUDNN_FUSED_BN_FINALIZE_STATISTICS_INFERENCE = 3, + CUDNN_FUSED_CONV_SCALE_BIAS_ADD_ACTIVATION = 4, + CUDNN_FUSED_SCALE_BIAS_ADD_ACTIVATION_GEN_BITMASK = 5, + CUDNN_FUSED_DACTIVATION_FORK_DBATCHNORM = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsConstParamLabel_t { + CUDNN_PARAM_XDESC = 0, + CUDNN_PARAM_XDATA_PLACEHOLDER = 1, + CUDNN_PARAM_BN_MODE = 2, + CUDNN_PARAM_BN_EQSCALEBIAS_DESC = 3, + CUDNN_PARAM_BN_EQSCALE_PLACEHOLDER = 4, + CUDNN_PARAM_BN_EQBIAS_PLACEHOLDER = 5, + CUDNN_PARAM_ACTIVATION_DESC = 6, + CUDNN_PARAM_CONV_DESC = 7, + CUDNN_PARAM_WDESC = 8, + CUDNN_PARAM_WDATA_PLACEHOLDER = 9, + CUDNN_PARAM_DWDESC = 10, + CUDNN_PARAM_DWDATA_PLACEHOLDER = 11, + CUDNN_PARAM_YDESC = 12, + CUDNN_PARAM_YDATA_PLACEHOLDER = 13, + CUDNN_PARAM_DYDESC = 14, + CUDNN_PARAM_DYDATA_PLACEHOLDER = 15, + CUDNN_PARAM_YSTATS_DESC = 16, + CUDNN_PARAM_YSUM_PLACEHOLDER = 17, + CUDNN_PARAM_YSQSUM_PLACEHOLDER = 18, + CUDNN_PARAM_BN_SCALEBIAS_MEANVAR_DESC = 19, + CUDNN_PARAM_BN_SCALE_PLACEHOLDER = 20, + CUDNN_PARAM_BN_BIAS_PLACEHOLDER = 21, + CUDNN_PARAM_BN_SAVED_MEAN_PLACEHOLDER = 22, + CUDNN_PARAM_BN_SAVED_INVSTD_PLACEHOLDER = 23, + CUDNN_PARAM_BN_RUNNING_MEAN_PLACEHOLDER = 24, + CUDNN_PARAM_BN_RUNNING_VAR_PLACEHOLDER = 25, + CUDNN_PARAM_ZDESC = 26, + CUDNN_PARAM_ZDATA_PLACEHOLDER = 27, + CUDNN_PARAM_BN_Z_EQSCALEBIAS_DESC = 28, + CUDNN_PARAM_BN_Z_EQSCALE_PLACEHOLDER = 29, + CUDNN_PARAM_BN_Z_EQBIAS_PLACEHOLDER = 30, + CUDNN_PARAM_ACTIVATION_BITMASK_DESC = 31, + CUDNN_PARAM_ACTIVATION_BITMASK_PLACEHOLDER = 32, + CUDNN_PARAM_DXDESC = 33, + CUDNN_PARAM_DXDATA_PLACEHOLDER = 34, + CUDNN_PARAM_DZDESC = 35, + CUDNN_PARAM_DZDATA_PLACEHOLDER = 36, + CUDNN_PARAM_BN_DSCALE_PLACEHOLDER = 37, + CUDNN_PARAM_BN_DBIAS_PLACEHOLDER = 38, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsPointerPlaceHolder_t { + CUDNN_PTR_NULL = 0, + CUDNN_PTR_ELEM_ALIGNED = 1, + CUDNN_PTR_16B_ALIGNED = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsVariantParamLabel_t { + CUDNN_PTR_XDATA = 0, + CUDNN_PTR_BN_EQSCALE = 1, + CUDNN_PTR_BN_EQBIAS = 2, + CUDNN_PTR_WDATA = 3, + CUDNN_PTR_DWDATA = 4, + CUDNN_PTR_YDATA = 5, + CUDNN_PTR_DYDATA = 6, + CUDNN_PTR_YSUM = 7, + CUDNN_PTR_YSQSUM = 8, + CUDNN_PTR_WORKSPACE = 9, + CUDNN_PTR_BN_SCALE = 10, + CUDNN_PTR_BN_BIAS = 11, + CUDNN_PTR_BN_SAVED_MEAN = 12, + CUDNN_PTR_BN_SAVED_INVSTD = 13, + CUDNN_PTR_BN_RUNNING_MEAN = 14, + CUDNN_PTR_BN_RUNNING_VAR = 15, + CUDNN_PTR_ZDATA = 16, + CUDNN_PTR_BN_Z_EQSCALE = 17, + CUDNN_PTR_BN_Z_EQBIAS = 18, + CUDNN_PTR_ACTIVATION_BITMASK = 19, + CUDNN_PTR_DXDATA = 20, + CUDNN_PTR_DZDATA = 21, + CUDNN_PTR_BN_DSCALE = 22, + CUDNN_PTR_BN_DBIAS = 23, + CUDNN_SCALAR_SIZE_T_WORKSPACE_SIZE_IN_BYTES = 100, + CUDNN_SCALAR_INT64_T_BN_ACCUMULATION_COUNT = 101, + CUDNN_SCALAR_DOUBLE_BN_EXP_AVG_FACTOR = 102, + CUDNN_SCALAR_DOUBLE_BN_EPSILON = 103, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionBwdFilterAlgoPerfStruct { + pub algo: cudnnConvolutionBwdFilterAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionBwdFilterAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!( + "Size of: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionBwdFilterAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionBwdFilterAlgoPerf_t = cudnnConvolutionBwdFilterAlgoPerfStruct; +pub type cudnnBackendDescriptor_t = *mut ::core::ffi::c_void; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPointwiseMode_t { + CUDNN_POINTWISE_ADD = 0, + CUDNN_POINTWISE_ADD_SQUARE = 5, + CUDNN_POINTWISE_DIV = 6, + CUDNN_POINTWISE_MAX = 3, + CUDNN_POINTWISE_MIN = 2, + CUDNN_POINTWISE_MOD = 7, + CUDNN_POINTWISE_MUL = 1, + CUDNN_POINTWISE_POW = 8, + CUDNN_POINTWISE_SUB = 9, + CUDNN_POINTWISE_ABS = 10, + CUDNN_POINTWISE_CEIL = 11, + CUDNN_POINTWISE_COS = 12, + CUDNN_POINTWISE_EXP = 13, + CUDNN_POINTWISE_FLOOR = 14, + CUDNN_POINTWISE_LOG = 15, + CUDNN_POINTWISE_NEG = 16, + CUDNN_POINTWISE_RSQRT = 17, + CUDNN_POINTWISE_SIN = 18, + CUDNN_POINTWISE_SQRT = 4, + CUDNN_POINTWISE_TAN = 19, + CUDNN_POINTWISE_RELU_FWD = 100, + CUDNN_POINTWISE_TANH_FWD = 101, + CUDNN_POINTWISE_SIGMOID_FWD = 102, + CUDNN_POINTWISE_ELU_FWD = 103, + CUDNN_POINTWISE_GELU_FWD = 104, + CUDNN_POINTWISE_SOFTPLUS_FWD = 105, + CUDNN_POINTWISE_SWISH_FWD = 106, + CUDNN_POINTWISE_RELU_BWD = 200, + CUDNN_POINTWISE_TANH_BWD = 201, + CUDNN_POINTWISE_SIGMOID_BWD = 202, + CUDNN_POINTWISE_ELU_BWD = 203, + CUDNN_POINTWISE_GELU_BWD = 204, + CUDNN_POINTWISE_SOFTPLUS_BWD = 205, + CUDNN_POINTWISE_SWISH_BWD = 206, + CUDNN_POINTWISE_CMP_EQ = 300, + CUDNN_POINTWISE_CMP_NEQ = 301, + CUDNN_POINTWISE_CMP_GT = 302, + CUDNN_POINTWISE_CMP_GE = 303, + CUDNN_POINTWISE_CMP_LT = 304, + CUDNN_POINTWISE_CMP_LE = 305, + CUDNN_POINTWISE_LOGICAL_AND = 400, + CUDNN_POINTWISE_LOGICAL_OR = 401, + CUDNN_POINTWISE_LOGICAL_NOT = 402, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnResampleMode_t { + CUDNN_RESAMPLE_NEAREST = 0, + CUDNN_RESAMPLE_BILINEAR = 1, + CUDNN_RESAMPLE_AVGPOOL = 2, + CUDNN_RESAMPLE_MAXPOOL = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnGenStatsMode_t { + CUDNN_GENSTATS_SUM_SQSUM = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBnFinalizeStatsMode_t { + CUDNN_BN_FINALIZE_STATISTICS_TRAINING = 0, + CUDNN_BN_FINALIZE_STATISTICS_INFERENCE = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendAttributeName_t { + CUDNN_ATTR_POINTWISE_MODE = 0, + CUDNN_ATTR_POINTWISE_MATH_PREC = 1, + CUDNN_ATTR_POINTWISE_NAN_PROPAGATION = 2, + CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP = 3, + CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP = 4, + CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE = 5, + CUDNN_ATTR_POINTWISE_ELU_ALPHA = 6, + CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA = 7, + CUDNN_ATTR_POINTWISE_SWISH_BETA = 8, + CUDNN_ATTR_CONVOLUTION_COMP_TYPE = 100, + CUDNN_ATTR_CONVOLUTION_CONV_MODE = 101, + CUDNN_ATTR_CONVOLUTION_DILATIONS = 102, + CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES = 103, + CUDNN_ATTR_CONVOLUTION_POST_PADDINGS = 104, + CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS = 105, + CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS = 106, + CUDNN_ATTR_ENGINEHEUR_MODE = 200, + CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH = 201, + CUDNN_ATTR_ENGINEHEUR_RESULTS = 202, + CUDNN_ATTR_ENGINECFG_ENGINE = 300, + CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO = 301, + CUDNN_ATTR_ENGINECFG_KNOB_CHOICES = 302, + CUDNN_ATTR_EXECUTION_PLAN_HANDLE = 400, + CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG = 401, + CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE = 402, + CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS = 403, + CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS = 404, + CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID = 500, + CUDNN_ATTR_INTERMEDIATE_INFO_SIZE = 501, + CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS = 502, + CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES = 503, + CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE = 600, + CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE = 601, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA = 700, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA = 701, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC = 702, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W = 703, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X = 704, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y = 705, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA = 706, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA = 707, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC = 708, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W = 709, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX = 710, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY = 711, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA = 712, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA = 713, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC = 714, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW = 715, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X = 716, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY = 717, + CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR = 750, + CUDNN_ATTR_OPERATION_POINTWISE_XDESC = 751, + CUDNN_ATTR_OPERATION_POINTWISE_BDESC = 752, + CUDNN_ATTR_OPERATION_POINTWISE_YDESC = 753, + CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1 = 754, + CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2 = 755, + CUDNN_ATTR_OPERATION_POINTWISE_DXDESC = 756, + CUDNN_ATTR_OPERATION_POINTWISE_DYDESC = 757, + CUDNN_ATTR_OPERATION_POINTWISE_TDESC = 758, + CUDNN_ATTR_OPERATION_GENSTATS_MODE = 770, + CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC = 771, + CUDNN_ATTR_OPERATION_GENSTATS_XDESC = 772, + CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC = 773, + CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC = 774, + CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE = 780, + CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC = 781, + CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC = 782, + CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC = 783, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC = 784, + CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC = 785, + CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC = 786, + CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC = 787, + CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC = 788, + CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC = 789, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC = 790, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC = 791, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC = 792, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC = 793, + CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC = 794, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC = 795, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC = 796, + CUDNN_ATTR_OPERATIONGRAPH_HANDLE = 800, + CUDNN_ATTR_OPERATIONGRAPH_OPS = 801, + CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT = 802, + CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT = 900, + CUDNN_ATTR_TENSOR_DATA_TYPE = 901, + CUDNN_ATTR_TENSOR_DIMENSIONS = 902, + CUDNN_ATTR_TENSOR_STRIDES = 903, + CUDNN_ATTR_TENSOR_VECTOR_COUNT = 904, + CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION = 905, + CUDNN_ATTR_TENSOR_UNIQUE_ID = 906, + CUDNN_ATTR_TENSOR_IS_VIRTUAL = 907, + CUDNN_ATTR_TENSOR_IS_BY_VALUE = 908, + CUDNN_ATTR_TENSOR_REORDERING_MODE = 909, + CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS = 1000, + CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS = 1001, + CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES = 1002, + CUDNN_ATTR_VARIANT_PACK_WORKSPACE = 1003, + CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID = 1100, + CUDNN_ATTR_LAYOUT_INFO_TYPES = 1101, + CUDNN_ATTR_KNOB_INFO_TYPE = 1200, + CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE = 1201, + CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE = 1202, + CUDNN_ATTR_KNOB_INFO_STRIDE = 1203, + CUDNN_ATTR_ENGINE_OPERATION_GRAPH = 1300, + CUDNN_ATTR_ENGINE_GLOBAL_INDEX = 1301, + CUDNN_ATTR_ENGINE_KNOB_INFO = 1302, + CUDNN_ATTR_ENGINE_NUMERICAL_NOTE = 1303, + CUDNN_ATTR_ENGINE_LAYOUT_INFO = 1304, + CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE = 1305, + CUDNN_ATTR_MATMUL_COMP_TYPE = 1500, + CUDNN_ATTR_OPERATION_MATMUL_ADESC = 1520, + CUDNN_ATTR_OPERATION_MATMUL_BDESC = 1521, + CUDNN_ATTR_OPERATION_MATMUL_CDESC = 1522, + CUDNN_ATTR_OPERATION_MATMUL_DESC = 1523, + CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT = 1524, + CUDNN_ATTR_REDUCTION_OPERATOR = 1600, + CUDNN_ATTR_REDUCTION_COMP_TYPE = 1601, + CUDNN_ATTR_OPERATION_REDUCTION_XDESC = 1610, + CUDNN_ATTR_OPERATION_REDUCTION_YDESC = 1611, + CUDNN_ATTR_OPERATION_REDUCTION_DESC = 1612, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC = 1620, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC = 1621, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC = 1622, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC = 1623, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC = 1624, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC = 1625, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC = 1626, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC = 1627, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC = 1628, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC = 1629, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS = 1630, + CUDNN_ATTR_RESAMPLE_MODE = 1700, + CUDNN_ATTR_RESAMPLE_COMP_TYPE = 1701, + CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS = 1702, + CUDNN_ATTR_RESAMPLE_POST_PADDINGS = 1703, + CUDNN_ATTR_RESAMPLE_PRE_PADDINGS = 1704, + CUDNN_ATTR_RESAMPLE_STRIDES = 1705, + CUDNN_ATTR_RESAMPLE_WINDOW_DIMS = 1706, + CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION = 1707, + CUDNN_ATTR_RESAMPLE_PADDING_MODE = 1708, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC = 1710, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC = 1711, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC = 1712, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA = 1713, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA = 1714, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC = 1716, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC = 1720, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC = 1721, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC = 1722, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA = 1723, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA = 1724, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC = 1725, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendAttributeType_t { + CUDNN_TYPE_HANDLE = 0, + CUDNN_TYPE_DATA_TYPE = 1, + CUDNN_TYPE_BOOLEAN = 2, + CUDNN_TYPE_INT64 = 3, + CUDNN_TYPE_FLOAT = 4, + CUDNN_TYPE_DOUBLE = 5, + CUDNN_TYPE_VOID_PTR = 6, + CUDNN_TYPE_CONVOLUTION_MODE = 7, + CUDNN_TYPE_HEUR_MODE = 8, + CUDNN_TYPE_KNOB_TYPE = 9, + CUDNN_TYPE_NAN_PROPOGATION = 10, + CUDNN_TYPE_NUMERICAL_NOTE = 11, + CUDNN_TYPE_LAYOUT_TYPE = 12, + CUDNN_TYPE_ATTRIB_NAME = 13, + CUDNN_TYPE_POINTWISE_MODE = 14, + CUDNN_TYPE_BACKEND_DESCRIPTOR = 15, + CUDNN_TYPE_GENSTATS_MODE = 16, + CUDNN_TYPE_BN_FINALIZE_STATS_MODE = 17, + CUDNN_TYPE_REDUCTION_OPERATOR_TYPE = 18, + CUDNN_TYPE_BEHAVIOR_NOTE = 19, + CUDNN_TYPE_TENSOR_REORDERING_MODE = 20, + CUDNN_TYPE_RESAMPLE_MODE = 21, + CUDNN_TYPE_PADDING_MODE = 22, + CUDNN_TYPE_INT32 = 23, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendDescriptorType_t { + CUDNN_BACKEND_POINTWISE_DESCRIPTOR = 0, + CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR = 1, + CUDNN_BACKEND_ENGINE_DESCRIPTOR = 2, + CUDNN_BACKEND_ENGINECFG_DESCRIPTOR = 3, + CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR = 4, + CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR = 5, + CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR = 6, + CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR = 7, + CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR = 8, + CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR = 9, + CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR = 10, + CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR = 11, + CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR = 12, + CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR = 13, + CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR = 14, + CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR = 15, + CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR = 16, + CUDNN_BACKEND_TENSOR_DESCRIPTOR = 17, + CUDNN_BACKEND_MATMUL_DESCRIPTOR = 18, + CUDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR = 19, + CUDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR = 20, + CUDNN_BACKEND_REDUCTION_DESCRIPTOR = 21, + CUDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR = 22, + CUDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR = 23, + CUDNN_BACKEND_RESAMPLE_DESCRIPTOR = 24, + CUDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR = 25, + CUDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR = 26, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendNumericalNote_t { + CUDNN_NUMERICAL_NOTE_TENSOR_CORE = 0, + CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS = 1, + CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION = 2, + CUDNN_NUMERICAL_NOTE_FFT = 3, + CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC = 4, + CUDNN_NUMERICAL_NOTE_WINOGRAD = 5, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4 = 6, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6 = 7, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13 = 8, + CUDNN_NUMERICAL_NOTE_TYPE_COUNT = 9, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendBehaviorNote_t { + CUDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION = 0, + CUDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER = 1, + CUDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER = 2, + CUDNN_BEHAVIOR_NOTE_TYPE_COUNT = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendKnobType_t { + CUDNN_KNOB_TYPE_SPLIT_K = 0, + CUDNN_KNOB_TYPE_SWIZZLE = 1, + CUDNN_KNOB_TYPE_TILE_SIZE = 2, + CUDNN_KNOB_TYPE_USE_TEX = 3, + CUDNN_KNOB_TYPE_EDGE = 4, + CUDNN_KNOB_TYPE_KBLOCK = 5, + CUDNN_KNOB_TYPE_LDGA = 6, + CUDNN_KNOB_TYPE_LDGB = 7, + CUDNN_KNOB_TYPE_CHUNK_K = 8, + CUDNN_KNOB_TYPE_SPLIT_H = 9, + CUDNN_KNOB_TYPE_WINO_TILE = 10, + CUDNN_KNOB_TYPE_MULTIPLY = 11, + CUDNN_KNOB_TYPE_SPLIT_K_BUF = 12, + CUDNN_KNOB_TYPE_TILEK = 13, + CUDNN_KNOB_TYPE_STAGES = 14, + CUDNN_KNOB_TYPE_REDUCTION_MODE = 15, + CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE = 16, + CUDNN_KNOB_TYPE_SPLIT_K_SLC = 17, + CUDNN_KNOB_TYPE_IDX_MODE = 18, + CUDNN_KNOB_TYPE_SLICED = 19, + CUDNN_KNOB_TYPE_SPLIT_RS = 20, + CUDNN_KNOB_TYPE_SINGLEBUFFER = 21, + CUDNN_KNOB_TYPE_LDGC = 22, + CUDNN_KNOB_TYPE_SPECFILT = 23, + CUDNN_KNOB_TYPE_KERNEL_CFG = 24, + CUDNN_KNOB_TYPE_COUNTS = 25, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendLayoutType_t { + CUDNN_LAYOUT_TYPE_PREFERRED_NCHW = 0, + CUDNN_LAYOUT_TYPE_PREFERRED_NHWC = 1, + CUDNN_LAYOUT_TYPE_PREFERRED_PAD4CK = 2, + CUDNN_LAYOUT_TYPE_PREFERRED_PAD8CK = 3, + CUDNN_LAYOUT_TYPE_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendHeurMode_t { + CUDNN_HEUR_MODE_INSTANT = 0, + CUDNN_HEUR_MODE_B = 1, + CUDNN_HEUR_MODE_FALLBACK = 2, + CUDNN_HEUR_MODE_A = 3, + CUDNN_HEUR_MODES_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendTensorReordering_t { + CUDNN_TENSOR_REORDERING_NONE = 0, + CUDNN_TENSOR_REORDERING_INT8x32 = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPaddingMode_t { + CUDNN_ZERO_PAD = 0, + CUDNN_NEG_INF_PAD = 1, + CUDNN_EDGE_VAL_PAD = 2, +} +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cudnnGetVersion: Result usize, ::libloading::Error>, + pub cudnnGetCudartVersion: Result usize, ::libloading::Error>, + pub cudnnGetErrorString: Result< + unsafe extern "C" fn(status: cudnnStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cudnnQueryRuntimeError: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rstatus: *mut cudnnStatus_t, + mode: cudnnErrQueryMode_t, + tag: *mut cudnnRuntimeTag_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreate: Result< + unsafe extern "C" fn(handle: *mut cudnnHandle_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroy: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnSetStream: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetStream: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, streamId: *mut cudaStream_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateTensorDescriptor: Result< + unsafe extern "C" fn(tensorDesc: *mut cudnnTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor4dDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor4dDescriptorEx: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + nStride: ::core::ffi::c_int, + cStride: ::core::ffi::c_int, + hStride: ::core::ffi::c_int, + wStride: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensor4dDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: *mut cudnnDataType_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + nStride: *mut ::core::ffi::c_int, + cStride: *mut ::core::ffi::c_int, + hStride: *mut ::core::ffi::c_int, + wStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorNdDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorNdDescriptorEx: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorNdDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorSizeInBytes: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyTensorDescriptor: Result< + unsafe extern "C" fn(tensorDesc: cudnnTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnInitTransformDest: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + srcDesc: cudnnTensorDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + destSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateTensorTransformDescriptor: Result< + unsafe extern "C" fn(transformDesc: *mut cudnnTensorTransformDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorTransformDescriptor: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + nbDims: u32, + destFormat: cudnnTensorFormat_t, + padBeforeA: *const i32, + padAfterA: *const i32, + foldA: *const u32, + direction: cudnnFoldingDirection_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorTransformDescriptor: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + nbDimsRequested: u32, + destFormat: *mut cudnnTensorFormat_t, + padBeforeA: *mut i32, + padAfterA: *mut i32, + foldA: *mut u32, + direction: *mut cudnnFoldingDirection_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyTensorTransformDescriptor: Result< + unsafe extern "C" fn(transformDesc: cudnnTensorTransformDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformTensorEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnTensorDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnTensorDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAddTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateOpTensorDescriptor: Result< + unsafe extern "C" fn(opTensorDesc: *mut cudnnOpTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetOpTensorDescriptor: Result< + unsafe extern "C" fn( + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: cudnnOpTensorOp_t, + opTensorCompType: cudnnDataType_t, + opTensorNanOpt: cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetOpTensorDescriptor: Result< + unsafe extern "C" fn( + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: *mut cudnnOpTensorOp_t, + opTensorCompType: *mut cudnnDataType_t, + opTensorNanOpt: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyOpTensorDescriptor: Result< + unsafe extern "C" fn(opTensorDesc: cudnnOpTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + opTensorDesc: cudnnOpTensorDescriptor_t, + alpha1: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + alpha2: *const ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + B: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateReduceTensorDescriptor: Result< + unsafe extern "C" fn(reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetReduceTensorDescriptor: Result< + unsafe extern "C" fn( + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: cudnnReduceTensorOp_t, + reduceTensorCompType: cudnnDataType_t, + reduceTensorNanOpt: cudnnNanPropagation_t, + reduceTensorIndices: cudnnReduceTensorIndices_t, + reduceTensorIndicesType: cudnnIndicesType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReduceTensorDescriptor: Result< + unsafe extern "C" fn( + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: *mut cudnnReduceTensorOp_t, + reduceTensorCompType: *mut cudnnDataType_t, + reduceTensorNanOpt: *mut cudnnNanPropagation_t, + reduceTensorIndices: *mut cudnnReduceTensorIndices_t, + reduceTensorIndicesType: *mut cudnnIndicesType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyReduceTensorDescriptor: Result< + unsafe extern "C" fn(reduceTensorDesc: cudnnReduceTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReductionIndicesSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReductionWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnReduceTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + indices: *mut ::core::ffi::c_void, + indicesSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + valuePtr: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnScaleTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + alpha: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFilterDescriptor: Result< + unsafe extern "C" fn(filterDesc: *mut cudnnFilterDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFilter4dDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + k: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilter4dDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + k: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFilterNdDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + nbDims: ::core::ffi::c_int, + filterDimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilterNdDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + nbDims: *mut ::core::ffi::c_int, + filterDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilterSizeInBytes: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformFilter: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnFilterDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnFilterDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFilterDescriptor: Result< + unsafe extern "C" fn(filterDesc: cudnnFilterDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSoftmaxForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreatePoolingDescriptor: Result< + unsafe extern "C" fn(poolingDesc: *mut cudnnPoolingDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPooling2dDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + windowHeight: ::core::ffi::c_int, + windowWidth: ::core::ffi::c_int, + verticalPadding: ::core::ffi::c_int, + horizontalPadding: ::core::ffi::c_int, + verticalStride: ::core::ffi::c_int, + horizontalStride: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPooling2dDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + windowHeight: *mut ::core::ffi::c_int, + windowWidth: *mut ::core::ffi::c_int, + verticalPadding: *mut ::core::ffi::c_int, + horizontalPadding: *mut ::core::ffi::c_int, + verticalStride: *mut ::core::ffi::c_int, + horizontalStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPoolingNdDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + nbDims: ::core::ffi::c_int, + windowDimA: *const ::core::ffi::c_int, + paddingA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPoolingNdDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + nbDims: *mut ::core::ffi::c_int, + windowDimA: *mut ::core::ffi::c_int, + paddingA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPoolingNdForwardOutputDim: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + nbDims: ::core::ffi::c_int, + outputTensorDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPooling2dForwardOutputDim: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyPoolingDescriptor: Result< + unsafe extern "C" fn(poolingDesc: cudnnPoolingDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnPoolingForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateActivationDescriptor: Result< + unsafe extern "C" fn(activationDesc: *mut cudnnActivationDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetActivationDescriptor: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + mode: cudnnActivationMode_t, + reluNanOpt: cudnnNanPropagation_t, + coef: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetActivationDescriptor: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + mode: *mut cudnnActivationMode_t, + reluNanOpt: *mut cudnnNanPropagation_t, + coef: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetActivationDescriptorSwishBeta: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + swish_beta: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetActivationDescriptorSwishBeta: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + swish_beta: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyActivationDescriptor: Result< + unsafe extern "C" fn(activationDesc: cudnnActivationDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnActivationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateLRNDescriptor: Result< + unsafe extern "C" fn(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetLRNDescriptor: Result< + unsafe extern "C" fn( + normDesc: cudnnLRNDescriptor_t, + lrnN: ::core::ffi::c_uint, + lrnAlpha: f64, + lrnBeta: f64, + lrnK: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetLRNDescriptor: Result< + unsafe extern "C" fn( + normDesc: cudnnLRNDescriptor_t, + lrnN: *mut ::core::ffi::c_uint, + lrnAlpha: *mut f64, + lrnBeta: *mut f64, + lrnK: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyLRNDescriptor: Result< + unsafe extern "C" fn(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnLRNCrossChannelForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDivisiveNormalizationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDeriveBNTensorDescriptor: Result< + unsafe extern "C" fn( + derivedBnDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnBatchNormMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + epsilon: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDeriveNormTensorDescriptor: Result< + unsafe extern "C" fn( + derivedNormScaleBiasDesc: cudnnTensorDescriptor_t, + derivedNormMeanVarDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnNormMode_t, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + normMeanVarDesc: cudnnTensorDescriptor_t, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + epsilon: f64, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateSpatialTransformerDescriptor: Result< + unsafe extern "C" fn(stDesc: *mut cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetSpatialTransformerNdDescriptor: Result< + unsafe extern "C" fn( + stDesc: cudnnSpatialTransformerDescriptor_t, + samplerType: cudnnSamplerType_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroySpatialTransformerDescriptor: Result< + unsafe extern "C" fn(stDesc: cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfGridGeneratorForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + theta: *const ::core::ffi::c_void, + grid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfSamplerForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateDropoutDescriptor: Result< + unsafe extern "C" fn(dropoutDesc: *mut cudnnDropoutDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyDropoutDescriptor: Result< + unsafe extern "C" fn(dropoutDesc: cudnnDropoutDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutGetStatesSize: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, sizeInBytes: *mut usize) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutGetReserveSpaceSize: Result< + unsafe extern "C" fn( + xdesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRestoreDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: *mut f32, + states: *mut *mut ::core::ffi::c_void, + seed: *mut ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + xdesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + ydesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAlgorithmDescriptor: Result< + unsafe extern "C" fn(algoDesc: *mut cudnnAlgorithmDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAlgorithmDescriptor: Result< + unsafe extern "C" fn( + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: cudnnAlgorithm_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmDescriptor: Result< + unsafe extern "C" fn( + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: *mut cudnnAlgorithm_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCopyAlgorithmDescriptor: Result< + unsafe extern "C" fn( + src: cudnnAlgorithmDescriptor_t, + dest: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAlgorithmDescriptor: Result< + unsafe extern "C" fn(algoDesc: cudnnAlgorithmDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToCreate: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: cudnnAlgorithmDescriptor_t, + status: cudnnStatus_t, + time: f32, + memory: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + status: *mut cudnnStatus_t, + time: *mut f32, + memory: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToDestroy: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSaveAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRestoreAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCallback: Result< + unsafe extern "C" fn( + mask: ::core::ffi::c_uint, + udata: *mut ::core::ffi::c_void, + fptr: cudnnCallback_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCallback: Result< + unsafe extern "C" fn( + mask: *mut ::core::ffi::c_uint, + udata: *mut *mut ::core::ffi::c_void, + fptr: *mut cudnnCallback_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpsInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnSoftmaxBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnPoolingBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnActivationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnLRNCrossChannelBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDivisiveNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dXdMeansDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dMeans: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationBackwardExWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationTrainingExReserveSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardTrainingEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + dBnScaleResult: *mut ::core::ffi::c_void, + dBnBiasResult: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationBackwardEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScaleData: *const ::core::ffi::c_void, + bnBiasData: *const ::core::ffi::c_void, + dBnScaleData: *mut ::core::ffi::c_void, + dBnBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationForwardTrainingWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + normScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationBackwardWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationTrainingReserveSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + normScaleData: *const ::core::ffi::c_void, + normBiasData: *const ::core::ffi::c_void, + dNormScaleData: *mut ::core::ffi::c_void, + dNormBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfGridGeneratorBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + dgrid: *const ::core::ffi::c_void, + dtheta: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfSamplerBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + alphaDgrid: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + betaDgrid: *const ::core::ffi::c_void, + dgrid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + dydesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxdesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpsTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnCreateRNNDescriptor: Result< + unsafe extern "C" fn(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyRNNDescriptor: Result< + unsafe extern "C" fn(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDescriptor_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + algo: cudnnRNNAlgo_t, + cellMode: cudnnRNNMode_t, + biasMode: cudnnRNNBiasMode_t, + dirMode: cudnnDirectionMode_t, + inputMode: cudnnRNNInputMode_t, + dataType: cudnnDataType_t, + mathPrec: cudnnDataType_t, + mathType: cudnnMathType_t, + inputSize: i32, + hiddenSize: i32, + projSize: i32, + numLayers: i32, + dropoutDesc: cudnnDropoutDescriptor_t, + auxFlags: u32, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDescriptor_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + algo: *mut cudnnRNNAlgo_t, + cellMode: *mut cudnnRNNMode_t, + biasMode: *mut cudnnRNNBiasMode_t, + dirMode: *mut cudnnDirectionMode_t, + inputMode: *mut cudnnRNNInputMode_t, + dataType: *mut cudnnDataType_t, + mathPrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + inputSize: *mut i32, + hiddenSize: *mut i32, + projSize: *mut i32, + numLayers: *mut i32, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + auxFlags: *mut u32, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDescriptor_v6: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: ::core::ffi::c_int, + numLayers: ::core::ffi::c_int, + dropoutDesc: cudnnDropoutDescriptor_t, + inputMode: cudnnRNNInputMode_t, + direction: cudnnDirectionMode_t, + cellMode: cudnnRNNMode_t, + algo: cudnnRNNAlgo_t, + mathPrec: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDescriptor_v6: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: *mut ::core::ffi::c_int, + numLayers: *mut ::core::ffi::c_int, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + inputMode: *mut cudnnRNNInputMode_t, + direction: *mut cudnnDirectionMode_t, + cellMode: *mut cudnnRNNMode_t, + algo: *mut cudnnRNNAlgo_t, + mathPrec: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNMatrixMathType: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + mType: cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNMatrixMathType: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + mType: *mut cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNBiasMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + biasMode: cudnnRNNBiasMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBiasMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + biasMode: *mut cudnnRNNBiasMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNSetClip_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNGetClip_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNSetClip: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNGetClip: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNProjectionLayers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: ::core::ffi::c_int, + outProjSize: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNProjectionLayers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: *mut ::core::ffi::c_int, + outProjSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreatePersistentRNNPlan: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + minibatch: ::core::ffi::c_int, + dataType: cudnnDataType_t, + plan: *mut cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyPersistentRNNPlan: Result< + unsafe extern "C" fn(plan: cudnnPersistentRNNPlan_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPersistentRNNPlan: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBuildRNNDynamic: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + miniBatch: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNTrainingReserveSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNTempSpaceSizes: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fMode: cudnnForwardMode_t, + xDesc: cudnnRNNDataDescriptor_t, + workSpaceSize: *mut usize, + reserveSpaceSize: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNParamsSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + dataType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWeightSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + weightSpaceSize: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNLinLayerMatrixParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerMatDesc: cudnnFilterDescriptor_t, + linLayerMat: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNLinLayerBiasParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerBiasDesc: cudnnFilterDescriptor_t, + linLayerBias: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWeightParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: i32, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + linLayerID: i32, + mDesc: cudnnTensorDescriptor_t, + mAddr: *mut *mut ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + bAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNPaddingMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: ::core::ffi::c_uint, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNPaddingMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: *mut ::core::ffi::c_uint, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateRNNDataDescriptor: Result< + unsafe extern "C" fn(rnnDataDesc: *mut cudnnRNNDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyRNNDataDescriptor: Result< + unsafe extern "C" fn(rnnDataDesc: cudnnRNNDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDataDescriptor: Result< + unsafe extern "C" fn( + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: cudnnDataType_t, + layout: cudnnRNNDataLayout_t, + maxSeqLength: ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + vectorSize: ::core::ffi::c_int, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDataDescriptor: Result< + unsafe extern "C" fn( + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: *mut cudnnDataType_t, + layout: *mut cudnnRNNDataLayout_t, + maxSeqLength: *mut ::core::ffi::c_int, + batchSize: *mut ::core::ffi::c_int, + vectorSize: *mut ::core::ffi::c_int, + arrayLengthRequested: ::core::ffi::c_int, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardInferenceEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fwdMode: cudnnForwardMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + hy: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + cy: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNAlgorithmDescriptor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNForwardInferenceAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNForwardInferenceAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateSeqDataDescriptor: Result< + unsafe extern "C" fn(seqDataDesc: *mut cudnnSeqDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroySeqDataDescriptor: Result< + unsafe extern "C" fn(seqDataDesc: cudnnSeqDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetSeqDataDescriptor: Result< + unsafe extern "C" fn( + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + axes: *const cudnnSeqDataAxis_t, + seqLengthArraySize: usize, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetSeqDataDescriptor: Result< + unsafe extern "C" fn( + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + nbDimsRequested: ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + axes: *mut cudnnSeqDataAxis_t, + seqLengthArraySize: *mut usize, + seqLengthSizeRequested: usize, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAttnDescriptor: Result< + unsafe extern "C" fn(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAttnDescriptor: Result< + unsafe extern "C" fn(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAttnDescriptor: Result< + unsafe extern "C" fn( + attnDesc: cudnnAttnDescriptor_t, + attnMode: ::core::ffi::c_uint, + nHeads: ::core::ffi::c_int, + smScaler: f64, + dataType: cudnnDataType_t, + computePrec: cudnnDataType_t, + mathType: cudnnMathType_t, + attnDropoutDesc: cudnnDropoutDescriptor_t, + postDropoutDesc: cudnnDropoutDescriptor_t, + qSize: ::core::ffi::c_int, + kSize: ::core::ffi::c_int, + vSize: ::core::ffi::c_int, + qProjSize: ::core::ffi::c_int, + kProjSize: ::core::ffi::c_int, + vProjSize: ::core::ffi::c_int, + oProjSize: ::core::ffi::c_int, + qoMaxSeqLength: ::core::ffi::c_int, + kvMaxSeqLength: ::core::ffi::c_int, + maxBatchSize: ::core::ffi::c_int, + maxBeamSize: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAttnDescriptor: Result< + unsafe extern "C" fn( + attnDesc: cudnnAttnDescriptor_t, + attnMode: *mut ::core::ffi::c_uint, + nHeads: *mut ::core::ffi::c_int, + smScaler: *mut f64, + dataType: *mut cudnnDataType_t, + computePrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + attnDropoutDesc: *mut cudnnDropoutDescriptor_t, + postDropoutDesc: *mut cudnnDropoutDescriptor_t, + qSize: *mut ::core::ffi::c_int, + kSize: *mut ::core::ffi::c_int, + vSize: *mut ::core::ffi::c_int, + qProjSize: *mut ::core::ffi::c_int, + kProjSize: *mut ::core::ffi::c_int, + vProjSize: *mut ::core::ffi::c_int, + oProjSize: *mut ::core::ffi::c_int, + qoMaxSeqLength: *mut ::core::ffi::c_int, + kvMaxSeqLength: *mut ::core::ffi::c_int, + maxBatchSize: *mut ::core::ffi::c_int, + maxBeamSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetMultiHeadAttnBuffers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + weightSizeInBytes: *mut usize, + workSpaceSizeInBytes: *mut usize, + reserveSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetMultiHeadAttnWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + wKind: cudnnMultiHeadAttnWeightKind_t, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + wDesc: cudnnTensorDescriptor_t, + wAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + currIdx: ::core::ffi::c_int, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsQO: *const ::core::ffi::c_int, + devSeqLengthsKV: *const ::core::ffi::c_int, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + residuals: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + oDesc: cudnnSeqDataDescriptor_t, + out: *mut ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAdvInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnRNNForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardData_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + devSeqLengths: *const i32, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + xDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + dhy: *const ::core::ffi::c_void, + dhx: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dcy: *const ::core::ffi::c_void, + dcx: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeights_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + addGrad: cudnnWgradMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + weightSpaceSize: usize, + dweightSpace: *mut ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardTrainingEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardDataEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnRNNDataDescriptor_t, + dy: *const ::core::ffi::c_void, + dcDesc: cudnnRNNDataDescriptor_t, + dcAttn: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + dkDesc: cudnnRNNDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeightsEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNForwardTrainingAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNForwardTrainingAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBackwardDataAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNBackwardDataAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBackwardWeightsAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNBackwardWeightsAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsDQDO: *const ::core::ffi::c_int, + devSeqLengthsDKDV: *const ::core::ffi::c_int, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + dqDesc: cudnnSeqDataDescriptor_t, + dqueries: *mut ::core::ffi::c_void, + queries: *const ::core::ffi::c_void, + dkDesc: cudnnSeqDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + keys: *const ::core::ffi::c_void, + dvDesc: cudnnSeqDataDescriptor_t, + dvalues: *mut ::core::ffi::c_void, + values: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnBackwardWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + addGrad: cudnnWgradMode_t, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + dweights: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateCTCLossDescriptor: Result< + unsafe extern "C" fn(ctcLossDesc: *mut cudnnCTCLossDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptor: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptorEx: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptor_v8: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + maxLabelLength: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptor: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptorEx: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptor_v8: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + maxLabelLength: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyCTCLossDescriptor: Result< + unsafe extern "C" fn(ctcLossDesc: cudnnCTCLossDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCTCLoss: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + hostLabels: *const ::core::ffi::c_int, + hostLabelLengths: *const ::core::ffi::c_int, + hostInputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCTCLoss_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossWorkspaceSize_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAdvTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnCreateConvolutionDescriptor: Result< + unsafe extern "C" fn(convDesc: *mut cudnnConvolutionDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyConvolutionDescriptor: Result< + unsafe extern "C" fn(convDesc: cudnnConvolutionDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionMathType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + mathType: cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionMathType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + mathType: *mut cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionGroupCount: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + groupCount: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionGroupCount: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + groupCount: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionReorderType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + reorderType: cudnnReorderType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionReorderType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + reorderType: *mut cudnnReorderType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolution2dDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + pad_h: ::core::ffi::c_int, + pad_w: ::core::ffi::c_int, + u: ::core::ffi::c_int, + v: ::core::ffi::c_int, + dilation_h: ::core::ffi::c_int, + dilation_w: ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolution2dDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + pad_h: *mut ::core::ffi::c_int, + pad_w: *mut ::core::ffi::c_int, + u: *mut ::core::ffi::c_int, + v: *mut ::core::ffi::c_int, + dilation_h: *mut ::core::ffi::c_int, + dilation_w: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionNdDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + arrayLength: ::core::ffi::c_int, + padA: *const ::core::ffi::c_int, + filterStrideA: *const ::core::ffi::c_int, + dilationA: *const ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionNdDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + arrayLengthRequested: ::core::ffi::c_int, + arrayLength: *mut ::core::ffi::c_int, + padA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + dilationA: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolution2dForwardOutputDim: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionNdForwardOutputDim: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + nbDims: ::core::ffi::c_int, + tensorOuputDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionForwardAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionForwardAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnIm2Col: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + colBuffer: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnReorderFilterAndBias: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + reorderType: cudnnReorderType_t, + filterData: *const ::core::ffi::c_void, + reorderedFilterData: *mut ::core::ffi::c_void, + reorderBias: ::core::ffi::c_int, + biasData: *const ::core::ffi::c_void, + reorderedBiasData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBiasActivationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha1: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + alpha2: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + biasDesc: cudnnTensorDescriptor_t, + bias: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardDataAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardDataAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFoldedConvBackwardDataDescriptors: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + transformFormat: cudnnTensorFormat_t, + foldedFilterDesc: cudnnFilterDescriptor_t, + paddedDiffDesc: cudnnTensorDescriptor_t, + foldedConvDesc: cudnnConvolutionDescriptor_t, + foldedGradDesc: cudnnTensorDescriptor_t, + filterFoldTransDesc: cudnnTensorTransformDescriptor_t, + diffPadTransDesc: cudnnTensorTransformDescriptor_t, + gradFoldTransDesc: cudnnTensorTransformDescriptor_t, + gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCnnInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnGetConvolutionBackwardFilterAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardFilterAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardFilterAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardFilterAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardFilterWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardFilter: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardBias: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dbDesc: cudnnTensorDescriptor_t, + db: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsConstParamPack: Result< + unsafe extern "C" fn( + constPack: *mut cudnnFusedOpsConstParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsConstParamPack: Result< + unsafe extern "C" fn(constPack: cudnnFusedOpsConstParamPack_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFusedOpsConstParamPackAttribute: Result< + unsafe extern "C" fn( + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFusedOpsConstParamPackAttribute: Result< + unsafe extern "C" fn( + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *mut ::core::ffi::c_void, + isNULL: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsVariantParamPack: Result< + unsafe extern "C" fn( + varPack: *mut cudnnFusedOpsVariantParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsVariantParamPack: Result< + unsafe extern "C" fn(varPack: cudnnFusedOpsVariantParamPack_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFusedOpsVariantParamPackAttribute: Result< + unsafe extern "C" fn( + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFusedOpsVariantParamPackAttribute: Result< + unsafe extern "C" fn( + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsPlan: Result< + unsafe extern "C" fn(plan: *mut cudnnFusedOpsPlan_t, ops: cudnnFusedOps_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsPlan: Result< + unsafe extern "C" fn(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMakeFusedOpsPlan: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + constPack: cudnnFusedOpsConstParamPack_t, + workspaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFusedOpsExecute: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCnnTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnBackendCreateDescriptor: Result< + unsafe extern "C" fn( + descriptorType: cudnnBackendDescriptorType_t, + descriptor: *mut cudnnBackendDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendDestroyDescriptor: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendInitialize: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendFinalize: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendSetAttribute: Result< + unsafe extern "C" fn( + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + elementCount: i64, + arrayOfElements: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendGetAttribute: Result< + unsafe extern "C" fn( + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + requestedElementCount: i64, + elementCount: *mut i64, + arrayOfElements: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendExecute: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + executionPlan: cudnnBackendDescriptor_t, + variantPack: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cudnnGetVersion = __library.get(b"cudnnGetVersion\0").map(|sym| *sym); + let cudnnGetCudartVersion = __library.get(b"cudnnGetCudartVersion\0").map(|sym| *sym); + let cudnnGetErrorString = __library.get(b"cudnnGetErrorString\0").map(|sym| *sym); + let cudnnQueryRuntimeError = __library.get(b"cudnnQueryRuntimeError\0").map(|sym| *sym); + let cudnnGetProperty = __library.get(b"cudnnGetProperty\0").map(|sym| *sym); + let cudnnCreate = __library.get(b"cudnnCreate\0").map(|sym| *sym); + let cudnnDestroy = __library.get(b"cudnnDestroy\0").map(|sym| *sym); + let cudnnSetStream = __library.get(b"cudnnSetStream\0").map(|sym| *sym); + let cudnnGetStream = __library.get(b"cudnnGetStream\0").map(|sym| *sym); + let cudnnCreateTensorDescriptor = __library + .get(b"cudnnCreateTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensor4dDescriptor = __library + .get(b"cudnnSetTensor4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensor4dDescriptorEx = __library + .get(b"cudnnSetTensor4dDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetTensor4dDescriptor = __library + .get(b"cudnnGetTensor4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorNdDescriptor = __library + .get(b"cudnnSetTensorNdDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorNdDescriptorEx = __library + .get(b"cudnnSetTensorNdDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetTensorNdDescriptor = __library + .get(b"cudnnGetTensorNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetTensorSizeInBytes = __library + .get(b"cudnnGetTensorSizeInBytes\0") + .map(|sym| *sym); + let cudnnDestroyTensorDescriptor = __library + .get(b"cudnnDestroyTensorDescriptor\0") + .map(|sym| *sym); + let cudnnInitTransformDest = __library.get(b"cudnnInitTransformDest\0").map(|sym| *sym); + let cudnnCreateTensorTransformDescriptor = __library + .get(b"cudnnCreateTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorTransformDescriptor = __library + .get(b"cudnnSetTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnGetTensorTransformDescriptor = __library + .get(b"cudnnGetTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyTensorTransformDescriptor = __library + .get(b"cudnnDestroyTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnTransformTensor = __library.get(b"cudnnTransformTensor\0").map(|sym| *sym); + let cudnnTransformTensorEx = __library.get(b"cudnnTransformTensorEx\0").map(|sym| *sym); + let cudnnAddTensor = __library.get(b"cudnnAddTensor\0").map(|sym| *sym); + let cudnnCreateOpTensorDescriptor = __library + .get(b"cudnnCreateOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetOpTensorDescriptor = __library + .get(b"cudnnSetOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetOpTensorDescriptor = __library + .get(b"cudnnGetOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyOpTensorDescriptor = __library + .get(b"cudnnDestroyOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnOpTensor = __library.get(b"cudnnOpTensor\0").map(|sym| *sym); + let cudnnCreateReduceTensorDescriptor = __library + .get(b"cudnnCreateReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetReduceTensorDescriptor = __library + .get(b"cudnnSetReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetReduceTensorDescriptor = __library + .get(b"cudnnGetReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyReduceTensorDescriptor = __library + .get(b"cudnnDestroyReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetReductionIndicesSize = __library + .get(b"cudnnGetReductionIndicesSize\0") + .map(|sym| *sym); + let cudnnGetReductionWorkspaceSize = __library + .get(b"cudnnGetReductionWorkspaceSize\0") + .map(|sym| *sym); + let cudnnReduceTensor = __library.get(b"cudnnReduceTensor\0").map(|sym| *sym); + let cudnnSetTensor = __library.get(b"cudnnSetTensor\0").map(|sym| *sym); + let cudnnScaleTensor = __library.get(b"cudnnScaleTensor\0").map(|sym| *sym); + let cudnnCreateFilterDescriptor = __library + .get(b"cudnnCreateFilterDescriptor\0") + .map(|sym| *sym); + let cudnnSetFilter4dDescriptor = __library + .get(b"cudnnSetFilter4dDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilter4dDescriptor = __library + .get(b"cudnnGetFilter4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetFilterNdDescriptor = __library + .get(b"cudnnSetFilterNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilterNdDescriptor = __library + .get(b"cudnnGetFilterNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilterSizeInBytes = __library + .get(b"cudnnGetFilterSizeInBytes\0") + .map(|sym| *sym); + let cudnnTransformFilter = __library.get(b"cudnnTransformFilter\0").map(|sym| *sym); + let cudnnDestroyFilterDescriptor = __library + .get(b"cudnnDestroyFilterDescriptor\0") + .map(|sym| *sym); + let cudnnSoftmaxForward = __library.get(b"cudnnSoftmaxForward\0").map(|sym| *sym); + let cudnnCreatePoolingDescriptor = __library + .get(b"cudnnCreatePoolingDescriptor\0") + .map(|sym| *sym); + let cudnnSetPooling2dDescriptor = __library + .get(b"cudnnSetPooling2dDescriptor\0") + .map(|sym| *sym); + let cudnnGetPooling2dDescriptor = __library + .get(b"cudnnGetPooling2dDescriptor\0") + .map(|sym| *sym); + let cudnnSetPoolingNdDescriptor = __library + .get(b"cudnnSetPoolingNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetPoolingNdDescriptor = __library + .get(b"cudnnGetPoolingNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetPoolingNdForwardOutputDim = __library + .get(b"cudnnGetPoolingNdForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetPooling2dForwardOutputDim = __library + .get(b"cudnnGetPooling2dForwardOutputDim\0") + .map(|sym| *sym); + let cudnnDestroyPoolingDescriptor = __library + .get(b"cudnnDestroyPoolingDescriptor\0") + .map(|sym| *sym); + let cudnnPoolingForward = __library.get(b"cudnnPoolingForward\0").map(|sym| *sym); + let cudnnCreateActivationDescriptor = __library + .get(b"cudnnCreateActivationDescriptor\0") + .map(|sym| *sym); + let cudnnSetActivationDescriptor = __library + .get(b"cudnnSetActivationDescriptor\0") + .map(|sym| *sym); + let cudnnGetActivationDescriptor = __library + .get(b"cudnnGetActivationDescriptor\0") + .map(|sym| *sym); + let cudnnSetActivationDescriptorSwishBeta = __library + .get(b"cudnnSetActivationDescriptorSwishBeta\0") + .map(|sym| *sym); + let cudnnGetActivationDescriptorSwishBeta = __library + .get(b"cudnnGetActivationDescriptorSwishBeta\0") + .map(|sym| *sym); + let cudnnDestroyActivationDescriptor = __library + .get(b"cudnnDestroyActivationDescriptor\0") + .map(|sym| *sym); + let cudnnActivationForward = __library.get(b"cudnnActivationForward\0").map(|sym| *sym); + let cudnnCreateLRNDescriptor = __library.get(b"cudnnCreateLRNDescriptor\0").map(|sym| *sym); + let cudnnSetLRNDescriptor = __library.get(b"cudnnSetLRNDescriptor\0").map(|sym| *sym); + let cudnnGetLRNDescriptor = __library.get(b"cudnnGetLRNDescriptor\0").map(|sym| *sym); + let cudnnDestroyLRNDescriptor = __library + .get(b"cudnnDestroyLRNDescriptor\0") + .map(|sym| *sym); + let cudnnLRNCrossChannelForward = __library + .get(b"cudnnLRNCrossChannelForward\0") + .map(|sym| *sym); + let cudnnDivisiveNormalizationForward = __library + .get(b"cudnnDivisiveNormalizationForward\0") + .map(|sym| *sym); + let cudnnDeriveBNTensorDescriptor = __library + .get(b"cudnnDeriveBNTensorDescriptor\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardInference = __library + .get(b"cudnnBatchNormalizationForwardInference\0") + .map(|sym| *sym); + let cudnnDeriveNormTensorDescriptor = __library + .get(b"cudnnDeriveNormTensorDescriptor\0") + .map(|sym| *sym); + let cudnnNormalizationForwardInference = __library + .get(b"cudnnNormalizationForwardInference\0") + .map(|sym| *sym); + let cudnnCreateSpatialTransformerDescriptor = __library + .get(b"cudnnCreateSpatialTransformerDescriptor\0") + .map(|sym| *sym); + let cudnnSetSpatialTransformerNdDescriptor = __library + .get(b"cudnnSetSpatialTransformerNdDescriptor\0") + .map(|sym| *sym); + let cudnnDestroySpatialTransformerDescriptor = __library + .get(b"cudnnDestroySpatialTransformerDescriptor\0") + .map(|sym| *sym); + let cudnnSpatialTfGridGeneratorForward = __library + .get(b"cudnnSpatialTfGridGeneratorForward\0") + .map(|sym| *sym); + let cudnnSpatialTfSamplerForward = __library + .get(b"cudnnSpatialTfSamplerForward\0") + .map(|sym| *sym); + let cudnnCreateDropoutDescriptor = __library + .get(b"cudnnCreateDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyDropoutDescriptor = __library + .get(b"cudnnDestroyDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDropoutGetStatesSize = __library + .get(b"cudnnDropoutGetStatesSize\0") + .map(|sym| *sym); + let cudnnDropoutGetReserveSpaceSize = __library + .get(b"cudnnDropoutGetReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnSetDropoutDescriptor = __library + .get(b"cudnnSetDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnRestoreDropoutDescriptor = __library + .get(b"cudnnRestoreDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnGetDropoutDescriptor = __library + .get(b"cudnnGetDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDropoutForward = __library.get(b"cudnnDropoutForward\0").map(|sym| *sym); + let cudnnCreateAlgorithmDescriptor = __library + .get(b"cudnnCreateAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnSetAlgorithmDescriptor = __library + .get(b"cudnnSetAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnGetAlgorithmDescriptor = __library + .get(b"cudnnGetAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnCopyAlgorithmDescriptor = __library + .get(b"cudnnCopyAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyAlgorithmDescriptor = __library + .get(b"cudnnDestroyAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnCreateAlgorithmPerformance = __library + .get(b"cudnnCreateAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnSetAlgorithmPerformance = __library + .get(b"cudnnSetAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnGetAlgorithmPerformance = __library + .get(b"cudnnGetAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnDestroyAlgorithmPerformance = __library + .get(b"cudnnDestroyAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnGetAlgorithmSpaceSize = __library + .get(b"cudnnGetAlgorithmSpaceSize\0") + .map(|sym| *sym); + let cudnnSaveAlgorithm = __library.get(b"cudnnSaveAlgorithm\0").map(|sym| *sym); + let cudnnRestoreAlgorithm = __library.get(b"cudnnRestoreAlgorithm\0").map(|sym| *sym); + let cudnnSetCallback = __library.get(b"cudnnSetCallback\0").map(|sym| *sym); + let cudnnGetCallback = __library.get(b"cudnnGetCallback\0").map(|sym| *sym); + let cudnnOpsInferVersionCheck = __library + .get(b"cudnnOpsInferVersionCheck\0") + .map(|sym| *sym); + let cudnnSoftmaxBackward = __library.get(b"cudnnSoftmaxBackward\0").map(|sym| *sym); + let cudnnPoolingBackward = __library.get(b"cudnnPoolingBackward\0").map(|sym| *sym); + let cudnnActivationBackward = __library.get(b"cudnnActivationBackward\0").map(|sym| *sym); + let cudnnLRNCrossChannelBackward = __library + .get(b"cudnnLRNCrossChannelBackward\0") + .map(|sym| *sym); + let cudnnDivisiveNormalizationBackward = __library + .get(b"cudnnDivisiveNormalizationBackward\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize = __library + .get(b"cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationBackwardExWorkspaceSize = __library + .get(b"cudnnGetBatchNormalizationBackwardExWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationTrainingExReserveSpaceSize = __library + .get(b"cudnnGetBatchNormalizationTrainingExReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardTraining = __library + .get(b"cudnnBatchNormalizationForwardTraining\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardTrainingEx = __library + .get(b"cudnnBatchNormalizationForwardTrainingEx\0") + .map(|sym| *sym); + let cudnnBatchNormalizationBackward = __library + .get(b"cudnnBatchNormalizationBackward\0") + .map(|sym| *sym); + let cudnnBatchNormalizationBackwardEx = __library + .get(b"cudnnBatchNormalizationBackwardEx\0") + .map(|sym| *sym); + let cudnnGetNormalizationForwardTrainingWorkspaceSize = __library + .get(b"cudnnGetNormalizationForwardTrainingWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetNormalizationBackwardWorkspaceSize = __library + .get(b"cudnnGetNormalizationBackwardWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetNormalizationTrainingReserveSpaceSize = __library + .get(b"cudnnGetNormalizationTrainingReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnNormalizationForwardTraining = __library + .get(b"cudnnNormalizationForwardTraining\0") + .map(|sym| *sym); + let cudnnNormalizationBackward = __library + .get(b"cudnnNormalizationBackward\0") + .map(|sym| *sym); + let cudnnSpatialTfGridGeneratorBackward = __library + .get(b"cudnnSpatialTfGridGeneratorBackward\0") + .map(|sym| *sym); + let cudnnSpatialTfSamplerBackward = __library + .get(b"cudnnSpatialTfSamplerBackward\0") + .map(|sym| *sym); + let cudnnDropoutBackward = __library.get(b"cudnnDropoutBackward\0").map(|sym| *sym); + let cudnnOpsTrainVersionCheck = __library + .get(b"cudnnOpsTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnCreateRNNDescriptor = __library.get(b"cudnnCreateRNNDescriptor\0").map(|sym| *sym); + let cudnnDestroyRNNDescriptor = __library + .get(b"cudnnDestroyRNNDescriptor\0") + .map(|sym| *sym); + let cudnnSetRNNDescriptor_v8 = __library.get(b"cudnnSetRNNDescriptor_v8\0").map(|sym| *sym); + let cudnnGetRNNDescriptor_v8 = __library.get(b"cudnnGetRNNDescriptor_v8\0").map(|sym| *sym); + let cudnnSetRNNDescriptor_v6 = __library.get(b"cudnnSetRNNDescriptor_v6\0").map(|sym| *sym); + let cudnnGetRNNDescriptor_v6 = __library.get(b"cudnnGetRNNDescriptor_v6\0").map(|sym| *sym); + let cudnnSetRNNMatrixMathType = __library + .get(b"cudnnSetRNNMatrixMathType\0") + .map(|sym| *sym); + let cudnnGetRNNMatrixMathType = __library + .get(b"cudnnGetRNNMatrixMathType\0") + .map(|sym| *sym); + let cudnnSetRNNBiasMode = __library.get(b"cudnnSetRNNBiasMode\0").map(|sym| *sym); + let cudnnGetRNNBiasMode = __library.get(b"cudnnGetRNNBiasMode\0").map(|sym| *sym); + let cudnnRNNSetClip_v8 = __library.get(b"cudnnRNNSetClip_v8\0").map(|sym| *sym); + let cudnnRNNGetClip_v8 = __library.get(b"cudnnRNNGetClip_v8\0").map(|sym| *sym); + let cudnnRNNSetClip = __library.get(b"cudnnRNNSetClip\0").map(|sym| *sym); + let cudnnRNNGetClip = __library.get(b"cudnnRNNGetClip\0").map(|sym| *sym); + let cudnnSetRNNProjectionLayers = __library + .get(b"cudnnSetRNNProjectionLayers\0") + .map(|sym| *sym); + let cudnnGetRNNProjectionLayers = __library + .get(b"cudnnGetRNNProjectionLayers\0") + .map(|sym| *sym); + let cudnnCreatePersistentRNNPlan = __library + .get(b"cudnnCreatePersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnDestroyPersistentRNNPlan = __library + .get(b"cudnnDestroyPersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnSetPersistentRNNPlan = __library + .get(b"cudnnSetPersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnBuildRNNDynamic = __library.get(b"cudnnBuildRNNDynamic\0").map(|sym| *sym); + let cudnnGetRNNWorkspaceSize = __library.get(b"cudnnGetRNNWorkspaceSize\0").map(|sym| *sym); + let cudnnGetRNNTrainingReserveSize = __library + .get(b"cudnnGetRNNTrainingReserveSize\0") + .map(|sym| *sym); + let cudnnGetRNNTempSpaceSizes = __library + .get(b"cudnnGetRNNTempSpaceSizes\0") + .map(|sym| *sym); + let cudnnGetRNNParamsSize = __library.get(b"cudnnGetRNNParamsSize\0").map(|sym| *sym); + let cudnnGetRNNWeightSpaceSize = __library + .get(b"cudnnGetRNNWeightSpaceSize\0") + .map(|sym| *sym); + let cudnnGetRNNLinLayerMatrixParams = __library + .get(b"cudnnGetRNNLinLayerMatrixParams\0") + .map(|sym| *sym); + let cudnnGetRNNLinLayerBiasParams = __library + .get(b"cudnnGetRNNLinLayerBiasParams\0") + .map(|sym| *sym); + let cudnnGetRNNWeightParams = __library.get(b"cudnnGetRNNWeightParams\0").map(|sym| *sym); + let cudnnRNNForwardInference = __library.get(b"cudnnRNNForwardInference\0").map(|sym| *sym); + let cudnnSetRNNPaddingMode = __library.get(b"cudnnSetRNNPaddingMode\0").map(|sym| *sym); + let cudnnGetRNNPaddingMode = __library.get(b"cudnnGetRNNPaddingMode\0").map(|sym| *sym); + let cudnnCreateRNNDataDescriptor = __library + .get(b"cudnnCreateRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyRNNDataDescriptor = __library + .get(b"cudnnDestroyRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnSetRNNDataDescriptor = __library + .get(b"cudnnSetRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnGetRNNDataDescriptor = __library + .get(b"cudnnGetRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnRNNForwardInferenceEx = __library + .get(b"cudnnRNNForwardInferenceEx\0") + .map(|sym| *sym); + let cudnnRNNForward = __library.get(b"cudnnRNNForward\0").map(|sym| *sym); + let cudnnSetRNNAlgorithmDescriptor = __library + .get(b"cudnnSetRNNAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnGetRNNForwardInferenceAlgorithmMaxCount = __library + .get(b"cudnnGetRNNForwardInferenceAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNForwardInferenceAlgorithmEx = __library + .get(b"cudnnFindRNNForwardInferenceAlgorithmEx\0") + .map(|sym| *sym); + let cudnnCreateSeqDataDescriptor = __library + .get(b"cudnnCreateSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnDestroySeqDataDescriptor = __library + .get(b"cudnnDestroySeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnSetSeqDataDescriptor = __library + .get(b"cudnnSetSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnGetSeqDataDescriptor = __library + .get(b"cudnnGetSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnCreateAttnDescriptor = __library + .get(b"cudnnCreateAttnDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyAttnDescriptor = __library + .get(b"cudnnDestroyAttnDescriptor\0") + .map(|sym| *sym); + let cudnnSetAttnDescriptor = __library.get(b"cudnnSetAttnDescriptor\0").map(|sym| *sym); + let cudnnGetAttnDescriptor = __library.get(b"cudnnGetAttnDescriptor\0").map(|sym| *sym); + let cudnnGetMultiHeadAttnBuffers = __library + .get(b"cudnnGetMultiHeadAttnBuffers\0") + .map(|sym| *sym); + let cudnnGetMultiHeadAttnWeights = __library + .get(b"cudnnGetMultiHeadAttnWeights\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnForward = __library + .get(b"cudnnMultiHeadAttnForward\0") + .map(|sym| *sym); + let cudnnAdvInferVersionCheck = __library + .get(b"cudnnAdvInferVersionCheck\0") + .map(|sym| *sym); + let cudnnRNNForwardTraining = __library.get(b"cudnnRNNForwardTraining\0").map(|sym| *sym); + let cudnnRNNBackwardData = __library.get(b"cudnnRNNBackwardData\0").map(|sym| *sym); + let cudnnRNNBackwardData_v8 = __library.get(b"cudnnRNNBackwardData_v8\0").map(|sym| *sym); + let cudnnRNNBackwardWeights = __library.get(b"cudnnRNNBackwardWeights\0").map(|sym| *sym); + let cudnnRNNBackwardWeights_v8 = __library + .get(b"cudnnRNNBackwardWeights_v8\0") + .map(|sym| *sym); + let cudnnRNNForwardTrainingEx = __library + .get(b"cudnnRNNForwardTrainingEx\0") + .map(|sym| *sym); + let cudnnRNNBackwardDataEx = __library.get(b"cudnnRNNBackwardDataEx\0").map(|sym| *sym); + let cudnnRNNBackwardWeightsEx = __library + .get(b"cudnnRNNBackwardWeightsEx\0") + .map(|sym| *sym); + let cudnnGetRNNForwardTrainingAlgorithmMaxCount = __library + .get(b"cudnnGetRNNForwardTrainingAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNForwardTrainingAlgorithmEx = __library + .get(b"cudnnFindRNNForwardTrainingAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetRNNBackwardDataAlgorithmMaxCount = __library + .get(b"cudnnGetRNNBackwardDataAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNBackwardDataAlgorithmEx = __library + .get(b"cudnnFindRNNBackwardDataAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetRNNBackwardWeightsAlgorithmMaxCount = __library + .get(b"cudnnGetRNNBackwardWeightsAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNBackwardWeightsAlgorithmEx = __library + .get(b"cudnnFindRNNBackwardWeightsAlgorithmEx\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnBackwardData = __library + .get(b"cudnnMultiHeadAttnBackwardData\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnBackwardWeights = __library + .get(b"cudnnMultiHeadAttnBackwardWeights\0") + .map(|sym| *sym); + let cudnnCreateCTCLossDescriptor = __library + .get(b"cudnnCreateCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptor = __library + .get(b"cudnnSetCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptorEx = __library + .get(b"cudnnSetCTCLossDescriptorEx\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptor_v8 = __library + .get(b"cudnnSetCTCLossDescriptor_v8\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptor = __library + .get(b"cudnnGetCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptorEx = __library + .get(b"cudnnGetCTCLossDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptor_v8 = __library + .get(b"cudnnGetCTCLossDescriptor_v8\0") + .map(|sym| *sym); + let cudnnDestroyCTCLossDescriptor = __library + .get(b"cudnnDestroyCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnCTCLoss = __library.get(b"cudnnCTCLoss\0").map(|sym| *sym); + let cudnnCTCLoss_v8 = __library.get(b"cudnnCTCLoss_v8\0").map(|sym| *sym); + let cudnnGetCTCLossWorkspaceSize = __library + .get(b"cudnnGetCTCLossWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetCTCLossWorkspaceSize_v8 = __library + .get(b"cudnnGetCTCLossWorkspaceSize_v8\0") + .map(|sym| *sym); + let cudnnAdvTrainVersionCheck = __library + .get(b"cudnnAdvTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnCreateConvolutionDescriptor = __library + .get(b"cudnnCreateConvolutionDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyConvolutionDescriptor = __library + .get(b"cudnnDestroyConvolutionDescriptor\0") + .map(|sym| *sym); + let cudnnSetConvolutionMathType = __library + .get(b"cudnnSetConvolutionMathType\0") + .map(|sym| *sym); + let cudnnGetConvolutionMathType = __library + .get(b"cudnnGetConvolutionMathType\0") + .map(|sym| *sym); + let cudnnSetConvolutionGroupCount = __library + .get(b"cudnnSetConvolutionGroupCount\0") + .map(|sym| *sym); + let cudnnGetConvolutionGroupCount = __library + .get(b"cudnnGetConvolutionGroupCount\0") + .map(|sym| *sym); + let cudnnSetConvolutionReorderType = __library + .get(b"cudnnSetConvolutionReorderType\0") + .map(|sym| *sym); + let cudnnGetConvolutionReorderType = __library + .get(b"cudnnGetConvolutionReorderType\0") + .map(|sym| *sym); + let cudnnSetConvolution2dDescriptor = __library + .get(b"cudnnSetConvolution2dDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolution2dDescriptor = __library + .get(b"cudnnGetConvolution2dDescriptor\0") + .map(|sym| *sym); + let cudnnSetConvolutionNdDescriptor = __library + .get(b"cudnnSetConvolutionNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolutionNdDescriptor = __library + .get(b"cudnnGetConvolutionNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolution2dForwardOutputDim = __library + .get(b"cudnnGetConvolution2dForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetConvolutionNdForwardOutputDim = __library + .get(b"cudnnGetConvolutionNdForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionForwardAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionForwardAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnFindConvolutionForwardAlgorithm = __library + .get(b"cudnnFindConvolutionForwardAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionForwardAlgorithmEx = __library + .get(b"cudnnFindConvolutionForwardAlgorithmEx\0") + .map(|sym| *sym); + let cudnnIm2Col = __library.get(b"cudnnIm2Col\0").map(|sym| *sym); + let cudnnReorderFilterAndBias = __library + .get(b"cudnnReorderFilterAndBias\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardWorkspaceSize = __library + .get(b"cudnnGetConvolutionForwardWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionForward = __library.get(b"cudnnConvolutionForward\0").map(|sym| *sym); + let cudnnConvolutionBiasActivationForward = __library + .get(b"cudnnConvolutionBiasActivationForward\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionBackwardDataAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardDataAlgorithm = __library + .get(b"cudnnFindConvolutionBackwardDataAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardDataAlgorithmEx = __library + .get(b"cudnnFindConvolutionBackwardDataAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionBackwardDataAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataWorkspaceSize = __library + .get(b"cudnnGetConvolutionBackwardDataWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardData = __library + .get(b"cudnnConvolutionBackwardData\0") + .map(|sym| *sym); + let cudnnGetFoldedConvBackwardDataDescriptors = __library + .get(b"cudnnGetFoldedConvBackwardDataDescriptors\0") + .map(|sym| *sym); + let cudnnCnnInferVersionCheck = __library + .get(b"cudnnCnnInferVersionCheck\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionBackwardFilterAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardFilterAlgorithm = __library + .get(b"cudnnFindConvolutionBackwardFilterAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardFilterAlgorithmEx = __library + .get(b"cudnnFindConvolutionBackwardFilterAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionBackwardFilterAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterWorkspaceSize = __library + .get(b"cudnnGetConvolutionBackwardFilterWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardFilter = __library + .get(b"cudnnConvolutionBackwardFilter\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardBias = __library + .get(b"cudnnConvolutionBackwardBias\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsConstParamPack = __library + .get(b"cudnnCreateFusedOpsConstParamPack\0") + .map(|sym| *sym); + let cudnnDestroyFusedOpsConstParamPack = __library + .get(b"cudnnDestroyFusedOpsConstParamPack\0") + .map(|sym| *sym); + let cudnnSetFusedOpsConstParamPackAttribute = __library + .get(b"cudnnSetFusedOpsConstParamPackAttribute\0") + .map(|sym| *sym); + let cudnnGetFusedOpsConstParamPackAttribute = __library + .get(b"cudnnGetFusedOpsConstParamPackAttribute\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsVariantParamPack = __library + .get(b"cudnnCreateFusedOpsVariantParamPack\0") + .map(|sym| *sym); + let cudnnDestroyFusedOpsVariantParamPack = __library + .get(b"cudnnDestroyFusedOpsVariantParamPack\0") + .map(|sym| *sym); + let cudnnSetFusedOpsVariantParamPackAttribute = __library + .get(b"cudnnSetFusedOpsVariantParamPackAttribute\0") + .map(|sym| *sym); + let cudnnGetFusedOpsVariantParamPackAttribute = __library + .get(b"cudnnGetFusedOpsVariantParamPackAttribute\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsPlan = __library.get(b"cudnnCreateFusedOpsPlan\0").map(|sym| *sym); + let cudnnDestroyFusedOpsPlan = __library.get(b"cudnnDestroyFusedOpsPlan\0").map(|sym| *sym); + let cudnnMakeFusedOpsPlan = __library.get(b"cudnnMakeFusedOpsPlan\0").map(|sym| *sym); + let cudnnFusedOpsExecute = __library.get(b"cudnnFusedOpsExecute\0").map(|sym| *sym); + let cudnnCnnTrainVersionCheck = __library + .get(b"cudnnCnnTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnBackendCreateDescriptor = __library + .get(b"cudnnBackendCreateDescriptor\0") + .map(|sym| *sym); + let cudnnBackendDestroyDescriptor = __library + .get(b"cudnnBackendDestroyDescriptor\0") + .map(|sym| *sym); + let cudnnBackendInitialize = __library.get(b"cudnnBackendInitialize\0").map(|sym| *sym); + let cudnnBackendFinalize = __library.get(b"cudnnBackendFinalize\0").map(|sym| *sym); + let cudnnBackendSetAttribute = __library.get(b"cudnnBackendSetAttribute\0").map(|sym| *sym); + let cudnnBackendGetAttribute = __library.get(b"cudnnBackendGetAttribute\0").map(|sym| *sym); + let cudnnBackendExecute = __library.get(b"cudnnBackendExecute\0").map(|sym| *sym); + Ok(Lib { + __library, + cudnnGetVersion, + cudnnGetCudartVersion, + cudnnGetErrorString, + cudnnQueryRuntimeError, + cudnnGetProperty, + cudnnCreate, + cudnnDestroy, + cudnnSetStream, + cudnnGetStream, + cudnnCreateTensorDescriptor, + cudnnSetTensor4dDescriptor, + cudnnSetTensor4dDescriptorEx, + cudnnGetTensor4dDescriptor, + cudnnSetTensorNdDescriptor, + cudnnSetTensorNdDescriptorEx, + cudnnGetTensorNdDescriptor, + cudnnGetTensorSizeInBytes, + cudnnDestroyTensorDescriptor, + cudnnInitTransformDest, + cudnnCreateTensorTransformDescriptor, + cudnnSetTensorTransformDescriptor, + cudnnGetTensorTransformDescriptor, + cudnnDestroyTensorTransformDescriptor, + cudnnTransformTensor, + cudnnTransformTensorEx, + cudnnAddTensor, + cudnnCreateOpTensorDescriptor, + cudnnSetOpTensorDescriptor, + cudnnGetOpTensorDescriptor, + cudnnDestroyOpTensorDescriptor, + cudnnOpTensor, + cudnnCreateReduceTensorDescriptor, + cudnnSetReduceTensorDescriptor, + cudnnGetReduceTensorDescriptor, + cudnnDestroyReduceTensorDescriptor, + cudnnGetReductionIndicesSize, + cudnnGetReductionWorkspaceSize, + cudnnReduceTensor, + cudnnSetTensor, + cudnnScaleTensor, + cudnnCreateFilterDescriptor, + cudnnSetFilter4dDescriptor, + cudnnGetFilter4dDescriptor, + cudnnSetFilterNdDescriptor, + cudnnGetFilterNdDescriptor, + cudnnGetFilterSizeInBytes, + cudnnTransformFilter, + cudnnDestroyFilterDescriptor, + cudnnSoftmaxForward, + cudnnCreatePoolingDescriptor, + cudnnSetPooling2dDescriptor, + cudnnGetPooling2dDescriptor, + cudnnSetPoolingNdDescriptor, + cudnnGetPoolingNdDescriptor, + cudnnGetPoolingNdForwardOutputDim, + cudnnGetPooling2dForwardOutputDim, + cudnnDestroyPoolingDescriptor, + cudnnPoolingForward, + cudnnCreateActivationDescriptor, + cudnnSetActivationDescriptor, + cudnnGetActivationDescriptor, + cudnnSetActivationDescriptorSwishBeta, + cudnnGetActivationDescriptorSwishBeta, + cudnnDestroyActivationDescriptor, + cudnnActivationForward, + cudnnCreateLRNDescriptor, + cudnnSetLRNDescriptor, + cudnnGetLRNDescriptor, + cudnnDestroyLRNDescriptor, + cudnnLRNCrossChannelForward, + cudnnDivisiveNormalizationForward, + cudnnDeriveBNTensorDescriptor, + cudnnBatchNormalizationForwardInference, + cudnnDeriveNormTensorDescriptor, + cudnnNormalizationForwardInference, + cudnnCreateSpatialTransformerDescriptor, + cudnnSetSpatialTransformerNdDescriptor, + cudnnDestroySpatialTransformerDescriptor, + cudnnSpatialTfGridGeneratorForward, + cudnnSpatialTfSamplerForward, + cudnnCreateDropoutDescriptor, + cudnnDestroyDropoutDescriptor, + cudnnDropoutGetStatesSize, + cudnnDropoutGetReserveSpaceSize, + cudnnSetDropoutDescriptor, + cudnnRestoreDropoutDescriptor, + cudnnGetDropoutDescriptor, + cudnnDropoutForward, + cudnnCreateAlgorithmDescriptor, + cudnnSetAlgorithmDescriptor, + cudnnGetAlgorithmDescriptor, + cudnnCopyAlgorithmDescriptor, + cudnnDestroyAlgorithmDescriptor, + cudnnCreateAlgorithmPerformance, + cudnnSetAlgorithmPerformance, + cudnnGetAlgorithmPerformance, + cudnnDestroyAlgorithmPerformance, + cudnnGetAlgorithmSpaceSize, + cudnnSaveAlgorithm, + cudnnRestoreAlgorithm, + cudnnSetCallback, + cudnnGetCallback, + cudnnOpsInferVersionCheck, + cudnnSoftmaxBackward, + cudnnPoolingBackward, + cudnnActivationBackward, + cudnnLRNCrossChannelBackward, + cudnnDivisiveNormalizationBackward, + cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize, + cudnnGetBatchNormalizationBackwardExWorkspaceSize, + cudnnGetBatchNormalizationTrainingExReserveSpaceSize, + cudnnBatchNormalizationForwardTraining, + cudnnBatchNormalizationForwardTrainingEx, + cudnnBatchNormalizationBackward, + cudnnBatchNormalizationBackwardEx, + cudnnGetNormalizationForwardTrainingWorkspaceSize, + cudnnGetNormalizationBackwardWorkspaceSize, + cudnnGetNormalizationTrainingReserveSpaceSize, + cudnnNormalizationForwardTraining, + cudnnNormalizationBackward, + cudnnSpatialTfGridGeneratorBackward, + cudnnSpatialTfSamplerBackward, + cudnnDropoutBackward, + cudnnOpsTrainVersionCheck, + cudnnCreateRNNDescriptor, + cudnnDestroyRNNDescriptor, + cudnnSetRNNDescriptor_v8, + cudnnGetRNNDescriptor_v8, + cudnnSetRNNDescriptor_v6, + cudnnGetRNNDescriptor_v6, + cudnnSetRNNMatrixMathType, + cudnnGetRNNMatrixMathType, + cudnnSetRNNBiasMode, + cudnnGetRNNBiasMode, + cudnnRNNSetClip_v8, + cudnnRNNGetClip_v8, + cudnnRNNSetClip, + cudnnRNNGetClip, + cudnnSetRNNProjectionLayers, + cudnnGetRNNProjectionLayers, + cudnnCreatePersistentRNNPlan, + cudnnDestroyPersistentRNNPlan, + cudnnSetPersistentRNNPlan, + cudnnBuildRNNDynamic, + cudnnGetRNNWorkspaceSize, + cudnnGetRNNTrainingReserveSize, + cudnnGetRNNTempSpaceSizes, + cudnnGetRNNParamsSize, + cudnnGetRNNWeightSpaceSize, + cudnnGetRNNLinLayerMatrixParams, + cudnnGetRNNLinLayerBiasParams, + cudnnGetRNNWeightParams, + cudnnRNNForwardInference, + cudnnSetRNNPaddingMode, + cudnnGetRNNPaddingMode, + cudnnCreateRNNDataDescriptor, + cudnnDestroyRNNDataDescriptor, + cudnnSetRNNDataDescriptor, + cudnnGetRNNDataDescriptor, + cudnnRNNForwardInferenceEx, + cudnnRNNForward, + cudnnSetRNNAlgorithmDescriptor, + cudnnGetRNNForwardInferenceAlgorithmMaxCount, + cudnnFindRNNForwardInferenceAlgorithmEx, + cudnnCreateSeqDataDescriptor, + cudnnDestroySeqDataDescriptor, + cudnnSetSeqDataDescriptor, + cudnnGetSeqDataDescriptor, + cudnnCreateAttnDescriptor, + cudnnDestroyAttnDescriptor, + cudnnSetAttnDescriptor, + cudnnGetAttnDescriptor, + cudnnGetMultiHeadAttnBuffers, + cudnnGetMultiHeadAttnWeights, + cudnnMultiHeadAttnForward, + cudnnAdvInferVersionCheck, + cudnnRNNForwardTraining, + cudnnRNNBackwardData, + cudnnRNNBackwardData_v8, + cudnnRNNBackwardWeights, + cudnnRNNBackwardWeights_v8, + cudnnRNNForwardTrainingEx, + cudnnRNNBackwardDataEx, + cudnnRNNBackwardWeightsEx, + cudnnGetRNNForwardTrainingAlgorithmMaxCount, + cudnnFindRNNForwardTrainingAlgorithmEx, + cudnnGetRNNBackwardDataAlgorithmMaxCount, + cudnnFindRNNBackwardDataAlgorithmEx, + cudnnGetRNNBackwardWeightsAlgorithmMaxCount, + cudnnFindRNNBackwardWeightsAlgorithmEx, + cudnnMultiHeadAttnBackwardData, + cudnnMultiHeadAttnBackwardWeights, + cudnnCreateCTCLossDescriptor, + cudnnSetCTCLossDescriptor, + cudnnSetCTCLossDescriptorEx, + cudnnSetCTCLossDescriptor_v8, + cudnnGetCTCLossDescriptor, + cudnnGetCTCLossDescriptorEx, + cudnnGetCTCLossDescriptor_v8, + cudnnDestroyCTCLossDescriptor, + cudnnCTCLoss, + cudnnCTCLoss_v8, + cudnnGetCTCLossWorkspaceSize, + cudnnGetCTCLossWorkspaceSize_v8, + cudnnAdvTrainVersionCheck, + cudnnCreateConvolutionDescriptor, + cudnnDestroyConvolutionDescriptor, + cudnnSetConvolutionMathType, + cudnnGetConvolutionMathType, + cudnnSetConvolutionGroupCount, + cudnnGetConvolutionGroupCount, + cudnnSetConvolutionReorderType, + cudnnGetConvolutionReorderType, + cudnnSetConvolution2dDescriptor, + cudnnGetConvolution2dDescriptor, + cudnnSetConvolutionNdDescriptor, + cudnnGetConvolutionNdDescriptor, + cudnnGetConvolution2dForwardOutputDim, + cudnnGetConvolutionNdForwardOutputDim, + cudnnGetConvolutionForwardAlgorithmMaxCount, + cudnnGetConvolutionForwardAlgorithm_v7, + cudnnFindConvolutionForwardAlgorithm, + cudnnFindConvolutionForwardAlgorithmEx, + cudnnIm2Col, + cudnnReorderFilterAndBias, + cudnnGetConvolutionForwardWorkspaceSize, + cudnnConvolutionForward, + cudnnConvolutionBiasActivationForward, + cudnnGetConvolutionBackwardDataAlgorithmMaxCount, + cudnnFindConvolutionBackwardDataAlgorithm, + cudnnFindConvolutionBackwardDataAlgorithmEx, + cudnnGetConvolutionBackwardDataAlgorithm_v7, + cudnnGetConvolutionBackwardDataWorkspaceSize, + cudnnConvolutionBackwardData, + cudnnGetFoldedConvBackwardDataDescriptors, + cudnnCnnInferVersionCheck, + cudnnGetConvolutionBackwardFilterAlgorithmMaxCount, + cudnnFindConvolutionBackwardFilterAlgorithm, + cudnnFindConvolutionBackwardFilterAlgorithmEx, + cudnnGetConvolutionBackwardFilterAlgorithm_v7, + cudnnGetConvolutionBackwardFilterWorkspaceSize, + cudnnConvolutionBackwardFilter, + cudnnConvolutionBackwardBias, + cudnnCreateFusedOpsConstParamPack, + cudnnDestroyFusedOpsConstParamPack, + cudnnSetFusedOpsConstParamPackAttribute, + cudnnGetFusedOpsConstParamPackAttribute, + cudnnCreateFusedOpsVariantParamPack, + cudnnDestroyFusedOpsVariantParamPack, + cudnnSetFusedOpsVariantParamPackAttribute, + cudnnGetFusedOpsVariantParamPackAttribute, + cudnnCreateFusedOpsPlan, + cudnnDestroyFusedOpsPlan, + cudnnMakeFusedOpsPlan, + cudnnFusedOpsExecute, + cudnnCnnTrainVersionCheck, + cudnnBackendCreateDescriptor, + cudnnBackendDestroyDescriptor, + cudnnBackendInitialize, + cudnnBackendFinalize, + cudnnBackendSetAttribute, + cudnnBackendGetAttribute, + cudnnBackendExecute, + }) + } + pub unsafe fn cudnnGetVersion(&self) -> usize { + (self + .cudnnGetVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetCudartVersion(&self) -> usize { + (self + .cudnnGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetErrorString(&self, status: cudnnStatus_t) -> *const ::core::ffi::c_char { + (self + .cudnnGetErrorString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cudnnQueryRuntimeError( + &self, + handle: cudnnHandle_t, + rstatus: *mut cudnnStatus_t, + mode: cudnnErrQueryMode_t, + tag: *mut cudnnRuntimeTag_t, + ) -> cudnnStatus_t { + (self + .cudnnQueryRuntimeError + .as_ref() + .expect("Expected function, got error."))(handle, rstatus, mode, tag) + } + pub unsafe fn cudnnGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cudnnCreate(&self, handle: *mut cudnnHandle_t) -> cudnnStatus_t { + (self + .cudnnCreate + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cudnnDestroy(&self, handle: cudnnHandle_t) -> cudnnStatus_t { + (self + .cudnnDestroy + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cudnnSetStream( + &self, + handle: cudnnHandle_t, + streamId: cudaStream_t, + ) -> cudnnStatus_t { + (self + .cudnnSetStream + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cudnnGetStream( + &self, + handle: cudnnHandle_t, + streamId: *mut cudaStream_t, + ) -> cudnnStatus_t { + (self + .cudnnGetStream + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cudnnCreateTensorDescriptor( + &self, + tensorDesc: *mut cudnnTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(tensorDesc) + } + pub unsafe fn cudnnSetTensor4dDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, format, dataType, n, c, h, w + ) + } + pub unsafe fn cudnnSetTensor4dDescriptorEx( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + nStride: ::core::ffi::c_int, + cStride: ::core::ffi::c_int, + hStride: ::core::ffi::c_int, + wStride: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor4dDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride, + ) + } + pub unsafe fn cudnnGetTensor4dDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: *mut cudnnDataType_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + nStride: *mut ::core::ffi::c_int, + cStride: *mut ::core::ffi::c_int, + hStride: *mut ::core::ffi::c_int, + wStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetTensor4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride, + ) + } + pub unsafe fn cudnnSetTensorNdDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, nbDims, dimA, strideA + ) + } + pub unsafe fn cudnnSetTensorNdDescriptorEx( + &self, + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorNdDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, format, dataType, nbDims, dimA + ) + } + pub unsafe fn cudnnGetTensorNdDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, + nbDimsRequested, + dataType, + nbDims, + dimA, + strideA, + ) + } + pub unsafe fn cudnnGetTensorSizeInBytes( + &self, + tensorDesc: cudnnTensorDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorSizeInBytes + .as_ref() + .expect("Expected function, got error."))(tensorDesc, size) + } + pub unsafe fn cudnnDestroyTensorDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(tensorDesc) + } + pub unsafe fn cudnnInitTransformDest( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + srcDesc: cudnnTensorDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + destSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnInitTransformDest + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + srcDesc, + destDesc, + destSizeInBytes, + ) + } + pub unsafe fn cudnnCreateTensorTransformDescriptor( + &self, + transformDesc: *mut cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cudnnSetTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + nbDims: u32, + destFormat: cudnnTensorFormat_t, + padBeforeA: *const i32, + padAfterA: *const i32, + foldA: *const u32, + direction: cudnnFoldingDirection_t, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + nbDims, + destFormat, + padBeforeA, + padAfterA, + foldA, + direction, + ) + } + pub unsafe fn cudnnGetTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + nbDimsRequested: u32, + destFormat: *mut cudnnTensorFormat_t, + padBeforeA: *mut i32, + padAfterA: *mut i32, + foldA: *mut u32, + direction: *mut cudnnFoldingDirection_t, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + nbDimsRequested, + destFormat, + padBeforeA, + padAfterA, + foldA, + direction, + ) + } + pub unsafe fn cudnnDestroyTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cudnnTransformTensor( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformTensor + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, xDesc, x, beta, yDesc, y + ) + } + pub unsafe fn cudnnTransformTensorEx( + &self, + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnTensorDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnTensorDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformTensorEx + .as_ref() + .expect("Expected function, got error."))( + handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData, + ) + } + pub unsafe fn cudnnAddTensor( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnAddTensor + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, aDesc, A, beta, cDesc, C + ) + } + pub unsafe fn cudnnCreateOpTensorDescriptor( + &self, + opTensorDesc: *mut cudnnOpTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(opTensorDesc) + } + pub unsafe fn cudnnSetOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: cudnnOpTensorOp_t, + opTensorCompType: cudnnDataType_t, + opTensorNanOpt: cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnSetOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + opTensorDesc, + opTensorOp, + opTensorCompType, + opTensorNanOpt, + ) + } + pub unsafe fn cudnnGetOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: *mut cudnnOpTensorOp_t, + opTensorCompType: *mut cudnnDataType_t, + opTensorNanOpt: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnGetOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + opTensorDesc, + opTensorOp, + opTensorCompType, + opTensorNanOpt, + ) + } + pub unsafe fn cudnnDestroyOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(opTensorDesc) + } + pub unsafe fn cudnnOpTensor( + &self, + handle: cudnnHandle_t, + opTensorDesc: cudnnOpTensorDescriptor_t, + alpha1: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + alpha2: *const ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + B: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnOpTensor + .as_ref() + .expect("Expected function, got error."))( + handle, + opTensorDesc, + alpha1, + aDesc, + A, + alpha2, + bDesc, + B, + beta, + cDesc, + C, + ) + } + pub unsafe fn cudnnCreateReduceTensorDescriptor( + &self, + reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(reduceTensorDesc) + } + pub unsafe fn cudnnSetReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: cudnnReduceTensorOp_t, + reduceTensorCompType: cudnnDataType_t, + reduceTensorNanOpt: cudnnNanPropagation_t, + reduceTensorIndices: cudnnReduceTensorIndices_t, + reduceTensorIndicesType: cudnnIndicesType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + reduceTensorDesc, + reduceTensorOp, + reduceTensorCompType, + reduceTensorNanOpt, + reduceTensorIndices, + reduceTensorIndicesType, + ) + } + pub unsafe fn cudnnGetReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: *mut cudnnReduceTensorOp_t, + reduceTensorCompType: *mut cudnnDataType_t, + reduceTensorNanOpt: *mut cudnnNanPropagation_t, + reduceTensorIndices: *mut cudnnReduceTensorIndices_t, + reduceTensorIndicesType: *mut cudnnIndicesType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + reduceTensorDesc, + reduceTensorOp, + reduceTensorCompType, + reduceTensorNanOpt, + reduceTensorIndices, + reduceTensorIndicesType, + ) + } + pub unsafe fn cudnnDestroyReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(reduceTensorDesc) + } + pub unsafe fn cudnnGetReductionIndicesSize( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetReductionIndicesSize + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + aDesc, + cDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetReductionWorkspaceSize( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetReductionWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + aDesc, + cDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnReduceTensor( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + indices: *mut ::core::ffi::c_void, + indicesSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnReduceTensor + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + indices, + indicesSizeInBytes, + workspace, + workspaceSizeInBytes, + alpha, + aDesc, + A, + beta, + cDesc, + C, + ) + } + pub unsafe fn cudnnSetTensor( + &self, + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + valuePtr: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor + .as_ref() + .expect("Expected function, got error."))(handle, yDesc, y, valuePtr) + } + pub unsafe fn cudnnScaleTensor( + &self, + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + alpha: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnScaleTensor + .as_ref() + .expect("Expected function, got error."))(handle, yDesc, y, alpha) + } + pub unsafe fn cudnnCreateFilterDescriptor( + &self, + filterDesc: *mut cudnnFilterDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFilterDescriptor + .as_ref() + .expect("Expected function, got error."))(filterDesc) + } + pub unsafe fn cudnnSetFilter4dDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + k: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetFilter4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, k, c, h, w + ) + } + pub unsafe fn cudnnGetFilter4dDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + k: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFilter4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, k, c, h, w + ) + } + pub unsafe fn cudnnSetFilterNdDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + nbDims: ::core::ffi::c_int, + filterDimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetFilterNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, nbDims, filterDimA, + ) + } + pub unsafe fn cudnnGetFilterNdDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + nbDims: *mut ::core::ffi::c_int, + filterDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFilterNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, + nbDimsRequested, + dataType, + format, + nbDims, + filterDimA, + ) + } + pub unsafe fn cudnnGetFilterSizeInBytes( + &self, + filterDesc: cudnnFilterDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetFilterSizeInBytes + .as_ref() + .expect("Expected function, got error."))(filterDesc, size) + } + pub unsafe fn cudnnTransformFilter( + &self, + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnFilterDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnFilterDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformFilter + .as_ref() + .expect("Expected function, got error."))( + handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData, + ) + } + pub unsafe fn cudnnDestroyFilterDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFilterDescriptor + .as_ref() + .expect("Expected function, got error."))(filterDesc) + } + pub unsafe fn cudnnSoftmaxForward( + &self, + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSoftmaxForward + .as_ref() + .expect("Expected function, got error."))( + handle, algo, mode, alpha, xDesc, x, beta, yDesc, y, + ) + } + pub unsafe fn cudnnCreatePoolingDescriptor( + &self, + poolingDesc: *mut cudnnPoolingDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreatePoolingDescriptor + .as_ref() + .expect("Expected function, got error."))(poolingDesc) + } + pub unsafe fn cudnnSetPooling2dDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + windowHeight: ::core::ffi::c_int, + windowWidth: ::core::ffi::c_int, + verticalPadding: ::core::ffi::c_int, + horizontalPadding: ::core::ffi::c_int, + verticalStride: ::core::ffi::c_int, + horizontalStride: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetPooling2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + windowHeight, + windowWidth, + verticalPadding, + horizontalPadding, + verticalStride, + horizontalStride, + ) + } + pub unsafe fn cudnnGetPooling2dDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + windowHeight: *mut ::core::ffi::c_int, + windowWidth: *mut ::core::ffi::c_int, + verticalPadding: *mut ::core::ffi::c_int, + horizontalPadding: *mut ::core::ffi::c_int, + verticalStride: *mut ::core::ffi::c_int, + horizontalStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPooling2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + windowHeight, + windowWidth, + verticalPadding, + horizontalPadding, + verticalStride, + horizontalStride, + ) + } + pub unsafe fn cudnnSetPoolingNdDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + nbDims: ::core::ffi::c_int, + windowDimA: *const ::core::ffi::c_int, + paddingA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetPoolingNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + nbDims, + windowDimA, + paddingA, + strideA, + ) + } + pub unsafe fn cudnnGetPoolingNdDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + nbDims: *mut ::core::ffi::c_int, + windowDimA: *mut ::core::ffi::c_int, + paddingA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPoolingNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + nbDimsRequested, + mode, + maxpoolingNanOpt, + nbDims, + windowDimA, + paddingA, + strideA, + ) + } + pub unsafe fn cudnnGetPoolingNdForwardOutputDim( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + nbDims: ::core::ffi::c_int, + outputTensorDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPoolingNdForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + inputTensorDesc, + nbDims, + outputTensorDimA, + ) + } + pub unsafe fn cudnnGetPooling2dForwardOutputDim( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPooling2dForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, inputTensorDesc, n, c, h, w + ) + } + pub unsafe fn cudnnDestroyPoolingDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyPoolingDescriptor + .as_ref() + .expect("Expected function, got error."))(poolingDesc) + } + pub unsafe fn cudnnPoolingForward( + &self, + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnPoolingForward + .as_ref() + .expect("Expected function, got error."))( + handle, + poolingDesc, + alpha, + xDesc, + x, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnCreateActivationDescriptor( + &self, + activationDesc: *mut cudnnActivationDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc) + } + pub unsafe fn cudnnSetActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + mode: cudnnActivationMode_t, + reluNanOpt: cudnnNanPropagation_t, + coef: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc, mode, reluNanOpt, coef) + } + pub unsafe fn cudnnGetActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + mode: *mut cudnnActivationMode_t, + reluNanOpt: *mut cudnnNanPropagation_t, + coef: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc, mode, reluNanOpt, coef) + } + pub unsafe fn cudnnSetActivationDescriptorSwishBeta( + &self, + activationDesc: cudnnActivationDescriptor_t, + swish_beta: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetActivationDescriptorSwishBeta + .as_ref() + .expect("Expected function, got error."))(activationDesc, swish_beta) + } + pub unsafe fn cudnnGetActivationDescriptorSwishBeta( + &self, + activationDesc: cudnnActivationDescriptor_t, + swish_beta: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetActivationDescriptorSwishBeta + .as_ref() + .expect("Expected function, got error."))(activationDesc, swish_beta) + } + pub unsafe fn cudnnDestroyActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc) + } + pub unsafe fn cudnnActivationForward( + &self, + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnActivationForward + .as_ref() + .expect("Expected function, got error."))( + handle, + activationDesc, + alpha, + xDesc, + x, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnCreateLRNDescriptor( + &self, + normDesc: *mut cudnnLRNDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateLRNDescriptor + .as_ref() + .expect("Expected function, got error."))(normDesc) + } + pub unsafe fn cudnnSetLRNDescriptor( + &self, + normDesc: cudnnLRNDescriptor_t, + lrnN: ::core::ffi::c_uint, + lrnAlpha: f64, + lrnBeta: f64, + lrnK: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetLRNDescriptor + .as_ref() + .expect("Expected function, got error."))( + normDesc, lrnN, lrnAlpha, lrnBeta, lrnK + ) + } + pub unsafe fn cudnnGetLRNDescriptor( + &self, + normDesc: cudnnLRNDescriptor_t, + lrnN: *mut ::core::ffi::c_uint, + lrnAlpha: *mut f64, + lrnBeta: *mut f64, + lrnK: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetLRNDescriptor + .as_ref() + .expect("Expected function, got error."))( + normDesc, lrnN, lrnAlpha, lrnBeta, lrnK + ) + } + pub unsafe fn cudnnDestroyLRNDescriptor(&self, lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t { + (self + .cudnnDestroyLRNDescriptor + .as_ref() + .expect("Expected function, got error."))(lrnDesc) + } + pub unsafe fn cudnnLRNCrossChannelForward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnLRNCrossChannelForward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, lrnMode, alpha, xDesc, x, beta, yDesc, y, + ) + } + pub unsafe fn cudnnDivisiveNormalizationForward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnDivisiveNormalizationForward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, mode, alpha, xDesc, x, means, temp, temp2, beta, yDesc, y, + ) + } + pub unsafe fn cudnnDeriveBNTensorDescriptor( + &self, + derivedBnDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnBatchNormMode_t, + ) -> cudnnStatus_t { + (self + .cudnnDeriveBNTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(derivedBnDesc, xDesc, mode) + } + pub unsafe fn cudnnBatchNormalizationForwardInference( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + epsilon: f64, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alpha, + beta, + xDesc, + x, + yDesc, + y, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + estimatedMean, + estimatedVariance, + epsilon, + ) + } + pub unsafe fn cudnnDeriveNormTensorDescriptor( + &self, + derivedNormScaleBiasDesc: cudnnTensorDescriptor_t, + derivedNormMeanVarDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnNormMode_t, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnDeriveNormTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + derivedNormScaleBiasDesc, + derivedNormMeanVarDesc, + xDesc, + mode, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationForwardInference( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + normMeanVarDesc: cudnnTensorDescriptor_t, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + epsilon: f64, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alpha, + beta, + xDesc, + x, + normScaleBiasDesc, + normScale, + normBias, + normMeanVarDesc, + estimatedMean, + estimatedVariance, + zDesc, + z, + activationDesc, + yDesc, + y, + epsilon, + groupCnt, + ) + } + pub unsafe fn cudnnCreateSpatialTransformerDescriptor( + &self, + stDesc: *mut cudnnSpatialTransformerDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateSpatialTransformerDescriptor + .as_ref() + .expect("Expected function, got error."))(stDesc) + } + pub unsafe fn cudnnSetSpatialTransformerNdDescriptor( + &self, + stDesc: cudnnSpatialTransformerDescriptor_t, + samplerType: cudnnSamplerType_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetSpatialTransformerNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + stDesc, samplerType, dataType, nbDims, dimA + ) + } + pub unsafe fn cudnnDestroySpatialTransformerDescriptor( + &self, + stDesc: cudnnSpatialTransformerDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroySpatialTransformerDescriptor + .as_ref() + .expect("Expected function, got error."))(stDesc) + } + pub unsafe fn cudnnSpatialTfGridGeneratorForward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + theta: *const ::core::ffi::c_void, + grid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfGridGeneratorForward + .as_ref() + .expect("Expected function, got error."))(handle, stDesc, theta, grid) + } + pub unsafe fn cudnnSpatialTfSamplerForward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfSamplerForward + .as_ref() + .expect("Expected function, got error."))( + handle, stDesc, alpha, xDesc, x, grid, beta, yDesc, y, + ) + } + pub unsafe fn cudnnCreateDropoutDescriptor( + &self, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))(dropoutDesc) + } + pub unsafe fn cudnnDestroyDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))(dropoutDesc) + } + pub unsafe fn cudnnDropoutGetStatesSize( + &self, + handle: cudnnHandle_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutGetStatesSize + .as_ref() + .expect("Expected function, got error."))(handle, sizeInBytes) + } + pub unsafe fn cudnnDropoutGetReserveSpaceSize( + &self, + xdesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutGetReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))(xdesc, sizeInBytes) + } + pub unsafe fn cudnnSetDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnSetDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, + handle, + dropout, + states, + stateSizeInBytes, + seed, + ) + } + pub unsafe fn cudnnRestoreDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnRestoreDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, + handle, + dropout, + states, + stateSizeInBytes, + seed, + ) + } + pub unsafe fn cudnnGetDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: *mut f32, + states: *mut *mut ::core::ffi::c_void, + seed: *mut ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnGetDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, handle, dropout, states, seed + ) + } + pub unsafe fn cudnnDropoutForward( + &self, + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + xdesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + ydesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutForward + .as_ref() + .expect("Expected function, got error."))( + handle, + dropoutDesc, + xdesc, + x, + ydesc, + y, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCreateAlgorithmDescriptor( + &self, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc) + } + pub unsafe fn cudnnSetAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: cudnnAlgorithm_t, + ) -> cudnnStatus_t { + (self + .cudnnSetAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc, algorithm) + } + pub unsafe fn cudnnGetAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: *mut cudnnAlgorithm_t, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc, algorithm) + } + pub unsafe fn cudnnCopyAlgorithmDescriptor( + &self, + src: cudnnAlgorithmDescriptor_t, + dest: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCopyAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(src, dest) + } + pub unsafe fn cudnnDestroyAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc) + } + pub unsafe fn cudnnCreateAlgorithmPerformance( + &self, + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToCreate: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnCreateAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))(algoPerf, numberToCreate) + } + pub unsafe fn cudnnSetAlgorithmPerformance( + &self, + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: cudnnAlgorithmDescriptor_t, + status: cudnnStatus_t, + time: f32, + memory: usize, + ) -> cudnnStatus_t { + (self + .cudnnSetAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))( + algoPerf, algoDesc, status, time, memory + ) + } + pub unsafe fn cudnnGetAlgorithmPerformance( + &self, + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + status: *mut cudnnStatus_t, + time: *mut f32, + memory: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))( + algoPerf, algoDesc, status, time, memory + ) + } + pub unsafe fn cudnnDestroyAlgorithmPerformance( + &self, + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToDestroy: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))(algoPerf, numberToDestroy) + } + pub unsafe fn cudnnGetAlgorithmSpaceSize( + &self, + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmSpaceSize + .as_ref() + .expect("Expected function, got error."))(handle, algoDesc, algoSpaceSizeInBytes) + } + pub unsafe fn cudnnSaveAlgorithm( + &self, + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnSaveAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + algoDesc, + algoSpace, + algoSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRestoreAlgorithm( + &self, + handle: cudnnHandle_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnRestoreAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + algoSpace, + algoSpaceSizeInBytes, + algoDesc, + ) + } + pub unsafe fn cudnnSetCallback( + &self, + mask: ::core::ffi::c_uint, + udata: *mut ::core::ffi::c_void, + fptr: cudnnCallback_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCallback + .as_ref() + .expect("Expected function, got error."))(mask, udata, fptr) + } + pub unsafe fn cudnnGetCallback( + &self, + mask: *mut ::core::ffi::c_uint, + udata: *mut *mut ::core::ffi::c_void, + fptr: *mut cudnnCallback_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCallback + .as_ref() + .expect("Expected function, got error."))(mask, udata, fptr) + } + pub unsafe fn cudnnOpsInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnOpsInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnSoftmaxBackward( + &self, + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSoftmaxBackward + .as_ref() + .expect("Expected function, got error."))( + handle, algo, mode, alpha, yDesc, y, dyDesc, dy, beta, dxDesc, dx, + ) + } + pub unsafe fn cudnnPoolingBackward( + &self, + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnPoolingBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + poolingDesc, + alpha, + yDesc, + y, + dyDesc, + dy, + xDesc, + x, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnActivationBackward( + &self, + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnActivationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + activationDesc, + alpha, + yDesc, + y, + dyDesc, + dy, + xDesc, + x, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnLRNCrossChannelBackward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnLRNCrossChannelBackward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, lrnMode, alpha, yDesc, y, dyDesc, dy, xDesc, x, beta, dxDesc, dx, + ) + } + pub unsafe fn cudnnDivisiveNormalizationBackward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dXdMeansDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dMeans: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnDivisiveNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + normDesc, + mode, + alpha, + xDesc, + x, + means, + dy, + temp, + temp2, + beta, + dXdMeansDesc, + dx, + dMeans, + ) + } + pub unsafe fn cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + xDesc, + zDesc, + yDesc, + bnScaleBiasMeanVarDesc, + activationDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetBatchNormalizationBackwardExWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationBackwardExWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + xDesc, + yDesc, + dyDesc, + dzDesc, + dxDesc, + dBnScaleBiasDesc, + activationDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetBatchNormalizationTrainingExReserveSpaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationTrainingExReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + activationDesc, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnBatchNormalizationForwardTraining( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alpha, + beta, + xDesc, + x, + yDesc, + y, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + exponentialAverageFactor, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + ) + } + pub unsafe fn cudnnBatchNormalizationForwardTrainingEx( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardTrainingEx + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + alpha, + beta, + xDesc, + xData, + zDesc, + zData, + yDesc, + yData, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + exponentialAverageFactor, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + activationDesc, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnBatchNormalizationBackward( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + dBnScaleResult: *mut ::core::ffi::c_void, + dBnBiasResult: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + x, + dyDesc, + dy, + dxDesc, + dx, + dBnScaleBiasDesc, + bnScale, + dBnScaleResult, + dBnBiasResult, + epsilon, + savedMean, + savedInvVariance, + ) + } + pub unsafe fn cudnnBatchNormalizationBackwardEx( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScaleData: *const ::core::ffi::c_void, + bnBiasData: *const ::core::ffi::c_void, + dBnScaleData: *mut ::core::ffi::c_void, + dBnBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationBackwardEx + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + xData, + yDesc, + yData, + dyDesc, + dyData, + dzDesc, + dzData, + dxDesc, + dxData, + dBnScaleBiasDesc, + bnScaleData, + bnBiasData, + dBnScaleData, + dBnBiasData, + epsilon, + savedMean, + savedInvVariance, + activationDesc, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetNormalizationForwardTrainingWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + normScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationForwardTrainingWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + xDesc, + zDesc, + yDesc, + normScaleBiasDesc, + activationDesc, + normMeanVarDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnGetNormalizationBackwardWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationBackwardWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + xDesc, + yDesc, + dyDesc, + dzDesc, + dxDesc, + dNormScaleBiasDesc, + activationDesc, + normMeanVarDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnGetNormalizationTrainingReserveSpaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationTrainingReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + activationDesc, + xDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationForwardTraining( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alpha, + beta, + xDesc, + xData, + normScaleBiasDesc, + normScale, + normBias, + exponentialAverageFactor, + normMeanVarDesc, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + activationDesc, + zDesc, + zData, + yDesc, + yData, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationBackward( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + normScaleData: *const ::core::ffi::c_void, + normBiasData: *const ::core::ffi::c_void, + dNormScaleData: *mut ::core::ffi::c_void, + dNormBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + xData, + yDesc, + yData, + dyDesc, + dyData, + dzDesc, + dzData, + dxDesc, + dxData, + dNormScaleBiasDesc, + normScaleData, + normBiasData, + dNormScaleData, + dNormBiasData, + epsilon, + normMeanVarDesc, + savedMean, + savedInvVariance, + activationDesc, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnSpatialTfGridGeneratorBackward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + dgrid: *const ::core::ffi::c_void, + dtheta: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfGridGeneratorBackward + .as_ref() + .expect("Expected function, got error."))(handle, stDesc, dgrid, dtheta) + } + pub unsafe fn cudnnSpatialTfSamplerBackward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + alphaDgrid: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + betaDgrid: *const ::core::ffi::c_void, + dgrid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfSamplerBackward + .as_ref() + .expect("Expected function, got error."))( + handle, stDesc, alpha, xDesc, x, beta, dxDesc, dx, alphaDgrid, dyDesc, dy, grid, + betaDgrid, dgrid, + ) + } + pub unsafe fn cudnnDropoutBackward( + &self, + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + dydesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxdesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + dropoutDesc, + dydesc, + dy, + dxdesc, + dx, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnOpsTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnOpsTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnCreateRNNDescriptor( + &self, + rnnDesc: *mut cudnnRNNDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateRNNDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDesc) + } + pub unsafe fn cudnnDestroyRNNDescriptor(&self, rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t { + (self + .cudnnDestroyRNNDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDesc) + } + pub unsafe fn cudnnSetRNNDescriptor_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + algo: cudnnRNNAlgo_t, + cellMode: cudnnRNNMode_t, + biasMode: cudnnRNNBiasMode_t, + dirMode: cudnnDirectionMode_t, + inputMode: cudnnRNNInputMode_t, + dataType: cudnnDataType_t, + mathPrec: cudnnDataType_t, + mathType: cudnnMathType_t, + inputSize: i32, + hiddenSize: i32, + projSize: i32, + numLayers: i32, + dropoutDesc: cudnnDropoutDescriptor_t, + auxFlags: u32, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, + algo, + cellMode, + biasMode, + dirMode, + inputMode, + dataType, + mathPrec, + mathType, + inputSize, + hiddenSize, + projSize, + numLayers, + dropoutDesc, + auxFlags, + ) + } + pub unsafe fn cudnnGetRNNDescriptor_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + algo: *mut cudnnRNNAlgo_t, + cellMode: *mut cudnnRNNMode_t, + biasMode: *mut cudnnRNNBiasMode_t, + dirMode: *mut cudnnDirectionMode_t, + inputMode: *mut cudnnRNNInputMode_t, + dataType: *mut cudnnDataType_t, + mathPrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + inputSize: *mut i32, + hiddenSize: *mut i32, + projSize: *mut i32, + numLayers: *mut i32, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + auxFlags: *mut u32, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, + algo, + cellMode, + biasMode, + dirMode, + inputMode, + dataType, + mathPrec, + mathType, + inputSize, + hiddenSize, + projSize, + numLayers, + dropoutDesc, + auxFlags, + ) + } + pub unsafe fn cudnnSetRNNDescriptor_v6( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: ::core::ffi::c_int, + numLayers: ::core::ffi::c_int, + dropoutDesc: cudnnDropoutDescriptor_t, + inputMode: cudnnRNNInputMode_t, + direction: cudnnDirectionMode_t, + cellMode: cudnnRNNMode_t, + algo: cudnnRNNAlgo_t, + mathPrec: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDescriptor_v6 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + hiddenSize, + numLayers, + dropoutDesc, + inputMode, + direction, + cellMode, + algo, + mathPrec, + ) + } + pub unsafe fn cudnnGetRNNDescriptor_v6( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: *mut ::core::ffi::c_int, + numLayers: *mut ::core::ffi::c_int, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + inputMode: *mut cudnnRNNInputMode_t, + direction: *mut cudnnDirectionMode_t, + cellMode: *mut cudnnRNNMode_t, + algo: *mut cudnnRNNAlgo_t, + mathPrec: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDescriptor_v6 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + hiddenSize, + numLayers, + dropoutDesc, + inputMode, + direction, + cellMode, + algo, + mathPrec, + ) + } + pub unsafe fn cudnnSetRNNMatrixMathType( + &self, + rnnDesc: cudnnRNNDescriptor_t, + mType: cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNMatrixMathType + .as_ref() + .expect("Expected function, got error."))(rnnDesc, mType) + } + pub unsafe fn cudnnGetRNNMatrixMathType( + &self, + rnnDesc: cudnnRNNDescriptor_t, + mType: *mut cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNMatrixMathType + .as_ref() + .expect("Expected function, got error."))(rnnDesc, mType) + } + pub unsafe fn cudnnSetRNNBiasMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + biasMode: cudnnRNNBiasMode_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNBiasMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, biasMode) + } + pub unsafe fn cudnnGetRNNBiasMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + biasMode: *mut cudnnRNNBiasMode_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBiasMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, biasMode) + } + pub unsafe fn cudnnRNNSetClip_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNSetClip_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, clipMode, clipNanOpt, lclip, rclip + ) + } + pub unsafe fn cudnnRNNGetClip_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNGetClip_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, clipMode, clipNanOpt, lclip, rclip + ) + } + pub unsafe fn cudnnRNNSetClip( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNSetClip + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, clipMode, clipNanOpt, lclip, rclip, + ) + } + pub unsafe fn cudnnRNNGetClip( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNGetClip + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, clipMode, clipNanOpt, lclip, rclip, + ) + } + pub unsafe fn cudnnSetRNNProjectionLayers( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: ::core::ffi::c_int, + outProjSize: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNProjectionLayers + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, recProjSize, outProjSize + ) + } + pub unsafe fn cudnnGetRNNProjectionLayers( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: *mut ::core::ffi::c_int, + outProjSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNProjectionLayers + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, recProjSize, outProjSize + ) + } + pub unsafe fn cudnnCreatePersistentRNNPlan( + &self, + rnnDesc: cudnnRNNDescriptor_t, + minibatch: ::core::ffi::c_int, + dataType: cudnnDataType_t, + plan: *mut cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnCreatePersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(rnnDesc, minibatch, dataType, plan) + } + pub unsafe fn cudnnDestroyPersistentRNNPlan( + &self, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyPersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(plan) + } + pub unsafe fn cudnnSetPersistentRNNPlan( + &self, + rnnDesc: cudnnRNNDescriptor_t, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnSetPersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(rnnDesc, plan) + } + pub unsafe fn cudnnBuildRNNDynamic( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + miniBatch: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnBuildRNNDynamic + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, miniBatch) + } + pub unsafe fn cudnnGetRNNWorkspaceSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNTrainingReserveSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNTrainingReserveSize + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNTempSpaceSizes( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fMode: cudnnForwardMode_t, + xDesc: cudnnRNNDataDescriptor_t, + workSpaceSize: *mut usize, + reserveSpaceSize: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNTempSpaceSizes + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + fMode, + xDesc, + workSpaceSize, + reserveSpaceSize, + ) + } + pub unsafe fn cudnnGetRNNParamsSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + dataType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNParamsSize + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, xDesc, sizeInBytes, dataType + ) + } + pub unsafe fn cudnnGetRNNWeightSpaceSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + weightSpaceSize: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWeightSpaceSize + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, weightSpaceSize) + } + pub unsafe fn cudnnGetRNNLinLayerMatrixParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerMatDesc: cudnnFilterDescriptor_t, + linLayerMat: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNLinLayerMatrixParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + xDesc, + wDesc, + w, + linLayerID, + linLayerMatDesc, + linLayerMat, + ) + } + pub unsafe fn cudnnGetRNNLinLayerBiasParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerBiasDesc: cudnnFilterDescriptor_t, + linLayerBias: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNLinLayerBiasParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + xDesc, + wDesc, + w, + linLayerID, + linLayerBiasDesc, + linLayerBias, + ) + } + pub unsafe fn cudnnGetRNNWeightParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: i32, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + linLayerID: i32, + mDesc: cudnnTensorDescriptor_t, + mAddr: *mut *mut ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + bAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWeightParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + weightSpaceSize, + weightSpace, + linLayerID, + mDesc, + mAddr, + bDesc, + bAddr, + ) + } + pub unsafe fn cudnnRNNForwardInference( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnSetRNNPaddingMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: ::core::ffi::c_uint, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNPaddingMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, paddingMode) + } + pub unsafe fn cudnnGetRNNPaddingMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: *mut ::core::ffi::c_uint, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNPaddingMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, paddingMode) + } + pub unsafe fn cudnnCreateRNNDataDescriptor( + &self, + rnnDataDesc: *mut cudnnRNNDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDataDesc) + } + pub unsafe fn cudnnDestroyRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDataDesc) + } + pub unsafe fn cudnnSetRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: cudnnDataType_t, + layout: cudnnRNNDataLayout_t, + maxSeqLength: ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + vectorSize: ::core::ffi::c_int, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + rnnDataDesc, + dataType, + layout, + maxSeqLength, + batchSize, + vectorSize, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnGetRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: *mut cudnnDataType_t, + layout: *mut cudnnRNNDataLayout_t, + maxSeqLength: *mut ::core::ffi::c_int, + batchSize: *mut ::core::ffi::c_int, + vectorSize: *mut ::core::ffi::c_int, + arrayLengthRequested: ::core::ffi::c_int, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + rnnDataDesc, + dataType, + layout, + maxSeqLength, + batchSize, + vectorSize, + arrayLengthRequested, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnRNNForwardInferenceEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardInferenceEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + kDesc, + keys, + cDesc, + cAttn, + iDesc, + iAttn, + qDesc, + queries, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNForward( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fwdMode: cudnnForwardMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + hy: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + cy: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNForward + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + fwdMode, + devSeqLengths, + xDesc, + x, + yDesc, + y, + hDesc, + hx, + hy, + cDesc, + cx, + cy, + weightSpaceSize, + weightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnSetRNNAlgorithmDescriptor( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, algoDesc) + } + pub unsafe fn cudnnGetRNNForwardInferenceAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNForwardInferenceAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNForwardInferenceAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNForwardInferenceAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCreateSeqDataDescriptor( + &self, + seqDataDesc: *mut cudnnSeqDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))(seqDataDesc) + } + pub unsafe fn cudnnDestroySeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroySeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))(seqDataDesc) + } + pub unsafe fn cudnnSetSeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + axes: *const cudnnSeqDataAxis_t, + seqLengthArraySize: usize, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + seqDataDesc, + dataType, + nbDims, + dimA, + axes, + seqLengthArraySize, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnGetSeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + nbDimsRequested: ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + axes: *mut cudnnSeqDataAxis_t, + seqLengthArraySize: *mut usize, + seqLengthSizeRequested: usize, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + seqDataDesc, + dataType, + nbDims, + nbDimsRequested, + dimA, + axes, + seqLengthArraySize, + seqLengthSizeRequested, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnCreateAttnDescriptor( + &self, + attnDesc: *mut cudnnAttnDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateAttnDescriptor + .as_ref() + .expect("Expected function, got error."))(attnDesc) + } + pub unsafe fn cudnnDestroyAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAttnDescriptor + .as_ref() + .expect("Expected function, got error."))(attnDesc) + } + pub unsafe fn cudnnSetAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + attnMode: ::core::ffi::c_uint, + nHeads: ::core::ffi::c_int, + smScaler: f64, + dataType: cudnnDataType_t, + computePrec: cudnnDataType_t, + mathType: cudnnMathType_t, + attnDropoutDesc: cudnnDropoutDescriptor_t, + postDropoutDesc: cudnnDropoutDescriptor_t, + qSize: ::core::ffi::c_int, + kSize: ::core::ffi::c_int, + vSize: ::core::ffi::c_int, + qProjSize: ::core::ffi::c_int, + kProjSize: ::core::ffi::c_int, + vProjSize: ::core::ffi::c_int, + oProjSize: ::core::ffi::c_int, + qoMaxSeqLength: ::core::ffi::c_int, + kvMaxSeqLength: ::core::ffi::c_int, + maxBatchSize: ::core::ffi::c_int, + maxBeamSize: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetAttnDescriptor + .as_ref() + .expect("Expected function, got error."))( + attnDesc, + attnMode, + nHeads, + smScaler, + dataType, + computePrec, + mathType, + attnDropoutDesc, + postDropoutDesc, + qSize, + kSize, + vSize, + qProjSize, + kProjSize, + vProjSize, + oProjSize, + qoMaxSeqLength, + kvMaxSeqLength, + maxBatchSize, + maxBeamSize, + ) + } + pub unsafe fn cudnnGetAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + attnMode: *mut ::core::ffi::c_uint, + nHeads: *mut ::core::ffi::c_int, + smScaler: *mut f64, + dataType: *mut cudnnDataType_t, + computePrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + attnDropoutDesc: *mut cudnnDropoutDescriptor_t, + postDropoutDesc: *mut cudnnDropoutDescriptor_t, + qSize: *mut ::core::ffi::c_int, + kSize: *mut ::core::ffi::c_int, + vSize: *mut ::core::ffi::c_int, + qProjSize: *mut ::core::ffi::c_int, + kProjSize: *mut ::core::ffi::c_int, + vProjSize: *mut ::core::ffi::c_int, + oProjSize: *mut ::core::ffi::c_int, + qoMaxSeqLength: *mut ::core::ffi::c_int, + kvMaxSeqLength: *mut ::core::ffi::c_int, + maxBatchSize: *mut ::core::ffi::c_int, + maxBeamSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetAttnDescriptor + .as_ref() + .expect("Expected function, got error."))( + attnDesc, + attnMode, + nHeads, + smScaler, + dataType, + computePrec, + mathType, + attnDropoutDesc, + postDropoutDesc, + qSize, + kSize, + vSize, + qProjSize, + kProjSize, + vProjSize, + oProjSize, + qoMaxSeqLength, + kvMaxSeqLength, + maxBatchSize, + maxBeamSize, + ) + } + pub unsafe fn cudnnGetMultiHeadAttnBuffers( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + weightSizeInBytes: *mut usize, + workSpaceSizeInBytes: *mut usize, + reserveSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetMultiHeadAttnBuffers + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + weightSizeInBytes, + workSpaceSizeInBytes, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetMultiHeadAttnWeights( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + wKind: cudnnMultiHeadAttnWeightKind_t, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + wDesc: cudnnTensorDescriptor_t, + wAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetMultiHeadAttnWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + wKind, + weightSizeInBytes, + weights, + wDesc, + wAddr, + ) + } + pub unsafe fn cudnnMultiHeadAttnForward( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + currIdx: ::core::ffi::c_int, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsQO: *const ::core::ffi::c_int, + devSeqLengthsKV: *const ::core::ffi::c_int, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + residuals: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + oDesc: cudnnSeqDataDescriptor_t, + out: *mut ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnForward + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + currIdx, + loWinIdx, + hiWinIdx, + devSeqLengthsQO, + devSeqLengthsKV, + qDesc, + queries, + residuals, + kDesc, + keys, + vDesc, + values, + oDesc, + out, + weightSizeInBytes, + weights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnAdvInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnAdvInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnRNNForwardTraining( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardData( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + yDesc, + y, + dyDesc, + dy, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardData_v8( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + devSeqLengths: *const i32, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + xDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + dhy: *const ::core::ffi::c_void, + dhx: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dcy: *const ::core::ffi::c_void, + dcx: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardData_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + devSeqLengths, + yDesc, + y, + dy, + xDesc, + dx, + hDesc, + hx, + dhy, + dhx, + cDesc, + cx, + dcy, + dcx, + weightSpaceSize, + weightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnRNNBackwardWeights( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + workSpace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardWeights_v8( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + addGrad: cudnnWgradMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + weightSpaceSize: usize, + dweightSpace: *mut ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeights_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + addGrad, + devSeqLengths, + xDesc, + x, + hDesc, + hx, + yDesc, + y, + weightSpaceSize, + dweightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnRNNForwardTrainingEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardTrainingEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + kDesc, + keys, + cDesc, + cAttn, + iDesc, + iAttn, + qDesc, + queries, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardDataEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnRNNDataDescriptor_t, + dy: *const ::core::ffi::c_void, + dcDesc: cudnnRNNDataDescriptor_t, + dcAttn: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + dkDesc: cudnnRNNDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardDataEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + yDesc, + y, + dyDesc, + dy, + dcDesc, + dcAttn, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + dkDesc, + dkeys, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardWeightsEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeightsEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + workSpace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNForwardTrainingAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNForwardTrainingAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNForwardTrainingAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNForwardTrainingAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNBackwardDataAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBackwardDataAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNBackwardDataAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNBackwardDataAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + yDesc, + y, + dyDesc, + dy, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNBackwardWeightsAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBackwardWeightsAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNBackwardWeightsAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNBackwardWeightsAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnMultiHeadAttnBackwardData( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsDQDO: *const ::core::ffi::c_int, + devSeqLengthsDKDV: *const ::core::ffi::c_int, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + dqDesc: cudnnSeqDataDescriptor_t, + dqueries: *mut ::core::ffi::c_void, + queries: *const ::core::ffi::c_void, + dkDesc: cudnnSeqDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + keys: *const ::core::ffi::c_void, + dvDesc: cudnnSeqDataDescriptor_t, + dvalues: *mut ::core::ffi::c_void, + values: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + loWinIdx, + hiWinIdx, + devSeqLengthsDQDO, + devSeqLengthsDKDV, + doDesc, + dout, + dqDesc, + dqueries, + queries, + dkDesc, + dkeys, + keys, + dvDesc, + dvalues, + values, + weightSizeInBytes, + weights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnMultiHeadAttnBackwardWeights( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + addGrad: cudnnWgradMode_t, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + dweights: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnBackwardWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + addGrad, + qDesc, + queries, + kDesc, + keys, + vDesc, + values, + doDesc, + dout, + weightSizeInBytes, + weights, + dweights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnCreateCTCLossDescriptor( + &self, + ctcLossDesc: *mut cudnnCTCLossDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc) + } + pub unsafe fn cudnnSetCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc, compType) + } + pub unsafe fn cudnnSetCTCLossDescriptorEx( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, compType, normMode, gradMode + ) + } + pub unsafe fn cudnnSetCTCLossDescriptor_v8( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + maxLabelLength: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, + compType, + normMode, + gradMode, + maxLabelLength, + ) + } + pub unsafe fn cudnnGetCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc, compType) + } + pub unsafe fn cudnnGetCTCLossDescriptorEx( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, compType, normMode, gradMode + ) + } + pub unsafe fn cudnnGetCTCLossDescriptor_v8( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + maxLabelLength: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, + compType, + normMode, + gradMode, + maxLabelLength, + ) + } + pub unsafe fn cudnnDestroyCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc) + } + pub unsafe fn cudnnCTCLoss( + &self, + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + hostLabels: *const ::core::ffi::c_int, + hostLabelLengths: *const ::core::ffi::c_int, + hostInputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnCTCLoss + .as_ref() + .expect("Expected function, got error."))( + handle, + probsDesc, + probs, + hostLabels, + hostLabelLengths, + hostInputLengths, + costs, + gradientsDesc, + gradients, + algo, + ctcLossDesc, + workspace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCTCLoss_v8( + &self, + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnCTCLoss_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + algo, + ctcLossDesc, + probsDesc, + probs, + labels, + labelLengths, + inputLengths, + costs, + gradientsDesc, + gradients, + workSpaceSizeInBytes, + workspace, + ) + } + pub unsafe fn cudnnGetCTCLossWorkspaceSize( + &self, + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + probsDesc, + gradientsDesc, + labels, + labelLengths, + inputLengths, + algo, + ctcLossDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetCTCLossWorkspaceSize_v8( + &self, + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossWorkspaceSize_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + algo, + ctcLossDesc, + probsDesc, + gradientsDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnAdvTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnAdvTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnCreateConvolutionDescriptor( + &self, + convDesc: *mut cudnnConvolutionDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateConvolutionDescriptor + .as_ref() + .expect("Expected function, got error."))(convDesc) + } + pub unsafe fn cudnnDestroyConvolutionDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyConvolutionDescriptor + .as_ref() + .expect("Expected function, got error."))(convDesc) + } + pub unsafe fn cudnnSetConvolutionMathType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + mathType: cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionMathType + .as_ref() + .expect("Expected function, got error."))(convDesc, mathType) + } + pub unsafe fn cudnnGetConvolutionMathType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + mathType: *mut cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionMathType + .as_ref() + .expect("Expected function, got error."))(convDesc, mathType) + } + pub unsafe fn cudnnSetConvolutionGroupCount( + &self, + convDesc: cudnnConvolutionDescriptor_t, + groupCount: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionGroupCount + .as_ref() + .expect("Expected function, got error."))(convDesc, groupCount) + } + pub unsafe fn cudnnGetConvolutionGroupCount( + &self, + convDesc: cudnnConvolutionDescriptor_t, + groupCount: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionGroupCount + .as_ref() + .expect("Expected function, got error."))(convDesc, groupCount) + } + pub unsafe fn cudnnSetConvolutionReorderType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + reorderType: cudnnReorderType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionReorderType + .as_ref() + .expect("Expected function, got error."))(convDesc, reorderType) + } + pub unsafe fn cudnnGetConvolutionReorderType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + reorderType: *mut cudnnReorderType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionReorderType + .as_ref() + .expect("Expected function, got error."))(convDesc, reorderType) + } + pub unsafe fn cudnnSetConvolution2dDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + pad_h: ::core::ffi::c_int, + pad_w: ::core::ffi::c_int, + u: ::core::ffi::c_int, + v: ::core::ffi::c_int, + dilation_h: ::core::ffi::c_int, + dilation_w: ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolution2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + pad_h, + pad_w, + u, + v, + dilation_h, + dilation_w, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolution2dDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + pad_h: *mut ::core::ffi::c_int, + pad_w: *mut ::core::ffi::c_int, + u: *mut ::core::ffi::c_int, + v: *mut ::core::ffi::c_int, + dilation_h: *mut ::core::ffi::c_int, + dilation_w: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolution2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + pad_h, + pad_w, + u, + v, + dilation_h, + dilation_w, + mode, + computeType, + ) + } + pub unsafe fn cudnnSetConvolutionNdDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + arrayLength: ::core::ffi::c_int, + padA: *const ::core::ffi::c_int, + filterStrideA: *const ::core::ffi::c_int, + dilationA: *const ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + arrayLength, + padA, + filterStrideA, + dilationA, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolutionNdDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + arrayLengthRequested: ::core::ffi::c_int, + arrayLength: *mut ::core::ffi::c_int, + padA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + dilationA: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + arrayLengthRequested, + arrayLength, + padA, + strideA, + dilationA, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolution2dForwardOutputDim( + &self, + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolution2dForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + convDesc, + inputTensorDesc, + filterDesc, + n, + c, + h, + w, + ) + } + pub unsafe fn cudnnGetConvolutionNdForwardOutputDim( + &self, + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + nbDims: ::core::ffi::c_int, + tensorOuputDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionNdForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + convDesc, + inputTensorDesc, + filterDesc, + nbDims, + tensorOuputDimA, + ) + } + pub unsafe fn cudnnGetConvolutionForwardAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnGetConvolutionForwardAlgorithm_v7( + &self, + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + srcDesc, + filterDesc, + convDesc, + destDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionForwardAlgorithm( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionForwardAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + wDesc, + convDesc, + yDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionForwardAlgorithmEx( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionForwardAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + x, + wDesc, + w, + convDesc, + yDesc, + y, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnIm2Col( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + colBuffer: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnIm2Col + .as_ref() + .expect("Expected function, got error."))( + handle, xDesc, x, wDesc, convDesc, colBuffer + ) + } + pub unsafe fn cudnnReorderFilterAndBias( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + reorderType: cudnnReorderType_t, + filterData: *const ::core::ffi::c_void, + reorderedFilterData: *mut ::core::ffi::c_void, + reorderBias: ::core::ffi::c_int, + biasData: *const ::core::ffi::c_void, + reorderedBiasData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnReorderFilterAndBias + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + reorderType, + filterData, + reorderedFilterData, + reorderBias, + biasData, + reorderedBiasData, + ) + } + pub unsafe fn cudnnGetConvolutionForwardWorkspaceSize( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + wDesc, + convDesc, + yDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionForward( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionForward + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + xDesc, + x, + wDesc, + w, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnConvolutionBiasActivationForward( + &self, + handle: cudnnHandle_t, + alpha1: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + alpha2: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + biasDesc: cudnnTensorDescriptor_t, + bias: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBiasActivationForward + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha1, + xDesc, + x, + wDesc, + w, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + alpha2, + zDesc, + z, + biasDesc, + bias, + activationDesc, + yDesc, + y, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithm( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardDataAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + dyDesc, + convDesc, + dxDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithmEx( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardDataAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + w, + dyDesc, + dy, + convDesc, + dxDesc, + dx, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithm_v7( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + diffDesc, + convDesc, + gradDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataWorkspaceSize( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + dyDesc, + convDesc, + dxDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionBackwardData( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + wDesc, + w, + dyDesc, + dy, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnGetFoldedConvBackwardDataDescriptors( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + transformFormat: cudnnTensorFormat_t, + foldedFilterDesc: cudnnFilterDescriptor_t, + paddedDiffDesc: cudnnTensorDescriptor_t, + foldedConvDesc: cudnnConvolutionDescriptor_t, + foldedGradDesc: cudnnTensorDescriptor_t, + filterFoldTransDesc: cudnnTensorTransformDescriptor_t, + diffPadTransDesc: cudnnTensorTransformDescriptor_t, + gradFoldTransDesc: cudnnTensorTransformDescriptor_t, + gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnGetFoldedConvBackwardDataDescriptors + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + diffDesc, + convDesc, + gradDesc, + transformFormat, + foldedFilterDesc, + paddedDiffDesc, + foldedConvDesc, + foldedGradDesc, + filterFoldTransDesc, + diffPadTransDesc, + gradFoldTransDesc, + gradUnfoldTransDesc, + ) + } + pub unsafe fn cudnnCnnInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnCnnInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithm( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardFilterAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + dyDesc, + convDesc, + dwDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithmEx( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardFilterAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + x, + dyDesc, + y, + convDesc, + dwDesc, + dw, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithm_v7( + &self, + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + srcDesc, + diffDesc, + convDesc, + gradDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardFilterWorkspaceSize( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + dyDesc, + convDesc, + gradDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionBackwardFilter( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardFilter + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + xDesc, + x, + dyDesc, + dy, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + dwDesc, + dw, + ) + } + pub unsafe fn cudnnConvolutionBackwardBias( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dbDesc: cudnnTensorDescriptor_t, + db: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardBias + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, dyDesc, dy, beta, dbDesc, db + ) + } + pub unsafe fn cudnnCreateFusedOpsConstParamPack( + &self, + constPack: *mut cudnnFusedOpsConstParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsConstParamPack + .as_ref() + .expect("Expected function, got error."))(constPack, ops) + } + pub unsafe fn cudnnDestroyFusedOpsConstParamPack( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsConstParamPack + .as_ref() + .expect("Expected function, got error."))(constPack) + } + pub unsafe fn cudnnSetFusedOpsConstParamPackAttribute( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetFusedOpsConstParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(constPack, paramLabel, param) + } + pub unsafe fn cudnnGetFusedOpsConstParamPackAttribute( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *mut ::core::ffi::c_void, + isNULL: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFusedOpsConstParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(constPack, paramLabel, param, isNULL) + } + pub unsafe fn cudnnCreateFusedOpsVariantParamPack( + &self, + varPack: *mut cudnnFusedOpsVariantParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsVariantParamPack + .as_ref() + .expect("Expected function, got error."))(varPack, ops) + } + pub unsafe fn cudnnDestroyFusedOpsVariantParamPack( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsVariantParamPack + .as_ref() + .expect("Expected function, got error."))(varPack) + } + pub unsafe fn cudnnSetFusedOpsVariantParamPackAttribute( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetFusedOpsVariantParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(varPack, paramLabel, ptr) + } + pub unsafe fn cudnnGetFusedOpsVariantParamPackAttribute( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetFusedOpsVariantParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(varPack, paramLabel, ptr) + } + pub unsafe fn cudnnCreateFusedOpsPlan( + &self, + plan: *mut cudnnFusedOpsPlan_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))(plan, ops) + } + pub unsafe fn cudnnDestroyFusedOpsPlan(&self, plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))(plan) + } + pub unsafe fn cudnnMakeFusedOpsPlan( + &self, + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + constPack: cudnnFusedOpsConstParamPack_t, + workspaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnMakeFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))( + handle, plan, constPack, workspaceSizeInBytes + ) + } + pub unsafe fn cudnnFusedOpsExecute( + &self, + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnFusedOpsExecute + .as_ref() + .expect("Expected function, got error."))(handle, plan, varPack) + } + pub unsafe fn cudnnCnnTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnCnnTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnBackendCreateDescriptor( + &self, + descriptorType: cudnnBackendDescriptorType_t, + descriptor: *mut cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendCreateDescriptor + .as_ref() + .expect("Expected function, got error."))(descriptorType, descriptor) + } + pub unsafe fn cudnnBackendDestroyDescriptor( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendDestroyDescriptor + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendInitialize( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendInitialize + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendFinalize( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendFinalize + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendSetAttribute( + &self, + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + elementCount: i64, + arrayOfElements: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBackendSetAttribute + .as_ref() + .expect("Expected function, got error."))( + descriptor, + attributeName, + attributeType, + elementCount, + arrayOfElements, + ) + } + pub unsafe fn cudnnBackendGetAttribute( + &self, + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + requestedElementCount: i64, + elementCount: *mut i64, + arrayOfElements: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBackendGetAttribute + .as_ref() + .expect("Expected function, got error."))( + descriptor, + attributeName, + attributeType, + requestedElementCount, + elementCount, + arrayOfElements, + ) + } + pub unsafe fn cudnnBackendExecute( + &self, + handle: cudnnHandle_t, + executionPlan: cudnnBackendDescriptor_t, + variantPack: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendExecute + .as_ref() + .expect("Expected function, got error."))(handle, executionPlan, variantPack) + } +} diff --git a/src/cudnn/sys/sys_11060.rs b/src/cudnn/sys/sys_11060.rs new file mode 100644 index 00000000..734a692b --- /dev/null +++ b/src/cudnn/sys/sys_11060.rs @@ -0,0 +1,10894 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnContext { + _unused: [u8; 0], +} +pub type cudnnHandle_t = *mut cudnnContext; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnStatus_t { + CUDNN_STATUS_SUCCESS = 0, + CUDNN_STATUS_NOT_INITIALIZED = 1, + CUDNN_STATUS_ALLOC_FAILED = 2, + CUDNN_STATUS_BAD_PARAM = 3, + CUDNN_STATUS_INTERNAL_ERROR = 4, + CUDNN_STATUS_INVALID_VALUE = 5, + CUDNN_STATUS_ARCH_MISMATCH = 6, + CUDNN_STATUS_MAPPING_ERROR = 7, + CUDNN_STATUS_EXECUTION_FAILED = 8, + CUDNN_STATUS_NOT_SUPPORTED = 9, + CUDNN_STATUS_LICENSE_ERROR = 10, + CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING = 11, + CUDNN_STATUS_RUNTIME_IN_PROGRESS = 12, + CUDNN_STATUS_RUNTIME_FP_OVERFLOW = 13, + CUDNN_STATUS_VERSION_MISMATCH = 14, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRuntimeTag_t { + _unused: [u8; 0], +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnErrQueryMode_t { + CUDNN_ERRQUERY_RAWCODE = 0, + CUDNN_ERRQUERY_NONBLOCKING = 1, + CUDNN_ERRQUERY_BLOCKING = 2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnTensorStruct { + _unused: [u8; 0], +} +pub type cudnnTensorDescriptor_t = *mut cudnnTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnPoolingStruct { + _unused: [u8; 0], +} +pub type cudnnPoolingDescriptor_t = *mut cudnnPoolingStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFilterStruct { + _unused: [u8; 0], +} +pub type cudnnFilterDescriptor_t = *mut cudnnFilterStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnLRNStruct { + _unused: [u8; 0], +} +pub type cudnnLRNDescriptor_t = *mut cudnnLRNStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnActivationStruct { + _unused: [u8; 0], +} +pub type cudnnActivationDescriptor_t = *mut cudnnActivationStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnSpatialTransformerStruct { + _unused: [u8; 0], +} +pub type cudnnSpatialTransformerDescriptor_t = *mut cudnnSpatialTransformerStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnOpTensorStruct { + _unused: [u8; 0], +} +pub type cudnnOpTensorDescriptor_t = *mut cudnnOpTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnReduceTensorStruct { + _unused: [u8; 0], +} +pub type cudnnReduceTensorDescriptor_t = *mut cudnnReduceTensorStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnCTCLossStruct { + _unused: [u8; 0], +} +pub type cudnnCTCLossDescriptor_t = *mut cudnnCTCLossStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnTensorTransformStruct { + _unused: [u8; 0], +} +pub type cudnnTensorTransformDescriptor_t = *mut cudnnTensorTransformStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDataType_t { + CUDNN_DATA_FLOAT = 0, + CUDNN_DATA_DOUBLE = 1, + CUDNN_DATA_HALF = 2, + CUDNN_DATA_INT8 = 3, + CUDNN_DATA_INT32 = 4, + CUDNN_DATA_INT8x4 = 5, + CUDNN_DATA_UINT8 = 6, + CUDNN_DATA_UINT8x4 = 7, + CUDNN_DATA_INT8x32 = 8, + CUDNN_DATA_BFLOAT16 = 9, + CUDNN_DATA_INT64 = 10, + CUDNN_DATA_BOOLEAN = 11, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnMathType_t { + CUDNN_DEFAULT_MATH = 0, + CUDNN_TENSOR_OP_MATH = 1, + CUDNN_TENSOR_OP_MATH_ALLOW_CONVERSION = 2, + CUDNN_FMA_MATH = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNanPropagation_t { + CUDNN_NOT_PROPAGATE_NAN = 0, + CUDNN_PROPAGATE_NAN = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDeterminism_t { + CUDNN_NON_DETERMINISTIC = 0, + CUDNN_DETERMINISTIC = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnTensorFormat_t { + CUDNN_TENSOR_NCHW = 0, + CUDNN_TENSOR_NHWC = 1, + CUDNN_TENSOR_NCHW_VECT_C = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFoldingDirection_t { + CUDNN_TRANSFORM_FOLD = 0, + CUDNN_TRANSFORM_UNFOLD = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnOpTensorOp_t { + CUDNN_OP_TENSOR_ADD = 0, + CUDNN_OP_TENSOR_MUL = 1, + CUDNN_OP_TENSOR_MIN = 2, + CUDNN_OP_TENSOR_MAX = 3, + CUDNN_OP_TENSOR_SQRT = 4, + CUDNN_OP_TENSOR_NOT = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReduceTensorOp_t { + CUDNN_REDUCE_TENSOR_ADD = 0, + CUDNN_REDUCE_TENSOR_MUL = 1, + CUDNN_REDUCE_TENSOR_MIN = 2, + CUDNN_REDUCE_TENSOR_MAX = 3, + CUDNN_REDUCE_TENSOR_AMAX = 4, + CUDNN_REDUCE_TENSOR_AVG = 5, + CUDNN_REDUCE_TENSOR_NORM1 = 6, + CUDNN_REDUCE_TENSOR_NORM2 = 7, + CUDNN_REDUCE_TENSOR_MUL_NO_ZEROS = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReduceTensorIndices_t { + CUDNN_REDUCE_TENSOR_NO_INDICES = 0, + CUDNN_REDUCE_TENSOR_FLATTENED_INDICES = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnIndicesType_t { + CUDNN_32BIT_INDICES = 0, + CUDNN_64BIT_INDICES = 1, + CUDNN_16BIT_INDICES = 2, + CUDNN_8BIT_INDICES = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSoftmaxAlgorithm_t { + CUDNN_SOFTMAX_FAST = 0, + CUDNN_SOFTMAX_ACCURATE = 1, + CUDNN_SOFTMAX_LOG = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSoftmaxMode_t { + CUDNN_SOFTMAX_MODE_INSTANCE = 0, + CUDNN_SOFTMAX_MODE_CHANNEL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPoolingMode_t { + CUDNN_POOLING_MAX = 0, + CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING = 1, + CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING = 2, + CUDNN_POOLING_MAX_DETERMINISTIC = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnActivationMode_t { + CUDNN_ACTIVATION_SIGMOID = 0, + CUDNN_ACTIVATION_RELU = 1, + CUDNN_ACTIVATION_TANH = 2, + CUDNN_ACTIVATION_CLIPPED_RELU = 3, + CUDNN_ACTIVATION_ELU = 4, + CUDNN_ACTIVATION_IDENTITY = 5, + CUDNN_ACTIVATION_SWISH = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnLRNMode_t { + CUDNN_LRN_CROSS_CHANNEL_DIM1 = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDivNormMode_t { + CUDNN_DIVNORM_PRECOMPUTED_MEANS = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBatchNormMode_t { + CUDNN_BATCHNORM_PER_ACTIVATION = 0, + CUDNN_BATCHNORM_SPATIAL = 1, + CUDNN_BATCHNORM_SPATIAL_PERSISTENT = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBatchNormOps_t { + CUDNN_BATCHNORM_OPS_BN = 0, + CUDNN_BATCHNORM_OPS_BN_ACTIVATION = 1, + CUDNN_BATCHNORM_OPS_BN_ADD_ACTIVATION = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormMode_t { + CUDNN_NORM_PER_ACTIVATION = 0, + CUDNN_NORM_PER_CHANNEL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormAlgo_t { + CUDNN_NORM_ALGO_STANDARD = 0, + CUDNN_NORM_ALGO_PERSIST = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnNormOps_t { + CUDNN_NORM_OPS_NORM = 0, + CUDNN_NORM_OPS_NORM_ACTIVATION = 1, + CUDNN_NORM_OPS_NORM_ADD_ACTIVATION = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSamplerType_t { + CUDNN_SAMPLER_BILINEAR = 0, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnDropoutStruct { + _unused: [u8; 0], +} +pub type cudnnDropoutDescriptor_t = *mut cudnnDropoutStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAlgorithmStruct { + _unused: [u8; 0], +} +pub type cudnnAlgorithmDescriptor_t = *mut cudnnAlgorithmStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAlgorithmPerformanceStruct { + _unused: [u8; 0], +} +pub type cudnnAlgorithmPerformance_t = *mut cudnnAlgorithmPerformanceStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionFwdAlgo_t { + CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM = 0, + CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM = 1, + CUDNN_CONVOLUTION_FWD_ALGO_GEMM = 2, + CUDNN_CONVOLUTION_FWD_ALGO_DIRECT = 3, + CUDNN_CONVOLUTION_FWD_ALGO_FFT = 4, + CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING = 5, + CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD = 6, + CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED = 7, + CUDNN_CONVOLUTION_FWD_ALGO_COUNT = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionBwdFilterAlgo_t { + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0 = 0, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1 = 1, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT = 2, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3 = 3, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD = 4, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED = 5, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING = 6, + CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionBwdDataAlgo_t { + CUDNN_CONVOLUTION_BWD_DATA_ALGO_0 = 0, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_1 = 1, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT = 2, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT_TILING = 3, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD = 4, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD_NONFUSED = 5, + CUDNN_CONVOLUTION_BWD_DATA_ALGO_COUNT = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNAlgo_t { + CUDNN_RNN_ALGO_STANDARD = 0, + CUDNN_RNN_ALGO_PERSIST_STATIC = 1, + CUDNN_RNN_ALGO_PERSIST_DYNAMIC = 2, + CUDNN_RNN_ALGO_PERSIST_STATIC_SMALL_H = 3, + CUDNN_RNN_ALGO_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnCTCLossAlgo_t { + CUDNN_CTC_LOSS_ALGO_DETERMINISTIC = 0, + CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC = 1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cudnnAlgorithmUnionStruct { + pub algo: cudnnAlgorithmUnionStruct_Algorithm, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cudnnAlgorithmUnionStruct_Algorithm { + pub convFwdAlgo: cudnnConvolutionFwdAlgo_t, + pub convBwdFilterAlgo: cudnnConvolutionBwdFilterAlgo_t, + pub convBwdDataAlgo: cudnnConvolutionBwdDataAlgo_t, + pub RNNAlgo: cudnnRNNAlgo_t, + pub CTCLossAlgo: cudnnCTCLossAlgo_t, +} +#[test] +fn bindgen_test_layout_cudnnAlgorithmUnionStruct_Algorithm() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(cudnnAlgorithmUnionStruct_Algorithm)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convFwdAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convFwdAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convBwdFilterAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convBwdFilterAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).convBwdDataAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(convBwdDataAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).RNNAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(RNNAlgo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).CTCLossAlgo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct_Algorithm), + "::", + stringify!(CTCLossAlgo) + ) + ); +} +impl Default for cudnnAlgorithmUnionStruct_Algorithm { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_cudnnAlgorithmUnionStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(cudnnAlgorithmUnionStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(cudnnAlgorithmUnionStruct)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnAlgorithmUnionStruct), + "::", + stringify!(algo) + ) + ); +} +impl Default for cudnnAlgorithmUnionStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnAlgorithm_t = cudnnAlgorithmUnionStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSeverity_t { + CUDNN_SEV_FATAL = 0, + CUDNN_SEV_ERROR = 1, + CUDNN_SEV_WARNING = 2, + CUDNN_SEV_INFO = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct cudnnDebugStruct { + pub cudnn_version: ::core::ffi::c_uint, + pub cudnnStatus: cudnnStatus_t, + pub time_sec: ::core::ffi::c_uint, + pub time_usec: ::core::ffi::c_uint, + pub time_delta: ::core::ffi::c_uint, + pub handle: cudnnHandle_t, + pub stream: cudaStream_t, + pub pid: ::core::ffi::c_ulonglong, + pub tid: ::core::ffi::c_ulonglong, + pub cudaDeviceId: ::core::ffi::c_int, + pub reserved: [::core::ffi::c_int; 15usize], +} +#[test] +fn bindgen_test_layout_cudnnDebugStruct() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!("Size of: ", stringify!(cudnnDebugStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(cudnnDebugStruct)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudnn_version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudnn_version) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudnnStatus) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudnnStatus) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_sec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_sec) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_usec) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_usec) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time_delta) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(time_delta) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).stream) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(stream) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pid) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(pid) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).tid) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(tid) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cudaDeviceId) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(cudaDeviceId) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(cudnnDebugStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnDebugStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnDebug_t = cudnnDebugStruct; +pub type cudnnCallback_t = ::core::option::Option< + unsafe extern "C" fn( + sev: cudnnSeverity_t, + udata: *mut ::core::ffi::c_void, + dbg: *const cudnnDebug_t, + msg: *const ::core::ffi::c_char, + ), +>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnForwardMode_t { + CUDNN_FWD_MODE_INFERENCE = 0, + CUDNN_FWD_MODE_TRAINING = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNMode_t { + CUDNN_RNN_RELU = 0, + CUDNN_RNN_TANH = 1, + CUDNN_LSTM = 2, + CUDNN_GRU = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNBiasMode_t { + CUDNN_RNN_NO_BIAS = 0, + CUDNN_RNN_SINGLE_INP_BIAS = 1, + CUDNN_RNN_DOUBLE_BIAS = 2, + CUDNN_RNN_SINGLE_REC_BIAS = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnDirectionMode_t { + CUDNN_UNIDIRECTIONAL = 0, + CUDNN_BIDIRECTIONAL = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNInputMode_t { + CUDNN_LINEAR_INPUT = 0, + CUDNN_SKIP_INPUT = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNClipMode_t { + CUDNN_RNN_CLIP_NONE = 0, + CUDNN_RNN_CLIP_MINMAX = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnRNNDataLayout_t { + CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED = 0, + CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED = 1, + CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED = 2, +} +pub type cudnnRNNPaddingMode_t = ::core::ffi::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRNNStruct { + _unused: [u8; 0], +} +pub type cudnnRNNDescriptor_t = *mut cudnnRNNStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnPersistentRNNPlan { + _unused: [u8; 0], +} +pub type cudnnPersistentRNNPlan_t = *mut cudnnPersistentRNNPlan; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnRNNDataStruct { + _unused: [u8; 0], +} +pub type cudnnRNNDataDescriptor_t = *mut cudnnRNNDataStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnSeqDataAxis_t { + CUDNN_SEQDATA_TIME_DIM = 0, + CUDNN_SEQDATA_BATCH_DIM = 1, + CUDNN_SEQDATA_BEAM_DIM = 2, + CUDNN_SEQDATA_VECT_DIM = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnSeqDataStruct { + _unused: [u8; 0], +} +pub type cudnnSeqDataDescriptor_t = *mut cudnnSeqDataStruct; +pub type cudnnAttnQueryMap_t = ::core::ffi::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnAttnStruct { + _unused: [u8; 0], +} +pub type cudnnAttnDescriptor_t = *mut cudnnAttnStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnMultiHeadAttnWeightKind_t { + CUDNN_MH_ATTN_Q_WEIGHTS = 0, + CUDNN_MH_ATTN_K_WEIGHTS = 1, + CUDNN_MH_ATTN_V_WEIGHTS = 2, + CUDNN_MH_ATTN_O_WEIGHTS = 3, + CUDNN_MH_ATTN_Q_BIASES = 4, + CUDNN_MH_ATTN_K_BIASES = 5, + CUDNN_MH_ATTN_V_BIASES = 6, + CUDNN_MH_ATTN_O_BIASES = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnWgradMode_t { + CUDNN_WGRAD_MODE_ADD = 0, + CUDNN_WGRAD_MODE_SET = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnLossNormalizationMode_t { + CUDNN_LOSS_NORMALIZATION_NONE = 0, + CUDNN_LOSS_NORMALIZATION_SOFTMAX = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnConvolutionStruct { + _unused: [u8; 0], +} +pub type cudnnConvolutionDescriptor_t = *mut cudnnConvolutionStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnConvolutionMode_t { + CUDNN_CONVOLUTION = 0, + CUDNN_CROSS_CORRELATION = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnReorderType_t { + CUDNN_DEFAULT_REORDER = 0, + CUDNN_NO_REORDER = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionFwdAlgoPerfStruct { + pub algo: cudnnConvolutionFwdAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionFwdAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(cudnnConvolutionFwdAlgoPerfStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionFwdAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionFwdAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionFwdAlgoPerf_t = cudnnConvolutionFwdAlgoPerfStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionBwdDataAlgoPerfStruct { + pub algo: cudnnConvolutionBwdDataAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionBwdDataAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!( + "Size of: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdDataAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionBwdDataAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionBwdDataAlgoPerf_t = cudnnConvolutionBwdDataAlgoPerfStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsConstParamStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsConstParamPack_t = *mut cudnnFusedOpsConstParamStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsVariantParamStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsVariantParamPack_t = *mut cudnnFusedOpsVariantParamStruct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cudnnFusedOpsPlanStruct { + _unused: [u8; 0], +} +pub type cudnnFusedOpsPlan_t = *mut cudnnFusedOpsPlanStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOps_t { + CUDNN_FUSED_SCALE_BIAS_ACTIVATION_CONV_BNSTATS = 0, + CUDNN_FUSED_SCALE_BIAS_ACTIVATION_WGRAD = 1, + CUDNN_FUSED_BN_FINALIZE_STATISTICS_TRAINING = 2, + CUDNN_FUSED_BN_FINALIZE_STATISTICS_INFERENCE = 3, + CUDNN_FUSED_CONV_SCALE_BIAS_ADD_ACTIVATION = 4, + CUDNN_FUSED_SCALE_BIAS_ADD_ACTIVATION_GEN_BITMASK = 5, + CUDNN_FUSED_DACTIVATION_FORK_DBATCHNORM = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsConstParamLabel_t { + CUDNN_PARAM_XDESC = 0, + CUDNN_PARAM_XDATA_PLACEHOLDER = 1, + CUDNN_PARAM_BN_MODE = 2, + CUDNN_PARAM_BN_EQSCALEBIAS_DESC = 3, + CUDNN_PARAM_BN_EQSCALE_PLACEHOLDER = 4, + CUDNN_PARAM_BN_EQBIAS_PLACEHOLDER = 5, + CUDNN_PARAM_ACTIVATION_DESC = 6, + CUDNN_PARAM_CONV_DESC = 7, + CUDNN_PARAM_WDESC = 8, + CUDNN_PARAM_WDATA_PLACEHOLDER = 9, + CUDNN_PARAM_DWDESC = 10, + CUDNN_PARAM_DWDATA_PLACEHOLDER = 11, + CUDNN_PARAM_YDESC = 12, + CUDNN_PARAM_YDATA_PLACEHOLDER = 13, + CUDNN_PARAM_DYDESC = 14, + CUDNN_PARAM_DYDATA_PLACEHOLDER = 15, + CUDNN_PARAM_YSTATS_DESC = 16, + CUDNN_PARAM_YSUM_PLACEHOLDER = 17, + CUDNN_PARAM_YSQSUM_PLACEHOLDER = 18, + CUDNN_PARAM_BN_SCALEBIAS_MEANVAR_DESC = 19, + CUDNN_PARAM_BN_SCALE_PLACEHOLDER = 20, + CUDNN_PARAM_BN_BIAS_PLACEHOLDER = 21, + CUDNN_PARAM_BN_SAVED_MEAN_PLACEHOLDER = 22, + CUDNN_PARAM_BN_SAVED_INVSTD_PLACEHOLDER = 23, + CUDNN_PARAM_BN_RUNNING_MEAN_PLACEHOLDER = 24, + CUDNN_PARAM_BN_RUNNING_VAR_PLACEHOLDER = 25, + CUDNN_PARAM_ZDESC = 26, + CUDNN_PARAM_ZDATA_PLACEHOLDER = 27, + CUDNN_PARAM_BN_Z_EQSCALEBIAS_DESC = 28, + CUDNN_PARAM_BN_Z_EQSCALE_PLACEHOLDER = 29, + CUDNN_PARAM_BN_Z_EQBIAS_PLACEHOLDER = 30, + CUDNN_PARAM_ACTIVATION_BITMASK_DESC = 31, + CUDNN_PARAM_ACTIVATION_BITMASK_PLACEHOLDER = 32, + CUDNN_PARAM_DXDESC = 33, + CUDNN_PARAM_DXDATA_PLACEHOLDER = 34, + CUDNN_PARAM_DZDESC = 35, + CUDNN_PARAM_DZDATA_PLACEHOLDER = 36, + CUDNN_PARAM_BN_DSCALE_PLACEHOLDER = 37, + CUDNN_PARAM_BN_DBIAS_PLACEHOLDER = 38, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsPointerPlaceHolder_t { + CUDNN_PTR_NULL = 0, + CUDNN_PTR_ELEM_ALIGNED = 1, + CUDNN_PTR_16B_ALIGNED = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnFusedOpsVariantParamLabel_t { + CUDNN_PTR_XDATA = 0, + CUDNN_PTR_BN_EQSCALE = 1, + CUDNN_PTR_BN_EQBIAS = 2, + CUDNN_PTR_WDATA = 3, + CUDNN_PTR_DWDATA = 4, + CUDNN_PTR_YDATA = 5, + CUDNN_PTR_DYDATA = 6, + CUDNN_PTR_YSUM = 7, + CUDNN_PTR_YSQSUM = 8, + CUDNN_PTR_WORKSPACE = 9, + CUDNN_PTR_BN_SCALE = 10, + CUDNN_PTR_BN_BIAS = 11, + CUDNN_PTR_BN_SAVED_MEAN = 12, + CUDNN_PTR_BN_SAVED_INVSTD = 13, + CUDNN_PTR_BN_RUNNING_MEAN = 14, + CUDNN_PTR_BN_RUNNING_VAR = 15, + CUDNN_PTR_ZDATA = 16, + CUDNN_PTR_BN_Z_EQSCALE = 17, + CUDNN_PTR_BN_Z_EQBIAS = 18, + CUDNN_PTR_ACTIVATION_BITMASK = 19, + CUDNN_PTR_DXDATA = 20, + CUDNN_PTR_DZDATA = 21, + CUDNN_PTR_BN_DSCALE = 22, + CUDNN_PTR_BN_DBIAS = 23, + CUDNN_SCALAR_SIZE_T_WORKSPACE_SIZE_IN_BYTES = 100, + CUDNN_SCALAR_INT64_T_BN_ACCUMULATION_COUNT = 101, + CUDNN_SCALAR_DOUBLE_BN_EXP_AVG_FACTOR = 102, + CUDNN_SCALAR_DOUBLE_BN_EPSILON = 103, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct cudnnConvolutionBwdFilterAlgoPerfStruct { + pub algo: cudnnConvolutionBwdFilterAlgo_t, + pub status: cudnnStatus_t, + pub time: f32, + pub memory: usize, + pub determinism: cudnnDeterminism_t, + pub mathType: cudnnMathType_t, + pub reserved: [::core::ffi::c_int; 3usize], +} +#[test] +fn bindgen_test_layout_cudnnConvolutionBwdFilterAlgoPerfStruct() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!( + "Size of: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).algo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(algo) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).time) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memory) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(memory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).determinism) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(determinism) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mathType) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(mathType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(cudnnConvolutionBwdFilterAlgoPerfStruct), + "::", + stringify!(reserved) + ) + ); +} +impl Default for cudnnConvolutionBwdFilterAlgoPerfStruct { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type cudnnConvolutionBwdFilterAlgoPerf_t = cudnnConvolutionBwdFilterAlgoPerfStruct; +pub type cudnnBackendDescriptor_t = *mut ::core::ffi::c_void; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPointwiseMode_t { + CUDNN_POINTWISE_ADD = 0, + CUDNN_POINTWISE_ADD_SQUARE = 5, + CUDNN_POINTWISE_DIV = 6, + CUDNN_POINTWISE_MAX = 3, + CUDNN_POINTWISE_MIN = 2, + CUDNN_POINTWISE_MOD = 7, + CUDNN_POINTWISE_MUL = 1, + CUDNN_POINTWISE_POW = 8, + CUDNN_POINTWISE_SUB = 9, + CUDNN_POINTWISE_ABS = 10, + CUDNN_POINTWISE_CEIL = 11, + CUDNN_POINTWISE_COS = 12, + CUDNN_POINTWISE_EXP = 13, + CUDNN_POINTWISE_FLOOR = 14, + CUDNN_POINTWISE_LOG = 15, + CUDNN_POINTWISE_NEG = 16, + CUDNN_POINTWISE_RSQRT = 17, + CUDNN_POINTWISE_SIN = 18, + CUDNN_POINTWISE_SQRT = 4, + CUDNN_POINTWISE_TAN = 19, + CUDNN_POINTWISE_RELU_FWD = 100, + CUDNN_POINTWISE_TANH_FWD = 101, + CUDNN_POINTWISE_SIGMOID_FWD = 102, + CUDNN_POINTWISE_ELU_FWD = 103, + CUDNN_POINTWISE_GELU_FWD = 104, + CUDNN_POINTWISE_SOFTPLUS_FWD = 105, + CUDNN_POINTWISE_SWISH_FWD = 106, + CUDNN_POINTWISE_RELU_BWD = 200, + CUDNN_POINTWISE_TANH_BWD = 201, + CUDNN_POINTWISE_SIGMOID_BWD = 202, + CUDNN_POINTWISE_ELU_BWD = 203, + CUDNN_POINTWISE_GELU_BWD = 204, + CUDNN_POINTWISE_SOFTPLUS_BWD = 205, + CUDNN_POINTWISE_SWISH_BWD = 206, + CUDNN_POINTWISE_CMP_EQ = 300, + CUDNN_POINTWISE_CMP_NEQ = 301, + CUDNN_POINTWISE_CMP_GT = 302, + CUDNN_POINTWISE_CMP_GE = 303, + CUDNN_POINTWISE_CMP_LT = 304, + CUDNN_POINTWISE_CMP_LE = 305, + CUDNN_POINTWISE_LOGICAL_AND = 400, + CUDNN_POINTWISE_LOGICAL_OR = 401, + CUDNN_POINTWISE_LOGICAL_NOT = 402, + CUDNN_POINTWISE_GEN_INDEX = 501, + CUDNN_POINTWISE_BINARY_SELECT = 601, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnResampleMode_t { + CUDNN_RESAMPLE_NEAREST = 0, + CUDNN_RESAMPLE_BILINEAR = 1, + CUDNN_RESAMPLE_AVGPOOL = 2, + CUDNN_RESAMPLE_MAXPOOL = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnGenStatsMode_t { + CUDNN_GENSTATS_SUM_SQSUM = 0, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBnFinalizeStatsMode_t { + CUDNN_BN_FINALIZE_STATISTICS_TRAINING = 0, + CUDNN_BN_FINALIZE_STATISTICS_INFERENCE = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendAttributeName_t { + CUDNN_ATTR_POINTWISE_MODE = 0, + CUDNN_ATTR_POINTWISE_MATH_PREC = 1, + CUDNN_ATTR_POINTWISE_NAN_PROPAGATION = 2, + CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP = 3, + CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP = 4, + CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE = 5, + CUDNN_ATTR_POINTWISE_ELU_ALPHA = 6, + CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA = 7, + CUDNN_ATTR_POINTWISE_SWISH_BETA = 8, + CUDNN_ATTR_POINTWISE_AXIS = 9, + CUDNN_ATTR_CONVOLUTION_COMP_TYPE = 100, + CUDNN_ATTR_CONVOLUTION_CONV_MODE = 101, + CUDNN_ATTR_CONVOLUTION_DILATIONS = 102, + CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES = 103, + CUDNN_ATTR_CONVOLUTION_POST_PADDINGS = 104, + CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS = 105, + CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS = 106, + CUDNN_ATTR_ENGINEHEUR_MODE = 200, + CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH = 201, + CUDNN_ATTR_ENGINEHEUR_RESULTS = 202, + CUDNN_ATTR_ENGINECFG_ENGINE = 300, + CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO = 301, + CUDNN_ATTR_ENGINECFG_KNOB_CHOICES = 302, + CUDNN_ATTR_EXECUTION_PLAN_HANDLE = 400, + CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG = 401, + CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE = 402, + CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS = 403, + CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS = 404, + CUDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION = 405, + CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID = 500, + CUDNN_ATTR_INTERMEDIATE_INFO_SIZE = 501, + CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS = 502, + CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES = 503, + CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE = 600, + CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE = 601, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA = 700, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA = 701, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC = 702, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W = 703, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X = 704, + CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y = 705, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA = 706, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA = 707, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC = 708, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W = 709, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX = 710, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY = 711, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA = 712, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA = 713, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC = 714, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW = 715, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X = 716, + CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY = 717, + CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR = 750, + CUDNN_ATTR_OPERATION_POINTWISE_XDESC = 751, + CUDNN_ATTR_OPERATION_POINTWISE_BDESC = 752, + CUDNN_ATTR_OPERATION_POINTWISE_YDESC = 753, + CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1 = 754, + CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2 = 755, + CUDNN_ATTR_OPERATION_POINTWISE_DXDESC = 756, + CUDNN_ATTR_OPERATION_POINTWISE_DYDESC = 757, + CUDNN_ATTR_OPERATION_POINTWISE_TDESC = 758, + CUDNN_ATTR_OPERATION_GENSTATS_MODE = 770, + CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC = 771, + CUDNN_ATTR_OPERATION_GENSTATS_XDESC = 772, + CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC = 773, + CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC = 774, + CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE = 780, + CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC = 781, + CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC = 782, + CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC = 783, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC = 784, + CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC = 785, + CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC = 786, + CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC = 787, + CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC = 788, + CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC = 789, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC = 790, + CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC = 791, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC = 792, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC = 793, + CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC = 794, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC = 795, + CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC = 796, + CUDNN_ATTR_OPERATIONGRAPH_HANDLE = 800, + CUDNN_ATTR_OPERATIONGRAPH_OPS = 801, + CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT = 802, + CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT = 900, + CUDNN_ATTR_TENSOR_DATA_TYPE = 901, + CUDNN_ATTR_TENSOR_DIMENSIONS = 902, + CUDNN_ATTR_TENSOR_STRIDES = 903, + CUDNN_ATTR_TENSOR_VECTOR_COUNT = 904, + CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION = 905, + CUDNN_ATTR_TENSOR_UNIQUE_ID = 906, + CUDNN_ATTR_TENSOR_IS_VIRTUAL = 907, + CUDNN_ATTR_TENSOR_IS_BY_VALUE = 908, + CUDNN_ATTR_TENSOR_REORDERING_MODE = 909, + CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS = 1000, + CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS = 1001, + CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES = 1002, + CUDNN_ATTR_VARIANT_PACK_WORKSPACE = 1003, + CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID = 1100, + CUDNN_ATTR_LAYOUT_INFO_TYPES = 1101, + CUDNN_ATTR_KNOB_INFO_TYPE = 1200, + CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE = 1201, + CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE = 1202, + CUDNN_ATTR_KNOB_INFO_STRIDE = 1203, + CUDNN_ATTR_ENGINE_OPERATION_GRAPH = 1300, + CUDNN_ATTR_ENGINE_GLOBAL_INDEX = 1301, + CUDNN_ATTR_ENGINE_KNOB_INFO = 1302, + CUDNN_ATTR_ENGINE_NUMERICAL_NOTE = 1303, + CUDNN_ATTR_ENGINE_LAYOUT_INFO = 1304, + CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE = 1305, + CUDNN_ATTR_MATMUL_COMP_TYPE = 1500, + CUDNN_ATTR_OPERATION_MATMUL_ADESC = 1520, + CUDNN_ATTR_OPERATION_MATMUL_BDESC = 1521, + CUDNN_ATTR_OPERATION_MATMUL_CDESC = 1522, + CUDNN_ATTR_OPERATION_MATMUL_DESC = 1523, + CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT = 1524, + CUDNN_ATTR_REDUCTION_OPERATOR = 1600, + CUDNN_ATTR_REDUCTION_COMP_TYPE = 1601, + CUDNN_ATTR_OPERATION_REDUCTION_XDESC = 1610, + CUDNN_ATTR_OPERATION_REDUCTION_YDESC = 1611, + CUDNN_ATTR_OPERATION_REDUCTION_DESC = 1612, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC = 1620, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC = 1621, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC = 1622, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC = 1623, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC = 1624, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC = 1625, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC = 1626, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC = 1627, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC = 1628, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC = 1629, + CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS = 1630, + CUDNN_ATTR_RESAMPLE_MODE = 1700, + CUDNN_ATTR_RESAMPLE_COMP_TYPE = 1701, + CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS = 1702, + CUDNN_ATTR_RESAMPLE_POST_PADDINGS = 1703, + CUDNN_ATTR_RESAMPLE_PRE_PADDINGS = 1704, + CUDNN_ATTR_RESAMPLE_STRIDES = 1705, + CUDNN_ATTR_RESAMPLE_WINDOW_DIMS = 1706, + CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION = 1707, + CUDNN_ATTR_RESAMPLE_PADDING_MODE = 1708, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC = 1710, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC = 1711, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC = 1712, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA = 1713, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA = 1714, + CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC = 1716, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC = 1720, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC = 1721, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC = 1722, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA = 1723, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA = 1724, + CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC = 1725, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendAttributeType_t { + CUDNN_TYPE_HANDLE = 0, + CUDNN_TYPE_DATA_TYPE = 1, + CUDNN_TYPE_BOOLEAN = 2, + CUDNN_TYPE_INT64 = 3, + CUDNN_TYPE_FLOAT = 4, + CUDNN_TYPE_DOUBLE = 5, + CUDNN_TYPE_VOID_PTR = 6, + CUDNN_TYPE_CONVOLUTION_MODE = 7, + CUDNN_TYPE_HEUR_MODE = 8, + CUDNN_TYPE_KNOB_TYPE = 9, + CUDNN_TYPE_NAN_PROPOGATION = 10, + CUDNN_TYPE_NUMERICAL_NOTE = 11, + CUDNN_TYPE_LAYOUT_TYPE = 12, + CUDNN_TYPE_ATTRIB_NAME = 13, + CUDNN_TYPE_POINTWISE_MODE = 14, + CUDNN_TYPE_BACKEND_DESCRIPTOR = 15, + CUDNN_TYPE_GENSTATS_MODE = 16, + CUDNN_TYPE_BN_FINALIZE_STATS_MODE = 17, + CUDNN_TYPE_REDUCTION_OPERATOR_TYPE = 18, + CUDNN_TYPE_BEHAVIOR_NOTE = 19, + CUDNN_TYPE_TENSOR_REORDERING_MODE = 20, + CUDNN_TYPE_RESAMPLE_MODE = 21, + CUDNN_TYPE_PADDING_MODE = 22, + CUDNN_TYPE_INT32 = 23, + CUDNN_TYPE_CHAR = 24, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendDescriptorType_t { + CUDNN_BACKEND_POINTWISE_DESCRIPTOR = 0, + CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR = 1, + CUDNN_BACKEND_ENGINE_DESCRIPTOR = 2, + CUDNN_BACKEND_ENGINECFG_DESCRIPTOR = 3, + CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR = 4, + CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR = 5, + CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR = 6, + CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR = 7, + CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR = 8, + CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR = 9, + CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR = 10, + CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR = 11, + CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR = 12, + CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR = 13, + CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR = 14, + CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR = 15, + CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR = 16, + CUDNN_BACKEND_TENSOR_DESCRIPTOR = 17, + CUDNN_BACKEND_MATMUL_DESCRIPTOR = 18, + CUDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR = 19, + CUDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR = 20, + CUDNN_BACKEND_REDUCTION_DESCRIPTOR = 21, + CUDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR = 22, + CUDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR = 23, + CUDNN_BACKEND_RESAMPLE_DESCRIPTOR = 24, + CUDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR = 25, + CUDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR = 26, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendNumericalNote_t { + CUDNN_NUMERICAL_NOTE_TENSOR_CORE = 0, + CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS = 1, + CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION = 2, + CUDNN_NUMERICAL_NOTE_FFT = 3, + CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC = 4, + CUDNN_NUMERICAL_NOTE_WINOGRAD = 5, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4 = 6, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6 = 7, + CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13 = 8, + CUDNN_NUMERICAL_NOTE_TYPE_COUNT = 9, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendBehaviorNote_t { + CUDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION = 0, + CUDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER = 1, + CUDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER = 2, + CUDNN_BEHAVIOR_NOTE_TYPE_COUNT = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendKnobType_t { + CUDNN_KNOB_TYPE_SPLIT_K = 0, + CUDNN_KNOB_TYPE_SWIZZLE = 1, + CUDNN_KNOB_TYPE_TILE_SIZE = 2, + CUDNN_KNOB_TYPE_USE_TEX = 3, + CUDNN_KNOB_TYPE_EDGE = 4, + CUDNN_KNOB_TYPE_KBLOCK = 5, + CUDNN_KNOB_TYPE_LDGA = 6, + CUDNN_KNOB_TYPE_LDGB = 7, + CUDNN_KNOB_TYPE_CHUNK_K = 8, + CUDNN_KNOB_TYPE_SPLIT_H = 9, + CUDNN_KNOB_TYPE_WINO_TILE = 10, + CUDNN_KNOB_TYPE_MULTIPLY = 11, + CUDNN_KNOB_TYPE_SPLIT_K_BUF = 12, + CUDNN_KNOB_TYPE_TILEK = 13, + CUDNN_KNOB_TYPE_STAGES = 14, + CUDNN_KNOB_TYPE_REDUCTION_MODE = 15, + CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE = 16, + CUDNN_KNOB_TYPE_SPLIT_K_SLC = 17, + CUDNN_KNOB_TYPE_IDX_MODE = 18, + CUDNN_KNOB_TYPE_SLICED = 19, + CUDNN_KNOB_TYPE_SPLIT_RS = 20, + CUDNN_KNOB_TYPE_SINGLEBUFFER = 21, + CUDNN_KNOB_TYPE_LDGC = 22, + CUDNN_KNOB_TYPE_SPECFILT = 23, + CUDNN_KNOB_TYPE_KERNEL_CFG = 24, + CUDNN_KNOB_TYPE_WORKSPACE = 25, + CUDNN_KNOB_TYPE_COUNTS = 26, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendLayoutType_t { + CUDNN_LAYOUT_TYPE_PREFERRED_NCHW = 0, + CUDNN_LAYOUT_TYPE_PREFERRED_NHWC = 1, + CUDNN_LAYOUT_TYPE_PREFERRED_PAD4CK = 2, + CUDNN_LAYOUT_TYPE_PREFERRED_PAD8CK = 3, + CUDNN_LAYOUT_TYPE_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendHeurMode_t { + CUDNN_HEUR_MODE_INSTANT = 0, + CUDNN_HEUR_MODE_B = 1, + CUDNN_HEUR_MODE_FALLBACK = 2, + CUDNN_HEUR_MODE_A = 3, + CUDNN_HEUR_MODES_COUNT = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnBackendTensorReordering_t { + CUDNN_TENSOR_REORDERING_NONE = 0, + CUDNN_TENSOR_REORDERING_INT8x32 = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudnnPaddingMode_t { + CUDNN_ZERO_PAD = 0, + CUDNN_NEG_INF_PAD = 1, + CUDNN_EDGE_VAL_PAD = 2, +} +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cudnnGetVersion: Result usize, ::libloading::Error>, + pub cudnnGetCudartVersion: Result usize, ::libloading::Error>, + pub cudnnGetErrorString: Result< + unsafe extern "C" fn(status: cudnnStatus_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub cudnnQueryRuntimeError: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rstatus: *mut cudnnStatus_t, + mode: cudnnErrQueryMode_t, + tag: *mut cudnnRuntimeTag_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreate: Result< + unsafe extern "C" fn(handle: *mut cudnnHandle_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroy: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnSetStream: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetStream: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, streamId: *mut cudaStream_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateTensorDescriptor: Result< + unsafe extern "C" fn(tensorDesc: *mut cudnnTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor4dDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor4dDescriptorEx: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + nStride: ::core::ffi::c_int, + cStride: ::core::ffi::c_int, + hStride: ::core::ffi::c_int, + wStride: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensor4dDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: *mut cudnnDataType_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + nStride: *mut ::core::ffi::c_int, + cStride: *mut ::core::ffi::c_int, + hStride: *mut ::core::ffi::c_int, + wStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorNdDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorNdDescriptorEx: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorNdDescriptor: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorSizeInBytes: Result< + unsafe extern "C" fn( + tensorDesc: cudnnTensorDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyTensorDescriptor: Result< + unsafe extern "C" fn(tensorDesc: cudnnTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnInitTransformDest: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + srcDesc: cudnnTensorDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + destSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateTensorTransformDescriptor: Result< + unsafe extern "C" fn(transformDesc: *mut cudnnTensorTransformDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensorTransformDescriptor: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + nbDims: u32, + destFormat: cudnnTensorFormat_t, + padBeforeA: *const i32, + padAfterA: *const i32, + foldA: *const u32, + direction: cudnnFoldingDirection_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetTensorTransformDescriptor: Result< + unsafe extern "C" fn( + transformDesc: cudnnTensorTransformDescriptor_t, + nbDimsRequested: u32, + destFormat: *mut cudnnTensorFormat_t, + padBeforeA: *mut i32, + padAfterA: *mut i32, + foldA: *mut u32, + direction: *mut cudnnFoldingDirection_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyTensorTransformDescriptor: Result< + unsafe extern "C" fn(transformDesc: cudnnTensorTransformDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformTensorEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnTensorDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnTensorDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAddTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateOpTensorDescriptor: Result< + unsafe extern "C" fn(opTensorDesc: *mut cudnnOpTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetOpTensorDescriptor: Result< + unsafe extern "C" fn( + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: cudnnOpTensorOp_t, + opTensorCompType: cudnnDataType_t, + opTensorNanOpt: cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetOpTensorDescriptor: Result< + unsafe extern "C" fn( + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: *mut cudnnOpTensorOp_t, + opTensorCompType: *mut cudnnDataType_t, + opTensorNanOpt: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyOpTensorDescriptor: Result< + unsafe extern "C" fn(opTensorDesc: cudnnOpTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + opTensorDesc: cudnnOpTensorDescriptor_t, + alpha1: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + alpha2: *const ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + B: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateReduceTensorDescriptor: Result< + unsafe extern "C" fn(reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetReduceTensorDescriptor: Result< + unsafe extern "C" fn( + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: cudnnReduceTensorOp_t, + reduceTensorCompType: cudnnDataType_t, + reduceTensorNanOpt: cudnnNanPropagation_t, + reduceTensorIndices: cudnnReduceTensorIndices_t, + reduceTensorIndicesType: cudnnIndicesType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReduceTensorDescriptor: Result< + unsafe extern "C" fn( + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: *mut cudnnReduceTensorOp_t, + reduceTensorCompType: *mut cudnnDataType_t, + reduceTensorNanOpt: *mut cudnnNanPropagation_t, + reduceTensorIndices: *mut cudnnReduceTensorIndices_t, + reduceTensorIndicesType: *mut cudnnIndicesType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyReduceTensorDescriptor: Result< + unsafe extern "C" fn(reduceTensorDesc: cudnnReduceTensorDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReductionIndicesSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetReductionWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnReduceTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + indices: *mut ::core::ffi::c_void, + indicesSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + valuePtr: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnScaleTensor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + alpha: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFilterDescriptor: Result< + unsafe extern "C" fn(filterDesc: *mut cudnnFilterDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFilter4dDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + k: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilter4dDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + k: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFilterNdDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + nbDims: ::core::ffi::c_int, + filterDimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilterNdDescriptor: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + nbDims: *mut ::core::ffi::c_int, + filterDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFilterSizeInBytes: Result< + unsafe extern "C" fn( + filterDesc: cudnnFilterDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnTransformFilter: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnFilterDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnFilterDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFilterDescriptor: Result< + unsafe extern "C" fn(filterDesc: cudnnFilterDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSoftmaxForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreatePoolingDescriptor: Result< + unsafe extern "C" fn(poolingDesc: *mut cudnnPoolingDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPooling2dDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + windowHeight: ::core::ffi::c_int, + windowWidth: ::core::ffi::c_int, + verticalPadding: ::core::ffi::c_int, + horizontalPadding: ::core::ffi::c_int, + verticalStride: ::core::ffi::c_int, + horizontalStride: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPooling2dDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + windowHeight: *mut ::core::ffi::c_int, + windowWidth: *mut ::core::ffi::c_int, + verticalPadding: *mut ::core::ffi::c_int, + horizontalPadding: *mut ::core::ffi::c_int, + verticalStride: *mut ::core::ffi::c_int, + horizontalStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPoolingNdDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + nbDims: ::core::ffi::c_int, + windowDimA: *const ::core::ffi::c_int, + paddingA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPoolingNdDescriptor: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + nbDims: *mut ::core::ffi::c_int, + windowDimA: *mut ::core::ffi::c_int, + paddingA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPoolingNdForwardOutputDim: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + nbDims: ::core::ffi::c_int, + outputTensorDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetPooling2dForwardOutputDim: Result< + unsafe extern "C" fn( + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyPoolingDescriptor: Result< + unsafe extern "C" fn(poolingDesc: cudnnPoolingDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnPoolingForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateActivationDescriptor: Result< + unsafe extern "C" fn(activationDesc: *mut cudnnActivationDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetActivationDescriptor: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + mode: cudnnActivationMode_t, + reluNanOpt: cudnnNanPropagation_t, + coef: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetActivationDescriptor: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + mode: *mut cudnnActivationMode_t, + reluNanOpt: *mut cudnnNanPropagation_t, + coef: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetActivationDescriptorSwishBeta: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + swish_beta: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetActivationDescriptorSwishBeta: Result< + unsafe extern "C" fn( + activationDesc: cudnnActivationDescriptor_t, + swish_beta: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyActivationDescriptor: Result< + unsafe extern "C" fn(activationDesc: cudnnActivationDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnActivationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateLRNDescriptor: Result< + unsafe extern "C" fn(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetLRNDescriptor: Result< + unsafe extern "C" fn( + normDesc: cudnnLRNDescriptor_t, + lrnN: ::core::ffi::c_uint, + lrnAlpha: f64, + lrnBeta: f64, + lrnK: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetLRNDescriptor: Result< + unsafe extern "C" fn( + normDesc: cudnnLRNDescriptor_t, + lrnN: *mut ::core::ffi::c_uint, + lrnAlpha: *mut f64, + lrnBeta: *mut f64, + lrnK: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyLRNDescriptor: Result< + unsafe extern "C" fn(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnLRNCrossChannelForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDivisiveNormalizationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDeriveBNTensorDescriptor: Result< + unsafe extern "C" fn( + derivedBnDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnBatchNormMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + epsilon: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDeriveNormTensorDescriptor: Result< + unsafe extern "C" fn( + derivedNormScaleBiasDesc: cudnnTensorDescriptor_t, + derivedNormMeanVarDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnNormMode_t, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + normMeanVarDesc: cudnnTensorDescriptor_t, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + epsilon: f64, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateSpatialTransformerDescriptor: Result< + unsafe extern "C" fn(stDesc: *mut cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetSpatialTransformerNdDescriptor: Result< + unsafe extern "C" fn( + stDesc: cudnnSpatialTransformerDescriptor_t, + samplerType: cudnnSamplerType_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroySpatialTransformerDescriptor: Result< + unsafe extern "C" fn(stDesc: cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfGridGeneratorForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + theta: *const ::core::ffi::c_void, + grid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfSamplerForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateDropoutDescriptor: Result< + unsafe extern "C" fn(dropoutDesc: *mut cudnnDropoutDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyDropoutDescriptor: Result< + unsafe extern "C" fn(dropoutDesc: cudnnDropoutDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutGetStatesSize: Result< + unsafe extern "C" fn(handle: cudnnHandle_t, sizeInBytes: *mut usize) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutGetReserveSpaceSize: Result< + unsafe extern "C" fn( + xdesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRestoreDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetDropoutDescriptor: Result< + unsafe extern "C" fn( + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: *mut f32, + states: *mut *mut ::core::ffi::c_void, + seed: *mut ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + xdesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + ydesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAlgorithmDescriptor: Result< + unsafe extern "C" fn(algoDesc: *mut cudnnAlgorithmDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAlgorithmDescriptor: Result< + unsafe extern "C" fn( + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: cudnnAlgorithm_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmDescriptor: Result< + unsafe extern "C" fn( + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: *mut cudnnAlgorithm_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCopyAlgorithmDescriptor: Result< + unsafe extern "C" fn( + src: cudnnAlgorithmDescriptor_t, + dest: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAlgorithmDescriptor: Result< + unsafe extern "C" fn(algoDesc: cudnnAlgorithmDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToCreate: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: cudnnAlgorithmDescriptor_t, + status: cudnnStatus_t, + time: f32, + memory: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + status: *mut cudnnStatus_t, + time: *mut f32, + memory: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAlgorithmPerformance: Result< + unsafe extern "C" fn( + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToDestroy: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAlgorithmSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSaveAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRestoreAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCallback: Result< + unsafe extern "C" fn( + mask: ::core::ffi::c_uint, + udata: *mut ::core::ffi::c_void, + fptr: cudnnCallback_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCallback: Result< + unsafe extern "C" fn( + mask: *mut ::core::ffi::c_uint, + udata: *mut *mut ::core::ffi::c_void, + fptr: *mut cudnnCallback_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpsInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnSoftmaxBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnPoolingBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnActivationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnLRNCrossChannelBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDivisiveNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dXdMeansDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dMeans: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationBackwardExWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetBatchNormalizationTrainingExReserveSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationForwardTrainingEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + dBnScaleResult: *mut ::core::ffi::c_void, + dBnBiasResult: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBatchNormalizationBackwardEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScaleData: *const ::core::ffi::c_void, + bnBiasData: *const ::core::ffi::c_void, + dBnScaleData: *mut ::core::ffi::c_void, + dBnBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationForwardTrainingWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + normScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationBackwardWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetNormalizationTrainingReserveSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnNormalizationBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + normScaleData: *const ::core::ffi::c_void, + normBiasData: *const ::core::ffi::c_void, + dNormScaleData: *mut ::core::ffi::c_void, + dNormBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfGridGeneratorBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + dgrid: *const ::core::ffi::c_void, + dtheta: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSpatialTfSamplerBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + alphaDgrid: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + betaDgrid: *const ::core::ffi::c_void, + dgrid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDropoutBackward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + dydesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxdesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnOpsTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnCreateRNNDescriptor: Result< + unsafe extern "C" fn(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyRNNDescriptor: Result< + unsafe extern "C" fn(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDescriptor_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + algo: cudnnRNNAlgo_t, + cellMode: cudnnRNNMode_t, + biasMode: cudnnRNNBiasMode_t, + dirMode: cudnnDirectionMode_t, + inputMode: cudnnRNNInputMode_t, + dataType: cudnnDataType_t, + mathPrec: cudnnDataType_t, + mathType: cudnnMathType_t, + inputSize: i32, + hiddenSize: i32, + projSize: i32, + numLayers: i32, + dropoutDesc: cudnnDropoutDescriptor_t, + auxFlags: u32, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDescriptor_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + algo: *mut cudnnRNNAlgo_t, + cellMode: *mut cudnnRNNMode_t, + biasMode: *mut cudnnRNNBiasMode_t, + dirMode: *mut cudnnDirectionMode_t, + inputMode: *mut cudnnRNNInputMode_t, + dataType: *mut cudnnDataType_t, + mathPrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + inputSize: *mut i32, + hiddenSize: *mut i32, + projSize: *mut i32, + numLayers: *mut i32, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + auxFlags: *mut u32, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDescriptor_v6: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: ::core::ffi::c_int, + numLayers: ::core::ffi::c_int, + dropoutDesc: cudnnDropoutDescriptor_t, + inputMode: cudnnRNNInputMode_t, + direction: cudnnDirectionMode_t, + cellMode: cudnnRNNMode_t, + algo: cudnnRNNAlgo_t, + mathPrec: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDescriptor_v6: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: *mut ::core::ffi::c_int, + numLayers: *mut ::core::ffi::c_int, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + inputMode: *mut cudnnRNNInputMode_t, + direction: *mut cudnnDirectionMode_t, + cellMode: *mut cudnnRNNMode_t, + algo: *mut cudnnRNNAlgo_t, + mathPrec: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNMatrixMathType: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + mType: cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNMatrixMathType: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + mType: *mut cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNBiasMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + biasMode: cudnnRNNBiasMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBiasMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + biasMode: *mut cudnnRNNBiasMode_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNSetClip_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNGetClip_v8: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNSetClip: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNGetClip: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNProjectionLayers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: ::core::ffi::c_int, + outProjSize: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNProjectionLayers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: *mut ::core::ffi::c_int, + outProjSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreatePersistentRNNPlan: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + minibatch: ::core::ffi::c_int, + dataType: cudnnDataType_t, + plan: *mut cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyPersistentRNNPlan: Result< + unsafe extern "C" fn(plan: cudnnPersistentRNNPlan_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetPersistentRNNPlan: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBuildRNNDynamic: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + miniBatch: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNTrainingReserveSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNTempSpaceSizes: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fMode: cudnnForwardMode_t, + xDesc: cudnnRNNDataDescriptor_t, + workSpaceSize: *mut usize, + reserveSpaceSize: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNParamsSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + dataType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWeightSpaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + weightSpaceSize: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNLinLayerMatrixParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerMatDesc: cudnnFilterDescriptor_t, + linLayerMat: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNLinLayerBiasParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerBiasDesc: cudnnFilterDescriptor_t, + linLayerBias: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNWeightParams: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: i32, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + linLayerID: i32, + mDesc: cudnnTensorDescriptor_t, + mAddr: *mut *mut ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + bAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardInference: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNPaddingMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: ::core::ffi::c_uint, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNPaddingMode: Result< + unsafe extern "C" fn( + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: *mut ::core::ffi::c_uint, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateRNNDataDescriptor: Result< + unsafe extern "C" fn(rnnDataDesc: *mut cudnnRNNDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyRNNDataDescriptor: Result< + unsafe extern "C" fn(rnnDataDesc: cudnnRNNDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNDataDescriptor: Result< + unsafe extern "C" fn( + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: cudnnDataType_t, + layout: cudnnRNNDataLayout_t, + maxSeqLength: ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + vectorSize: ::core::ffi::c_int, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNDataDescriptor: Result< + unsafe extern "C" fn( + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: *mut cudnnDataType_t, + layout: *mut cudnnRNNDataLayout_t, + maxSeqLength: *mut ::core::ffi::c_int, + batchSize: *mut ::core::ffi::c_int, + vectorSize: *mut ::core::ffi::c_int, + arrayLengthRequested: ::core::ffi::c_int, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardInferenceEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fwdMode: cudnnForwardMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + hy: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + cy: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetRNNAlgorithmDescriptor: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNForwardInferenceAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNForwardInferenceAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateSeqDataDescriptor: Result< + unsafe extern "C" fn(seqDataDesc: *mut cudnnSeqDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroySeqDataDescriptor: Result< + unsafe extern "C" fn(seqDataDesc: cudnnSeqDataDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetSeqDataDescriptor: Result< + unsafe extern "C" fn( + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + axes: *const cudnnSeqDataAxis_t, + seqLengthArraySize: usize, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetSeqDataDescriptor: Result< + unsafe extern "C" fn( + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + nbDimsRequested: ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + axes: *mut cudnnSeqDataAxis_t, + seqLengthArraySize: *mut usize, + seqLengthSizeRequested: usize, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateAttnDescriptor: Result< + unsafe extern "C" fn(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyAttnDescriptor: Result< + unsafe extern "C" fn(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetAttnDescriptor: Result< + unsafe extern "C" fn( + attnDesc: cudnnAttnDescriptor_t, + attnMode: ::core::ffi::c_uint, + nHeads: ::core::ffi::c_int, + smScaler: f64, + dataType: cudnnDataType_t, + computePrec: cudnnDataType_t, + mathType: cudnnMathType_t, + attnDropoutDesc: cudnnDropoutDescriptor_t, + postDropoutDesc: cudnnDropoutDescriptor_t, + qSize: ::core::ffi::c_int, + kSize: ::core::ffi::c_int, + vSize: ::core::ffi::c_int, + qProjSize: ::core::ffi::c_int, + kProjSize: ::core::ffi::c_int, + vProjSize: ::core::ffi::c_int, + oProjSize: ::core::ffi::c_int, + qoMaxSeqLength: ::core::ffi::c_int, + kvMaxSeqLength: ::core::ffi::c_int, + maxBatchSize: ::core::ffi::c_int, + maxBeamSize: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetAttnDescriptor: Result< + unsafe extern "C" fn( + attnDesc: cudnnAttnDescriptor_t, + attnMode: *mut ::core::ffi::c_uint, + nHeads: *mut ::core::ffi::c_int, + smScaler: *mut f64, + dataType: *mut cudnnDataType_t, + computePrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + attnDropoutDesc: *mut cudnnDropoutDescriptor_t, + postDropoutDesc: *mut cudnnDropoutDescriptor_t, + qSize: *mut ::core::ffi::c_int, + kSize: *mut ::core::ffi::c_int, + vSize: *mut ::core::ffi::c_int, + qProjSize: *mut ::core::ffi::c_int, + kProjSize: *mut ::core::ffi::c_int, + vProjSize: *mut ::core::ffi::c_int, + oProjSize: *mut ::core::ffi::c_int, + qoMaxSeqLength: *mut ::core::ffi::c_int, + kvMaxSeqLength: *mut ::core::ffi::c_int, + maxBatchSize: *mut ::core::ffi::c_int, + maxBeamSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetMultiHeadAttnBuffers: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + weightSizeInBytes: *mut usize, + workSpaceSizeInBytes: *mut usize, + reserveSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetMultiHeadAttnWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + wKind: cudnnMultiHeadAttnWeightKind_t, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + wDesc: cudnnTensorDescriptor_t, + wAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + currIdx: ::core::ffi::c_int, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsQO: *const ::core::ffi::c_int, + devSeqLengthsKV: *const ::core::ffi::c_int, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + residuals: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + oDesc: cudnnSeqDataDescriptor_t, + out: *mut ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAdvInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnRNNForwardTraining: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardData_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + devSeqLengths: *const i32, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + xDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + dhy: *const ::core::ffi::c_void, + dhx: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dcy: *const ::core::ffi::c_void, + dcx: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeights_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + addGrad: cudnnWgradMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + weightSpaceSize: usize, + dweightSpace: *mut ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNForwardTrainingEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardDataEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnRNNDataDescriptor_t, + dy: *const ::core::ffi::c_void, + dcDesc: cudnnRNNDataDescriptor_t, + dcAttn: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + dkDesc: cudnnRNNDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnRNNBackwardWeightsEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNForwardTrainingAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNForwardTrainingAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBackwardDataAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNBackwardDataAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetRNNBackwardWeightsAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindRNNBackwardWeightsAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsDQDO: *const ::core::ffi::c_int, + devSeqLengthsDKDV: *const ::core::ffi::c_int, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + dqDesc: cudnnSeqDataDescriptor_t, + dqueries: *mut ::core::ffi::c_void, + queries: *const ::core::ffi::c_void, + dkDesc: cudnnSeqDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + keys: *const ::core::ffi::c_void, + dvDesc: cudnnSeqDataDescriptor_t, + dvalues: *mut ::core::ffi::c_void, + values: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMultiHeadAttnBackwardWeights: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + addGrad: cudnnWgradMode_t, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + dweights: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateCTCLossDescriptor: Result< + unsafe extern "C" fn(ctcLossDesc: *mut cudnnCTCLossDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptor: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptorEx: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetCTCLossDescriptor_v8: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + maxLabelLength: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptor: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptorEx: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossDescriptor_v8: Result< + unsafe extern "C" fn( + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + maxLabelLength: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyCTCLossDescriptor: Result< + unsafe extern "C" fn(ctcLossDesc: cudnnCTCLossDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCTCLoss: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + hostLabels: *const ::core::ffi::c_int, + hostLabelLengths: *const ::core::ffi::c_int, + hostInputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCTCLoss_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetCTCLossWorkspaceSize_v8: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnAdvTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnCreateConvolutionDescriptor: Result< + unsafe extern "C" fn(convDesc: *mut cudnnConvolutionDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyConvolutionDescriptor: Result< + unsafe extern "C" fn(convDesc: cudnnConvolutionDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionMathType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + mathType: cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionMathType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + mathType: *mut cudnnMathType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionGroupCount: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + groupCount: ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionGroupCount: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + groupCount: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionReorderType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + reorderType: cudnnReorderType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionReorderType: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + reorderType: *mut cudnnReorderType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolution2dDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + pad_h: ::core::ffi::c_int, + pad_w: ::core::ffi::c_int, + u: ::core::ffi::c_int, + v: ::core::ffi::c_int, + dilation_h: ::core::ffi::c_int, + dilation_w: ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolution2dDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + pad_h: *mut ::core::ffi::c_int, + pad_w: *mut ::core::ffi::c_int, + u: *mut ::core::ffi::c_int, + v: *mut ::core::ffi::c_int, + dilation_h: *mut ::core::ffi::c_int, + dilation_w: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetConvolutionNdDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + arrayLength: ::core::ffi::c_int, + padA: *const ::core::ffi::c_int, + filterStrideA: *const ::core::ffi::c_int, + dilationA: *const ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionNdDescriptor: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + arrayLengthRequested: ::core::ffi::c_int, + arrayLength: *mut ::core::ffi::c_int, + padA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + dilationA: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolution2dForwardOutputDim: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionNdForwardOutputDim: Result< + unsafe extern "C" fn( + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + nbDims: ::core::ffi::c_int, + tensorOuputDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionForwardAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionForwardAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnIm2Col: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + colBuffer: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnReorderFilterAndBias: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + reorderType: cudnnReorderType_t, + filterData: *const ::core::ffi::c_void, + reorderedFilterData: *mut ::core::ffi::c_void, + reorderBias: ::core::ffi::c_int, + biasData: *const ::core::ffi::c_void, + reorderedBiasData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionForwardWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBiasActivationForward: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha1: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + alpha2: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + biasDesc: cudnnTensorDescriptor_t, + bias: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardDataAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardDataAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardDataWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardData: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFoldedConvBackwardDataDescriptors: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + transformFormat: cudnnTensorFormat_t, + foldedFilterDesc: cudnnFilterDescriptor_t, + paddedDiffDesc: cudnnTensorDescriptor_t, + foldedConvDesc: cudnnConvolutionDescriptor_t, + foldedGradDesc: cudnnTensorDescriptor_t, + filterFoldTransDesc: cudnnTensorTransformDescriptor_t, + diffPadTransDesc: cudnnTensorTransformDescriptor_t, + gradFoldTransDesc: cudnnTensorTransformDescriptor_t, + gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCnnInferVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnGetConvolutionBackwardFilterAlgorithmMaxCount: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardFilterAlgorithm: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFindConvolutionBackwardFilterAlgorithmEx: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardFilterAlgorithm_v7: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetConvolutionBackwardFilterWorkspaceSize: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardFilter: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnConvolutionBackwardBias: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dbDesc: cudnnTensorDescriptor_t, + db: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsConstParamPack: Result< + unsafe extern "C" fn( + constPack: *mut cudnnFusedOpsConstParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsConstParamPack: Result< + unsafe extern "C" fn(constPack: cudnnFusedOpsConstParamPack_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFusedOpsConstParamPackAttribute: Result< + unsafe extern "C" fn( + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFusedOpsConstParamPackAttribute: Result< + unsafe extern "C" fn( + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *mut ::core::ffi::c_void, + isNULL: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsVariantParamPack: Result< + unsafe extern "C" fn( + varPack: *mut cudnnFusedOpsVariantParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsVariantParamPack: Result< + unsafe extern "C" fn(varPack: cudnnFusedOpsVariantParamPack_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnSetFusedOpsVariantParamPackAttribute: Result< + unsafe extern "C" fn( + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnGetFusedOpsVariantParamPackAttribute: Result< + unsafe extern "C" fn( + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCreateFusedOpsPlan: Result< + unsafe extern "C" fn(plan: *mut cudnnFusedOpsPlan_t, ops: cudnnFusedOps_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnDestroyFusedOpsPlan: Result< + unsafe extern "C" fn(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnMakeFusedOpsPlan: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + constPack: cudnnFusedOpsConstParamPack_t, + workspaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnFusedOpsExecute: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnCnnTrainVersionCheck: + Result cudnnStatus_t, ::libloading::Error>, + pub cudnnBackendCreateDescriptor: Result< + unsafe extern "C" fn( + descriptorType: cudnnBackendDescriptorType_t, + descriptor: *mut cudnnBackendDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendDestroyDescriptor: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendInitialize: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendFinalize: Result< + unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendSetAttribute: Result< + unsafe extern "C" fn( + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + elementCount: i64, + arrayOfElements: *const ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendGetAttribute: Result< + unsafe extern "C" fn( + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + requestedElementCount: i64, + elementCount: *mut i64, + arrayOfElements: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t, + ::libloading::Error, + >, + pub cudnnBackendExecute: Result< + unsafe extern "C" fn( + handle: cudnnHandle_t, + executionPlan: cudnnBackendDescriptor_t, + variantPack: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cudnnGetVersion = __library.get(b"cudnnGetVersion\0").map(|sym| *sym); + let cudnnGetCudartVersion = __library.get(b"cudnnGetCudartVersion\0").map(|sym| *sym); + let cudnnGetErrorString = __library.get(b"cudnnGetErrorString\0").map(|sym| *sym); + let cudnnQueryRuntimeError = __library.get(b"cudnnQueryRuntimeError\0").map(|sym| *sym); + let cudnnGetProperty = __library.get(b"cudnnGetProperty\0").map(|sym| *sym); + let cudnnCreate = __library.get(b"cudnnCreate\0").map(|sym| *sym); + let cudnnDestroy = __library.get(b"cudnnDestroy\0").map(|sym| *sym); + let cudnnSetStream = __library.get(b"cudnnSetStream\0").map(|sym| *sym); + let cudnnGetStream = __library.get(b"cudnnGetStream\0").map(|sym| *sym); + let cudnnCreateTensorDescriptor = __library + .get(b"cudnnCreateTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensor4dDescriptor = __library + .get(b"cudnnSetTensor4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensor4dDescriptorEx = __library + .get(b"cudnnSetTensor4dDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetTensor4dDescriptor = __library + .get(b"cudnnGetTensor4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorNdDescriptor = __library + .get(b"cudnnSetTensorNdDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorNdDescriptorEx = __library + .get(b"cudnnSetTensorNdDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetTensorNdDescriptor = __library + .get(b"cudnnGetTensorNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetTensorSizeInBytes = __library + .get(b"cudnnGetTensorSizeInBytes\0") + .map(|sym| *sym); + let cudnnDestroyTensorDescriptor = __library + .get(b"cudnnDestroyTensorDescriptor\0") + .map(|sym| *sym); + let cudnnInitTransformDest = __library.get(b"cudnnInitTransformDest\0").map(|sym| *sym); + let cudnnCreateTensorTransformDescriptor = __library + .get(b"cudnnCreateTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnSetTensorTransformDescriptor = __library + .get(b"cudnnSetTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnGetTensorTransformDescriptor = __library + .get(b"cudnnGetTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyTensorTransformDescriptor = __library + .get(b"cudnnDestroyTensorTransformDescriptor\0") + .map(|sym| *sym); + let cudnnTransformTensor = __library.get(b"cudnnTransformTensor\0").map(|sym| *sym); + let cudnnTransformTensorEx = __library.get(b"cudnnTransformTensorEx\0").map(|sym| *sym); + let cudnnAddTensor = __library.get(b"cudnnAddTensor\0").map(|sym| *sym); + let cudnnCreateOpTensorDescriptor = __library + .get(b"cudnnCreateOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetOpTensorDescriptor = __library + .get(b"cudnnSetOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetOpTensorDescriptor = __library + .get(b"cudnnGetOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyOpTensorDescriptor = __library + .get(b"cudnnDestroyOpTensorDescriptor\0") + .map(|sym| *sym); + let cudnnOpTensor = __library.get(b"cudnnOpTensor\0").map(|sym| *sym); + let cudnnCreateReduceTensorDescriptor = __library + .get(b"cudnnCreateReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnSetReduceTensorDescriptor = __library + .get(b"cudnnSetReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetReduceTensorDescriptor = __library + .get(b"cudnnGetReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyReduceTensorDescriptor = __library + .get(b"cudnnDestroyReduceTensorDescriptor\0") + .map(|sym| *sym); + let cudnnGetReductionIndicesSize = __library + .get(b"cudnnGetReductionIndicesSize\0") + .map(|sym| *sym); + let cudnnGetReductionWorkspaceSize = __library + .get(b"cudnnGetReductionWorkspaceSize\0") + .map(|sym| *sym); + let cudnnReduceTensor = __library.get(b"cudnnReduceTensor\0").map(|sym| *sym); + let cudnnSetTensor = __library.get(b"cudnnSetTensor\0").map(|sym| *sym); + let cudnnScaleTensor = __library.get(b"cudnnScaleTensor\0").map(|sym| *sym); + let cudnnCreateFilterDescriptor = __library + .get(b"cudnnCreateFilterDescriptor\0") + .map(|sym| *sym); + let cudnnSetFilter4dDescriptor = __library + .get(b"cudnnSetFilter4dDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilter4dDescriptor = __library + .get(b"cudnnGetFilter4dDescriptor\0") + .map(|sym| *sym); + let cudnnSetFilterNdDescriptor = __library + .get(b"cudnnSetFilterNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilterNdDescriptor = __library + .get(b"cudnnGetFilterNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetFilterSizeInBytes = __library + .get(b"cudnnGetFilterSizeInBytes\0") + .map(|sym| *sym); + let cudnnTransformFilter = __library.get(b"cudnnTransformFilter\0").map(|sym| *sym); + let cudnnDestroyFilterDescriptor = __library + .get(b"cudnnDestroyFilterDescriptor\0") + .map(|sym| *sym); + let cudnnSoftmaxForward = __library.get(b"cudnnSoftmaxForward\0").map(|sym| *sym); + let cudnnCreatePoolingDescriptor = __library + .get(b"cudnnCreatePoolingDescriptor\0") + .map(|sym| *sym); + let cudnnSetPooling2dDescriptor = __library + .get(b"cudnnSetPooling2dDescriptor\0") + .map(|sym| *sym); + let cudnnGetPooling2dDescriptor = __library + .get(b"cudnnGetPooling2dDescriptor\0") + .map(|sym| *sym); + let cudnnSetPoolingNdDescriptor = __library + .get(b"cudnnSetPoolingNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetPoolingNdDescriptor = __library + .get(b"cudnnGetPoolingNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetPoolingNdForwardOutputDim = __library + .get(b"cudnnGetPoolingNdForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetPooling2dForwardOutputDim = __library + .get(b"cudnnGetPooling2dForwardOutputDim\0") + .map(|sym| *sym); + let cudnnDestroyPoolingDescriptor = __library + .get(b"cudnnDestroyPoolingDescriptor\0") + .map(|sym| *sym); + let cudnnPoolingForward = __library.get(b"cudnnPoolingForward\0").map(|sym| *sym); + let cudnnCreateActivationDescriptor = __library + .get(b"cudnnCreateActivationDescriptor\0") + .map(|sym| *sym); + let cudnnSetActivationDescriptor = __library + .get(b"cudnnSetActivationDescriptor\0") + .map(|sym| *sym); + let cudnnGetActivationDescriptor = __library + .get(b"cudnnGetActivationDescriptor\0") + .map(|sym| *sym); + let cudnnSetActivationDescriptorSwishBeta = __library + .get(b"cudnnSetActivationDescriptorSwishBeta\0") + .map(|sym| *sym); + let cudnnGetActivationDescriptorSwishBeta = __library + .get(b"cudnnGetActivationDescriptorSwishBeta\0") + .map(|sym| *sym); + let cudnnDestroyActivationDescriptor = __library + .get(b"cudnnDestroyActivationDescriptor\0") + .map(|sym| *sym); + let cudnnActivationForward = __library.get(b"cudnnActivationForward\0").map(|sym| *sym); + let cudnnCreateLRNDescriptor = __library.get(b"cudnnCreateLRNDescriptor\0").map(|sym| *sym); + let cudnnSetLRNDescriptor = __library.get(b"cudnnSetLRNDescriptor\0").map(|sym| *sym); + let cudnnGetLRNDescriptor = __library.get(b"cudnnGetLRNDescriptor\0").map(|sym| *sym); + let cudnnDestroyLRNDescriptor = __library + .get(b"cudnnDestroyLRNDescriptor\0") + .map(|sym| *sym); + let cudnnLRNCrossChannelForward = __library + .get(b"cudnnLRNCrossChannelForward\0") + .map(|sym| *sym); + let cudnnDivisiveNormalizationForward = __library + .get(b"cudnnDivisiveNormalizationForward\0") + .map(|sym| *sym); + let cudnnDeriveBNTensorDescriptor = __library + .get(b"cudnnDeriveBNTensorDescriptor\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardInference = __library + .get(b"cudnnBatchNormalizationForwardInference\0") + .map(|sym| *sym); + let cudnnDeriveNormTensorDescriptor = __library + .get(b"cudnnDeriveNormTensorDescriptor\0") + .map(|sym| *sym); + let cudnnNormalizationForwardInference = __library + .get(b"cudnnNormalizationForwardInference\0") + .map(|sym| *sym); + let cudnnCreateSpatialTransformerDescriptor = __library + .get(b"cudnnCreateSpatialTransformerDescriptor\0") + .map(|sym| *sym); + let cudnnSetSpatialTransformerNdDescriptor = __library + .get(b"cudnnSetSpatialTransformerNdDescriptor\0") + .map(|sym| *sym); + let cudnnDestroySpatialTransformerDescriptor = __library + .get(b"cudnnDestroySpatialTransformerDescriptor\0") + .map(|sym| *sym); + let cudnnSpatialTfGridGeneratorForward = __library + .get(b"cudnnSpatialTfGridGeneratorForward\0") + .map(|sym| *sym); + let cudnnSpatialTfSamplerForward = __library + .get(b"cudnnSpatialTfSamplerForward\0") + .map(|sym| *sym); + let cudnnCreateDropoutDescriptor = __library + .get(b"cudnnCreateDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyDropoutDescriptor = __library + .get(b"cudnnDestroyDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDropoutGetStatesSize = __library + .get(b"cudnnDropoutGetStatesSize\0") + .map(|sym| *sym); + let cudnnDropoutGetReserveSpaceSize = __library + .get(b"cudnnDropoutGetReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnSetDropoutDescriptor = __library + .get(b"cudnnSetDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnRestoreDropoutDescriptor = __library + .get(b"cudnnRestoreDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnGetDropoutDescriptor = __library + .get(b"cudnnGetDropoutDescriptor\0") + .map(|sym| *sym); + let cudnnDropoutForward = __library.get(b"cudnnDropoutForward\0").map(|sym| *sym); + let cudnnCreateAlgorithmDescriptor = __library + .get(b"cudnnCreateAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnSetAlgorithmDescriptor = __library + .get(b"cudnnSetAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnGetAlgorithmDescriptor = __library + .get(b"cudnnGetAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnCopyAlgorithmDescriptor = __library + .get(b"cudnnCopyAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyAlgorithmDescriptor = __library + .get(b"cudnnDestroyAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnCreateAlgorithmPerformance = __library + .get(b"cudnnCreateAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnSetAlgorithmPerformance = __library + .get(b"cudnnSetAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnGetAlgorithmPerformance = __library + .get(b"cudnnGetAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnDestroyAlgorithmPerformance = __library + .get(b"cudnnDestroyAlgorithmPerformance\0") + .map(|sym| *sym); + let cudnnGetAlgorithmSpaceSize = __library + .get(b"cudnnGetAlgorithmSpaceSize\0") + .map(|sym| *sym); + let cudnnSaveAlgorithm = __library.get(b"cudnnSaveAlgorithm\0").map(|sym| *sym); + let cudnnRestoreAlgorithm = __library.get(b"cudnnRestoreAlgorithm\0").map(|sym| *sym); + let cudnnSetCallback = __library.get(b"cudnnSetCallback\0").map(|sym| *sym); + let cudnnGetCallback = __library.get(b"cudnnGetCallback\0").map(|sym| *sym); + let cudnnOpsInferVersionCheck = __library + .get(b"cudnnOpsInferVersionCheck\0") + .map(|sym| *sym); + let cudnnSoftmaxBackward = __library.get(b"cudnnSoftmaxBackward\0").map(|sym| *sym); + let cudnnPoolingBackward = __library.get(b"cudnnPoolingBackward\0").map(|sym| *sym); + let cudnnActivationBackward = __library.get(b"cudnnActivationBackward\0").map(|sym| *sym); + let cudnnLRNCrossChannelBackward = __library + .get(b"cudnnLRNCrossChannelBackward\0") + .map(|sym| *sym); + let cudnnDivisiveNormalizationBackward = __library + .get(b"cudnnDivisiveNormalizationBackward\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize = __library + .get(b"cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationBackwardExWorkspaceSize = __library + .get(b"cudnnGetBatchNormalizationBackwardExWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetBatchNormalizationTrainingExReserveSpaceSize = __library + .get(b"cudnnGetBatchNormalizationTrainingExReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardTraining = __library + .get(b"cudnnBatchNormalizationForwardTraining\0") + .map(|sym| *sym); + let cudnnBatchNormalizationForwardTrainingEx = __library + .get(b"cudnnBatchNormalizationForwardTrainingEx\0") + .map(|sym| *sym); + let cudnnBatchNormalizationBackward = __library + .get(b"cudnnBatchNormalizationBackward\0") + .map(|sym| *sym); + let cudnnBatchNormalizationBackwardEx = __library + .get(b"cudnnBatchNormalizationBackwardEx\0") + .map(|sym| *sym); + let cudnnGetNormalizationForwardTrainingWorkspaceSize = __library + .get(b"cudnnGetNormalizationForwardTrainingWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetNormalizationBackwardWorkspaceSize = __library + .get(b"cudnnGetNormalizationBackwardWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetNormalizationTrainingReserveSpaceSize = __library + .get(b"cudnnGetNormalizationTrainingReserveSpaceSize\0") + .map(|sym| *sym); + let cudnnNormalizationForwardTraining = __library + .get(b"cudnnNormalizationForwardTraining\0") + .map(|sym| *sym); + let cudnnNormalizationBackward = __library + .get(b"cudnnNormalizationBackward\0") + .map(|sym| *sym); + let cudnnSpatialTfGridGeneratorBackward = __library + .get(b"cudnnSpatialTfGridGeneratorBackward\0") + .map(|sym| *sym); + let cudnnSpatialTfSamplerBackward = __library + .get(b"cudnnSpatialTfSamplerBackward\0") + .map(|sym| *sym); + let cudnnDropoutBackward = __library.get(b"cudnnDropoutBackward\0").map(|sym| *sym); + let cudnnOpsTrainVersionCheck = __library + .get(b"cudnnOpsTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnCreateRNNDescriptor = __library.get(b"cudnnCreateRNNDescriptor\0").map(|sym| *sym); + let cudnnDestroyRNNDescriptor = __library + .get(b"cudnnDestroyRNNDescriptor\0") + .map(|sym| *sym); + let cudnnSetRNNDescriptor_v8 = __library.get(b"cudnnSetRNNDescriptor_v8\0").map(|sym| *sym); + let cudnnGetRNNDescriptor_v8 = __library.get(b"cudnnGetRNNDescriptor_v8\0").map(|sym| *sym); + let cudnnSetRNNDescriptor_v6 = __library.get(b"cudnnSetRNNDescriptor_v6\0").map(|sym| *sym); + let cudnnGetRNNDescriptor_v6 = __library.get(b"cudnnGetRNNDescriptor_v6\0").map(|sym| *sym); + let cudnnSetRNNMatrixMathType = __library + .get(b"cudnnSetRNNMatrixMathType\0") + .map(|sym| *sym); + let cudnnGetRNNMatrixMathType = __library + .get(b"cudnnGetRNNMatrixMathType\0") + .map(|sym| *sym); + let cudnnSetRNNBiasMode = __library.get(b"cudnnSetRNNBiasMode\0").map(|sym| *sym); + let cudnnGetRNNBiasMode = __library.get(b"cudnnGetRNNBiasMode\0").map(|sym| *sym); + let cudnnRNNSetClip_v8 = __library.get(b"cudnnRNNSetClip_v8\0").map(|sym| *sym); + let cudnnRNNGetClip_v8 = __library.get(b"cudnnRNNGetClip_v8\0").map(|sym| *sym); + let cudnnRNNSetClip = __library.get(b"cudnnRNNSetClip\0").map(|sym| *sym); + let cudnnRNNGetClip = __library.get(b"cudnnRNNGetClip\0").map(|sym| *sym); + let cudnnSetRNNProjectionLayers = __library + .get(b"cudnnSetRNNProjectionLayers\0") + .map(|sym| *sym); + let cudnnGetRNNProjectionLayers = __library + .get(b"cudnnGetRNNProjectionLayers\0") + .map(|sym| *sym); + let cudnnCreatePersistentRNNPlan = __library + .get(b"cudnnCreatePersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnDestroyPersistentRNNPlan = __library + .get(b"cudnnDestroyPersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnSetPersistentRNNPlan = __library + .get(b"cudnnSetPersistentRNNPlan\0") + .map(|sym| *sym); + let cudnnBuildRNNDynamic = __library.get(b"cudnnBuildRNNDynamic\0").map(|sym| *sym); + let cudnnGetRNNWorkspaceSize = __library.get(b"cudnnGetRNNWorkspaceSize\0").map(|sym| *sym); + let cudnnGetRNNTrainingReserveSize = __library + .get(b"cudnnGetRNNTrainingReserveSize\0") + .map(|sym| *sym); + let cudnnGetRNNTempSpaceSizes = __library + .get(b"cudnnGetRNNTempSpaceSizes\0") + .map(|sym| *sym); + let cudnnGetRNNParamsSize = __library.get(b"cudnnGetRNNParamsSize\0").map(|sym| *sym); + let cudnnGetRNNWeightSpaceSize = __library + .get(b"cudnnGetRNNWeightSpaceSize\0") + .map(|sym| *sym); + let cudnnGetRNNLinLayerMatrixParams = __library + .get(b"cudnnGetRNNLinLayerMatrixParams\0") + .map(|sym| *sym); + let cudnnGetRNNLinLayerBiasParams = __library + .get(b"cudnnGetRNNLinLayerBiasParams\0") + .map(|sym| *sym); + let cudnnGetRNNWeightParams = __library.get(b"cudnnGetRNNWeightParams\0").map(|sym| *sym); + let cudnnRNNForwardInference = __library.get(b"cudnnRNNForwardInference\0").map(|sym| *sym); + let cudnnSetRNNPaddingMode = __library.get(b"cudnnSetRNNPaddingMode\0").map(|sym| *sym); + let cudnnGetRNNPaddingMode = __library.get(b"cudnnGetRNNPaddingMode\0").map(|sym| *sym); + let cudnnCreateRNNDataDescriptor = __library + .get(b"cudnnCreateRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyRNNDataDescriptor = __library + .get(b"cudnnDestroyRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnSetRNNDataDescriptor = __library + .get(b"cudnnSetRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnGetRNNDataDescriptor = __library + .get(b"cudnnGetRNNDataDescriptor\0") + .map(|sym| *sym); + let cudnnRNNForwardInferenceEx = __library + .get(b"cudnnRNNForwardInferenceEx\0") + .map(|sym| *sym); + let cudnnRNNForward = __library.get(b"cudnnRNNForward\0").map(|sym| *sym); + let cudnnSetRNNAlgorithmDescriptor = __library + .get(b"cudnnSetRNNAlgorithmDescriptor\0") + .map(|sym| *sym); + let cudnnGetRNNForwardInferenceAlgorithmMaxCount = __library + .get(b"cudnnGetRNNForwardInferenceAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNForwardInferenceAlgorithmEx = __library + .get(b"cudnnFindRNNForwardInferenceAlgorithmEx\0") + .map(|sym| *sym); + let cudnnCreateSeqDataDescriptor = __library + .get(b"cudnnCreateSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnDestroySeqDataDescriptor = __library + .get(b"cudnnDestroySeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnSetSeqDataDescriptor = __library + .get(b"cudnnSetSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnGetSeqDataDescriptor = __library + .get(b"cudnnGetSeqDataDescriptor\0") + .map(|sym| *sym); + let cudnnCreateAttnDescriptor = __library + .get(b"cudnnCreateAttnDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyAttnDescriptor = __library + .get(b"cudnnDestroyAttnDescriptor\0") + .map(|sym| *sym); + let cudnnSetAttnDescriptor = __library.get(b"cudnnSetAttnDescriptor\0").map(|sym| *sym); + let cudnnGetAttnDescriptor = __library.get(b"cudnnGetAttnDescriptor\0").map(|sym| *sym); + let cudnnGetMultiHeadAttnBuffers = __library + .get(b"cudnnGetMultiHeadAttnBuffers\0") + .map(|sym| *sym); + let cudnnGetMultiHeadAttnWeights = __library + .get(b"cudnnGetMultiHeadAttnWeights\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnForward = __library + .get(b"cudnnMultiHeadAttnForward\0") + .map(|sym| *sym); + let cudnnAdvInferVersionCheck = __library + .get(b"cudnnAdvInferVersionCheck\0") + .map(|sym| *sym); + let cudnnRNNForwardTraining = __library.get(b"cudnnRNNForwardTraining\0").map(|sym| *sym); + let cudnnRNNBackwardData = __library.get(b"cudnnRNNBackwardData\0").map(|sym| *sym); + let cudnnRNNBackwardData_v8 = __library.get(b"cudnnRNNBackwardData_v8\0").map(|sym| *sym); + let cudnnRNNBackwardWeights = __library.get(b"cudnnRNNBackwardWeights\0").map(|sym| *sym); + let cudnnRNNBackwardWeights_v8 = __library + .get(b"cudnnRNNBackwardWeights_v8\0") + .map(|sym| *sym); + let cudnnRNNForwardTrainingEx = __library + .get(b"cudnnRNNForwardTrainingEx\0") + .map(|sym| *sym); + let cudnnRNNBackwardDataEx = __library.get(b"cudnnRNNBackwardDataEx\0").map(|sym| *sym); + let cudnnRNNBackwardWeightsEx = __library + .get(b"cudnnRNNBackwardWeightsEx\0") + .map(|sym| *sym); + let cudnnGetRNNForwardTrainingAlgorithmMaxCount = __library + .get(b"cudnnGetRNNForwardTrainingAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNForwardTrainingAlgorithmEx = __library + .get(b"cudnnFindRNNForwardTrainingAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetRNNBackwardDataAlgorithmMaxCount = __library + .get(b"cudnnGetRNNBackwardDataAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNBackwardDataAlgorithmEx = __library + .get(b"cudnnFindRNNBackwardDataAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetRNNBackwardWeightsAlgorithmMaxCount = __library + .get(b"cudnnGetRNNBackwardWeightsAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindRNNBackwardWeightsAlgorithmEx = __library + .get(b"cudnnFindRNNBackwardWeightsAlgorithmEx\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnBackwardData = __library + .get(b"cudnnMultiHeadAttnBackwardData\0") + .map(|sym| *sym); + let cudnnMultiHeadAttnBackwardWeights = __library + .get(b"cudnnMultiHeadAttnBackwardWeights\0") + .map(|sym| *sym); + let cudnnCreateCTCLossDescriptor = __library + .get(b"cudnnCreateCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptor = __library + .get(b"cudnnSetCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptorEx = __library + .get(b"cudnnSetCTCLossDescriptorEx\0") + .map(|sym| *sym); + let cudnnSetCTCLossDescriptor_v8 = __library + .get(b"cudnnSetCTCLossDescriptor_v8\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptor = __library + .get(b"cudnnGetCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptorEx = __library + .get(b"cudnnGetCTCLossDescriptorEx\0") + .map(|sym| *sym); + let cudnnGetCTCLossDescriptor_v8 = __library + .get(b"cudnnGetCTCLossDescriptor_v8\0") + .map(|sym| *sym); + let cudnnDestroyCTCLossDescriptor = __library + .get(b"cudnnDestroyCTCLossDescriptor\0") + .map(|sym| *sym); + let cudnnCTCLoss = __library.get(b"cudnnCTCLoss\0").map(|sym| *sym); + let cudnnCTCLoss_v8 = __library.get(b"cudnnCTCLoss_v8\0").map(|sym| *sym); + let cudnnGetCTCLossWorkspaceSize = __library + .get(b"cudnnGetCTCLossWorkspaceSize\0") + .map(|sym| *sym); + let cudnnGetCTCLossWorkspaceSize_v8 = __library + .get(b"cudnnGetCTCLossWorkspaceSize_v8\0") + .map(|sym| *sym); + let cudnnAdvTrainVersionCheck = __library + .get(b"cudnnAdvTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnCreateConvolutionDescriptor = __library + .get(b"cudnnCreateConvolutionDescriptor\0") + .map(|sym| *sym); + let cudnnDestroyConvolutionDescriptor = __library + .get(b"cudnnDestroyConvolutionDescriptor\0") + .map(|sym| *sym); + let cudnnSetConvolutionMathType = __library + .get(b"cudnnSetConvolutionMathType\0") + .map(|sym| *sym); + let cudnnGetConvolutionMathType = __library + .get(b"cudnnGetConvolutionMathType\0") + .map(|sym| *sym); + let cudnnSetConvolutionGroupCount = __library + .get(b"cudnnSetConvolutionGroupCount\0") + .map(|sym| *sym); + let cudnnGetConvolutionGroupCount = __library + .get(b"cudnnGetConvolutionGroupCount\0") + .map(|sym| *sym); + let cudnnSetConvolutionReorderType = __library + .get(b"cudnnSetConvolutionReorderType\0") + .map(|sym| *sym); + let cudnnGetConvolutionReorderType = __library + .get(b"cudnnGetConvolutionReorderType\0") + .map(|sym| *sym); + let cudnnSetConvolution2dDescriptor = __library + .get(b"cudnnSetConvolution2dDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolution2dDescriptor = __library + .get(b"cudnnGetConvolution2dDescriptor\0") + .map(|sym| *sym); + let cudnnSetConvolutionNdDescriptor = __library + .get(b"cudnnSetConvolutionNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolutionNdDescriptor = __library + .get(b"cudnnGetConvolutionNdDescriptor\0") + .map(|sym| *sym); + let cudnnGetConvolution2dForwardOutputDim = __library + .get(b"cudnnGetConvolution2dForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetConvolutionNdForwardOutputDim = __library + .get(b"cudnnGetConvolutionNdForwardOutputDim\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionForwardAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionForwardAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnFindConvolutionForwardAlgorithm = __library + .get(b"cudnnFindConvolutionForwardAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionForwardAlgorithmEx = __library + .get(b"cudnnFindConvolutionForwardAlgorithmEx\0") + .map(|sym| *sym); + let cudnnIm2Col = __library.get(b"cudnnIm2Col\0").map(|sym| *sym); + let cudnnReorderFilterAndBias = __library + .get(b"cudnnReorderFilterAndBias\0") + .map(|sym| *sym); + let cudnnGetConvolutionForwardWorkspaceSize = __library + .get(b"cudnnGetConvolutionForwardWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionForward = __library.get(b"cudnnConvolutionForward\0").map(|sym| *sym); + let cudnnConvolutionBiasActivationForward = __library + .get(b"cudnnConvolutionBiasActivationForward\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionBackwardDataAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardDataAlgorithm = __library + .get(b"cudnnFindConvolutionBackwardDataAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardDataAlgorithmEx = __library + .get(b"cudnnFindConvolutionBackwardDataAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionBackwardDataAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardDataWorkspaceSize = __library + .get(b"cudnnGetConvolutionBackwardDataWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardData = __library + .get(b"cudnnConvolutionBackwardData\0") + .map(|sym| *sym); + let cudnnGetFoldedConvBackwardDataDescriptors = __library + .get(b"cudnnGetFoldedConvBackwardDataDescriptors\0") + .map(|sym| *sym); + let cudnnCnnInferVersionCheck = __library + .get(b"cudnnCnnInferVersionCheck\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterAlgorithmMaxCount = __library + .get(b"cudnnGetConvolutionBackwardFilterAlgorithmMaxCount\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardFilterAlgorithm = __library + .get(b"cudnnFindConvolutionBackwardFilterAlgorithm\0") + .map(|sym| *sym); + let cudnnFindConvolutionBackwardFilterAlgorithmEx = __library + .get(b"cudnnFindConvolutionBackwardFilterAlgorithmEx\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterAlgorithm_v7 = __library + .get(b"cudnnGetConvolutionBackwardFilterAlgorithm_v7\0") + .map(|sym| *sym); + let cudnnGetConvolutionBackwardFilterWorkspaceSize = __library + .get(b"cudnnGetConvolutionBackwardFilterWorkspaceSize\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardFilter = __library + .get(b"cudnnConvolutionBackwardFilter\0") + .map(|sym| *sym); + let cudnnConvolutionBackwardBias = __library + .get(b"cudnnConvolutionBackwardBias\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsConstParamPack = __library + .get(b"cudnnCreateFusedOpsConstParamPack\0") + .map(|sym| *sym); + let cudnnDestroyFusedOpsConstParamPack = __library + .get(b"cudnnDestroyFusedOpsConstParamPack\0") + .map(|sym| *sym); + let cudnnSetFusedOpsConstParamPackAttribute = __library + .get(b"cudnnSetFusedOpsConstParamPackAttribute\0") + .map(|sym| *sym); + let cudnnGetFusedOpsConstParamPackAttribute = __library + .get(b"cudnnGetFusedOpsConstParamPackAttribute\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsVariantParamPack = __library + .get(b"cudnnCreateFusedOpsVariantParamPack\0") + .map(|sym| *sym); + let cudnnDestroyFusedOpsVariantParamPack = __library + .get(b"cudnnDestroyFusedOpsVariantParamPack\0") + .map(|sym| *sym); + let cudnnSetFusedOpsVariantParamPackAttribute = __library + .get(b"cudnnSetFusedOpsVariantParamPackAttribute\0") + .map(|sym| *sym); + let cudnnGetFusedOpsVariantParamPackAttribute = __library + .get(b"cudnnGetFusedOpsVariantParamPackAttribute\0") + .map(|sym| *sym); + let cudnnCreateFusedOpsPlan = __library.get(b"cudnnCreateFusedOpsPlan\0").map(|sym| *sym); + let cudnnDestroyFusedOpsPlan = __library.get(b"cudnnDestroyFusedOpsPlan\0").map(|sym| *sym); + let cudnnMakeFusedOpsPlan = __library.get(b"cudnnMakeFusedOpsPlan\0").map(|sym| *sym); + let cudnnFusedOpsExecute = __library.get(b"cudnnFusedOpsExecute\0").map(|sym| *sym); + let cudnnCnnTrainVersionCheck = __library + .get(b"cudnnCnnTrainVersionCheck\0") + .map(|sym| *sym); + let cudnnBackendCreateDescriptor = __library + .get(b"cudnnBackendCreateDescriptor\0") + .map(|sym| *sym); + let cudnnBackendDestroyDescriptor = __library + .get(b"cudnnBackendDestroyDescriptor\0") + .map(|sym| *sym); + let cudnnBackendInitialize = __library.get(b"cudnnBackendInitialize\0").map(|sym| *sym); + let cudnnBackendFinalize = __library.get(b"cudnnBackendFinalize\0").map(|sym| *sym); + let cudnnBackendSetAttribute = __library.get(b"cudnnBackendSetAttribute\0").map(|sym| *sym); + let cudnnBackendGetAttribute = __library.get(b"cudnnBackendGetAttribute\0").map(|sym| *sym); + let cudnnBackendExecute = __library.get(b"cudnnBackendExecute\0").map(|sym| *sym); + Ok(Lib { + __library, + cudnnGetVersion, + cudnnGetCudartVersion, + cudnnGetErrorString, + cudnnQueryRuntimeError, + cudnnGetProperty, + cudnnCreate, + cudnnDestroy, + cudnnSetStream, + cudnnGetStream, + cudnnCreateTensorDescriptor, + cudnnSetTensor4dDescriptor, + cudnnSetTensor4dDescriptorEx, + cudnnGetTensor4dDescriptor, + cudnnSetTensorNdDescriptor, + cudnnSetTensorNdDescriptorEx, + cudnnGetTensorNdDescriptor, + cudnnGetTensorSizeInBytes, + cudnnDestroyTensorDescriptor, + cudnnInitTransformDest, + cudnnCreateTensorTransformDescriptor, + cudnnSetTensorTransformDescriptor, + cudnnGetTensorTransformDescriptor, + cudnnDestroyTensorTransformDescriptor, + cudnnTransformTensor, + cudnnTransformTensorEx, + cudnnAddTensor, + cudnnCreateOpTensorDescriptor, + cudnnSetOpTensorDescriptor, + cudnnGetOpTensorDescriptor, + cudnnDestroyOpTensorDescriptor, + cudnnOpTensor, + cudnnCreateReduceTensorDescriptor, + cudnnSetReduceTensorDescriptor, + cudnnGetReduceTensorDescriptor, + cudnnDestroyReduceTensorDescriptor, + cudnnGetReductionIndicesSize, + cudnnGetReductionWorkspaceSize, + cudnnReduceTensor, + cudnnSetTensor, + cudnnScaleTensor, + cudnnCreateFilterDescriptor, + cudnnSetFilter4dDescriptor, + cudnnGetFilter4dDescriptor, + cudnnSetFilterNdDescriptor, + cudnnGetFilterNdDescriptor, + cudnnGetFilterSizeInBytes, + cudnnTransformFilter, + cudnnDestroyFilterDescriptor, + cudnnSoftmaxForward, + cudnnCreatePoolingDescriptor, + cudnnSetPooling2dDescriptor, + cudnnGetPooling2dDescriptor, + cudnnSetPoolingNdDescriptor, + cudnnGetPoolingNdDescriptor, + cudnnGetPoolingNdForwardOutputDim, + cudnnGetPooling2dForwardOutputDim, + cudnnDestroyPoolingDescriptor, + cudnnPoolingForward, + cudnnCreateActivationDescriptor, + cudnnSetActivationDescriptor, + cudnnGetActivationDescriptor, + cudnnSetActivationDescriptorSwishBeta, + cudnnGetActivationDescriptorSwishBeta, + cudnnDestroyActivationDescriptor, + cudnnActivationForward, + cudnnCreateLRNDescriptor, + cudnnSetLRNDescriptor, + cudnnGetLRNDescriptor, + cudnnDestroyLRNDescriptor, + cudnnLRNCrossChannelForward, + cudnnDivisiveNormalizationForward, + cudnnDeriveBNTensorDescriptor, + cudnnBatchNormalizationForwardInference, + cudnnDeriveNormTensorDescriptor, + cudnnNormalizationForwardInference, + cudnnCreateSpatialTransformerDescriptor, + cudnnSetSpatialTransformerNdDescriptor, + cudnnDestroySpatialTransformerDescriptor, + cudnnSpatialTfGridGeneratorForward, + cudnnSpatialTfSamplerForward, + cudnnCreateDropoutDescriptor, + cudnnDestroyDropoutDescriptor, + cudnnDropoutGetStatesSize, + cudnnDropoutGetReserveSpaceSize, + cudnnSetDropoutDescriptor, + cudnnRestoreDropoutDescriptor, + cudnnGetDropoutDescriptor, + cudnnDropoutForward, + cudnnCreateAlgorithmDescriptor, + cudnnSetAlgorithmDescriptor, + cudnnGetAlgorithmDescriptor, + cudnnCopyAlgorithmDescriptor, + cudnnDestroyAlgorithmDescriptor, + cudnnCreateAlgorithmPerformance, + cudnnSetAlgorithmPerformance, + cudnnGetAlgorithmPerformance, + cudnnDestroyAlgorithmPerformance, + cudnnGetAlgorithmSpaceSize, + cudnnSaveAlgorithm, + cudnnRestoreAlgorithm, + cudnnSetCallback, + cudnnGetCallback, + cudnnOpsInferVersionCheck, + cudnnSoftmaxBackward, + cudnnPoolingBackward, + cudnnActivationBackward, + cudnnLRNCrossChannelBackward, + cudnnDivisiveNormalizationBackward, + cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize, + cudnnGetBatchNormalizationBackwardExWorkspaceSize, + cudnnGetBatchNormalizationTrainingExReserveSpaceSize, + cudnnBatchNormalizationForwardTraining, + cudnnBatchNormalizationForwardTrainingEx, + cudnnBatchNormalizationBackward, + cudnnBatchNormalizationBackwardEx, + cudnnGetNormalizationForwardTrainingWorkspaceSize, + cudnnGetNormalizationBackwardWorkspaceSize, + cudnnGetNormalizationTrainingReserveSpaceSize, + cudnnNormalizationForwardTraining, + cudnnNormalizationBackward, + cudnnSpatialTfGridGeneratorBackward, + cudnnSpatialTfSamplerBackward, + cudnnDropoutBackward, + cudnnOpsTrainVersionCheck, + cudnnCreateRNNDescriptor, + cudnnDestroyRNNDescriptor, + cudnnSetRNNDescriptor_v8, + cudnnGetRNNDescriptor_v8, + cudnnSetRNNDescriptor_v6, + cudnnGetRNNDescriptor_v6, + cudnnSetRNNMatrixMathType, + cudnnGetRNNMatrixMathType, + cudnnSetRNNBiasMode, + cudnnGetRNNBiasMode, + cudnnRNNSetClip_v8, + cudnnRNNGetClip_v8, + cudnnRNNSetClip, + cudnnRNNGetClip, + cudnnSetRNNProjectionLayers, + cudnnGetRNNProjectionLayers, + cudnnCreatePersistentRNNPlan, + cudnnDestroyPersistentRNNPlan, + cudnnSetPersistentRNNPlan, + cudnnBuildRNNDynamic, + cudnnGetRNNWorkspaceSize, + cudnnGetRNNTrainingReserveSize, + cudnnGetRNNTempSpaceSizes, + cudnnGetRNNParamsSize, + cudnnGetRNNWeightSpaceSize, + cudnnGetRNNLinLayerMatrixParams, + cudnnGetRNNLinLayerBiasParams, + cudnnGetRNNWeightParams, + cudnnRNNForwardInference, + cudnnSetRNNPaddingMode, + cudnnGetRNNPaddingMode, + cudnnCreateRNNDataDescriptor, + cudnnDestroyRNNDataDescriptor, + cudnnSetRNNDataDescriptor, + cudnnGetRNNDataDescriptor, + cudnnRNNForwardInferenceEx, + cudnnRNNForward, + cudnnSetRNNAlgorithmDescriptor, + cudnnGetRNNForwardInferenceAlgorithmMaxCount, + cudnnFindRNNForwardInferenceAlgorithmEx, + cudnnCreateSeqDataDescriptor, + cudnnDestroySeqDataDescriptor, + cudnnSetSeqDataDescriptor, + cudnnGetSeqDataDescriptor, + cudnnCreateAttnDescriptor, + cudnnDestroyAttnDescriptor, + cudnnSetAttnDescriptor, + cudnnGetAttnDescriptor, + cudnnGetMultiHeadAttnBuffers, + cudnnGetMultiHeadAttnWeights, + cudnnMultiHeadAttnForward, + cudnnAdvInferVersionCheck, + cudnnRNNForwardTraining, + cudnnRNNBackwardData, + cudnnRNNBackwardData_v8, + cudnnRNNBackwardWeights, + cudnnRNNBackwardWeights_v8, + cudnnRNNForwardTrainingEx, + cudnnRNNBackwardDataEx, + cudnnRNNBackwardWeightsEx, + cudnnGetRNNForwardTrainingAlgorithmMaxCount, + cudnnFindRNNForwardTrainingAlgorithmEx, + cudnnGetRNNBackwardDataAlgorithmMaxCount, + cudnnFindRNNBackwardDataAlgorithmEx, + cudnnGetRNNBackwardWeightsAlgorithmMaxCount, + cudnnFindRNNBackwardWeightsAlgorithmEx, + cudnnMultiHeadAttnBackwardData, + cudnnMultiHeadAttnBackwardWeights, + cudnnCreateCTCLossDescriptor, + cudnnSetCTCLossDescriptor, + cudnnSetCTCLossDescriptorEx, + cudnnSetCTCLossDescriptor_v8, + cudnnGetCTCLossDescriptor, + cudnnGetCTCLossDescriptorEx, + cudnnGetCTCLossDescriptor_v8, + cudnnDestroyCTCLossDescriptor, + cudnnCTCLoss, + cudnnCTCLoss_v8, + cudnnGetCTCLossWorkspaceSize, + cudnnGetCTCLossWorkspaceSize_v8, + cudnnAdvTrainVersionCheck, + cudnnCreateConvolutionDescriptor, + cudnnDestroyConvolutionDescriptor, + cudnnSetConvolutionMathType, + cudnnGetConvolutionMathType, + cudnnSetConvolutionGroupCount, + cudnnGetConvolutionGroupCount, + cudnnSetConvolutionReorderType, + cudnnGetConvolutionReorderType, + cudnnSetConvolution2dDescriptor, + cudnnGetConvolution2dDescriptor, + cudnnSetConvolutionNdDescriptor, + cudnnGetConvolutionNdDescriptor, + cudnnGetConvolution2dForwardOutputDim, + cudnnGetConvolutionNdForwardOutputDim, + cudnnGetConvolutionForwardAlgorithmMaxCount, + cudnnGetConvolutionForwardAlgorithm_v7, + cudnnFindConvolutionForwardAlgorithm, + cudnnFindConvolutionForwardAlgorithmEx, + cudnnIm2Col, + cudnnReorderFilterAndBias, + cudnnGetConvolutionForwardWorkspaceSize, + cudnnConvolutionForward, + cudnnConvolutionBiasActivationForward, + cudnnGetConvolutionBackwardDataAlgorithmMaxCount, + cudnnFindConvolutionBackwardDataAlgorithm, + cudnnFindConvolutionBackwardDataAlgorithmEx, + cudnnGetConvolutionBackwardDataAlgorithm_v7, + cudnnGetConvolutionBackwardDataWorkspaceSize, + cudnnConvolutionBackwardData, + cudnnGetFoldedConvBackwardDataDescriptors, + cudnnCnnInferVersionCheck, + cudnnGetConvolutionBackwardFilterAlgorithmMaxCount, + cudnnFindConvolutionBackwardFilterAlgorithm, + cudnnFindConvolutionBackwardFilterAlgorithmEx, + cudnnGetConvolutionBackwardFilterAlgorithm_v7, + cudnnGetConvolutionBackwardFilterWorkspaceSize, + cudnnConvolutionBackwardFilter, + cudnnConvolutionBackwardBias, + cudnnCreateFusedOpsConstParamPack, + cudnnDestroyFusedOpsConstParamPack, + cudnnSetFusedOpsConstParamPackAttribute, + cudnnGetFusedOpsConstParamPackAttribute, + cudnnCreateFusedOpsVariantParamPack, + cudnnDestroyFusedOpsVariantParamPack, + cudnnSetFusedOpsVariantParamPackAttribute, + cudnnGetFusedOpsVariantParamPackAttribute, + cudnnCreateFusedOpsPlan, + cudnnDestroyFusedOpsPlan, + cudnnMakeFusedOpsPlan, + cudnnFusedOpsExecute, + cudnnCnnTrainVersionCheck, + cudnnBackendCreateDescriptor, + cudnnBackendDestroyDescriptor, + cudnnBackendInitialize, + cudnnBackendFinalize, + cudnnBackendSetAttribute, + cudnnBackendGetAttribute, + cudnnBackendExecute, + }) + } + pub unsafe fn cudnnGetVersion(&self) -> usize { + (self + .cudnnGetVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetCudartVersion(&self) -> usize { + (self + .cudnnGetCudartVersion + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetErrorString(&self, status: cudnnStatus_t) -> *const ::core::ffi::c_char { + (self + .cudnnGetErrorString + .as_ref() + .expect("Expected function, got error."))(status) + } + pub unsafe fn cudnnQueryRuntimeError( + &self, + handle: cudnnHandle_t, + rstatus: *mut cudnnStatus_t, + mode: cudnnErrQueryMode_t, + tag: *mut cudnnRuntimeTag_t, + ) -> cudnnStatus_t { + (self + .cudnnQueryRuntimeError + .as_ref() + .expect("Expected function, got error."))(handle, rstatus, mode, tag) + } + pub unsafe fn cudnnGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn cudnnCreate(&self, handle: *mut cudnnHandle_t) -> cudnnStatus_t { + (self + .cudnnCreate + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cudnnDestroy(&self, handle: cudnnHandle_t) -> cudnnStatus_t { + (self + .cudnnDestroy + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cudnnSetStream( + &self, + handle: cudnnHandle_t, + streamId: cudaStream_t, + ) -> cudnnStatus_t { + (self + .cudnnSetStream + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cudnnGetStream( + &self, + handle: cudnnHandle_t, + streamId: *mut cudaStream_t, + ) -> cudnnStatus_t { + (self + .cudnnGetStream + .as_ref() + .expect("Expected function, got error."))(handle, streamId) + } + pub unsafe fn cudnnCreateTensorDescriptor( + &self, + tensorDesc: *mut cudnnTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(tensorDesc) + } + pub unsafe fn cudnnSetTensor4dDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, format, dataType, n, c, h, w + ) + } + pub unsafe fn cudnnSetTensor4dDescriptorEx( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + n: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + nStride: ::core::ffi::c_int, + cStride: ::core::ffi::c_int, + hStride: ::core::ffi::c_int, + wStride: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor4dDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride, + ) + } + pub unsafe fn cudnnGetTensor4dDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: *mut cudnnDataType_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + nStride: *mut ::core::ffi::c_int, + cStride: *mut ::core::ffi::c_int, + hStride: *mut ::core::ffi::c_int, + wStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetTensor4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride, + ) + } + pub unsafe fn cudnnSetTensorNdDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, dataType, nbDims, dimA, strideA + ) + } + pub unsafe fn cudnnSetTensorNdDescriptorEx( + &self, + tensorDesc: cudnnTensorDescriptor_t, + format: cudnnTensorFormat_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorNdDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, format, dataType, nbDims, dimA + ) + } + pub unsafe fn cudnnGetTensorNdDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + tensorDesc, + nbDimsRequested, + dataType, + nbDims, + dimA, + strideA, + ) + } + pub unsafe fn cudnnGetTensorSizeInBytes( + &self, + tensorDesc: cudnnTensorDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorSizeInBytes + .as_ref() + .expect("Expected function, got error."))(tensorDesc, size) + } + pub unsafe fn cudnnDestroyTensorDescriptor( + &self, + tensorDesc: cudnnTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(tensorDesc) + } + pub unsafe fn cudnnInitTransformDest( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + srcDesc: cudnnTensorDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + destSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnInitTransformDest + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + srcDesc, + destDesc, + destSizeInBytes, + ) + } + pub unsafe fn cudnnCreateTensorTransformDescriptor( + &self, + transformDesc: *mut cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cudnnSetTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + nbDims: u32, + destFormat: cudnnTensorFormat_t, + padBeforeA: *const i32, + padAfterA: *const i32, + foldA: *const u32, + direction: cudnnFoldingDirection_t, + ) -> cudnnStatus_t { + (self + .cudnnSetTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + nbDims, + destFormat, + padBeforeA, + padAfterA, + foldA, + direction, + ) + } + pub unsafe fn cudnnGetTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + nbDimsRequested: u32, + destFormat: *mut cudnnTensorFormat_t, + padBeforeA: *mut i32, + padAfterA: *mut i32, + foldA: *mut u32, + direction: *mut cudnnFoldingDirection_t, + ) -> cudnnStatus_t { + (self + .cudnnGetTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))( + transformDesc, + nbDimsRequested, + destFormat, + padBeforeA, + padAfterA, + foldA, + direction, + ) + } + pub unsafe fn cudnnDestroyTensorTransformDescriptor( + &self, + transformDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyTensorTransformDescriptor + .as_ref() + .expect("Expected function, got error."))(transformDesc) + } + pub unsafe fn cudnnTransformTensor( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformTensor + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, xDesc, x, beta, yDesc, y + ) + } + pub unsafe fn cudnnTransformTensorEx( + &self, + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnTensorDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnTensorDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformTensorEx + .as_ref() + .expect("Expected function, got error."))( + handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData, + ) + } + pub unsafe fn cudnnAddTensor( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnAddTensor + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, aDesc, A, beta, cDesc, C + ) + } + pub unsafe fn cudnnCreateOpTensorDescriptor( + &self, + opTensorDesc: *mut cudnnOpTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(opTensorDesc) + } + pub unsafe fn cudnnSetOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: cudnnOpTensorOp_t, + opTensorCompType: cudnnDataType_t, + opTensorNanOpt: cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnSetOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + opTensorDesc, + opTensorOp, + opTensorCompType, + opTensorNanOpt, + ) + } + pub unsafe fn cudnnGetOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + opTensorOp: *mut cudnnOpTensorOp_t, + opTensorCompType: *mut cudnnDataType_t, + opTensorNanOpt: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnGetOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + opTensorDesc, + opTensorOp, + opTensorCompType, + opTensorNanOpt, + ) + } + pub unsafe fn cudnnDestroyOpTensorDescriptor( + &self, + opTensorDesc: cudnnOpTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyOpTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(opTensorDesc) + } + pub unsafe fn cudnnOpTensor( + &self, + handle: cudnnHandle_t, + opTensorDesc: cudnnOpTensorDescriptor_t, + alpha1: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + alpha2: *const ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + B: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnOpTensor + .as_ref() + .expect("Expected function, got error."))( + handle, + opTensorDesc, + alpha1, + aDesc, + A, + alpha2, + bDesc, + B, + beta, + cDesc, + C, + ) + } + pub unsafe fn cudnnCreateReduceTensorDescriptor( + &self, + reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(reduceTensorDesc) + } + pub unsafe fn cudnnSetReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: cudnnReduceTensorOp_t, + reduceTensorCompType: cudnnDataType_t, + reduceTensorNanOpt: cudnnNanPropagation_t, + reduceTensorIndices: cudnnReduceTensorIndices_t, + reduceTensorIndicesType: cudnnIndicesType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + reduceTensorDesc, + reduceTensorOp, + reduceTensorCompType, + reduceTensorNanOpt, + reduceTensorIndices, + reduceTensorIndicesType, + ) + } + pub unsafe fn cudnnGetReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + reduceTensorOp: *mut cudnnReduceTensorOp_t, + reduceTensorCompType: *mut cudnnDataType_t, + reduceTensorNanOpt: *mut cudnnNanPropagation_t, + reduceTensorIndices: *mut cudnnReduceTensorIndices_t, + reduceTensorIndicesType: *mut cudnnIndicesType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + reduceTensorDesc, + reduceTensorOp, + reduceTensorCompType, + reduceTensorNanOpt, + reduceTensorIndices, + reduceTensorIndicesType, + ) + } + pub unsafe fn cudnnDestroyReduceTensorDescriptor( + &self, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyReduceTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(reduceTensorDesc) + } + pub unsafe fn cudnnGetReductionIndicesSize( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetReductionIndicesSize + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + aDesc, + cDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetReductionWorkspaceSize( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + aDesc: cudnnTensorDescriptor_t, + cDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetReductionWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + aDesc, + cDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnReduceTensor( + &self, + handle: cudnnHandle_t, + reduceTensorDesc: cudnnReduceTensorDescriptor_t, + indices: *mut ::core::ffi::c_void, + indicesSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + workspaceSizeInBytes: usize, + alpha: *const ::core::ffi::c_void, + aDesc: cudnnTensorDescriptor_t, + A: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + C: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnReduceTensor + .as_ref() + .expect("Expected function, got error."))( + handle, + reduceTensorDesc, + indices, + indicesSizeInBytes, + workspace, + workspaceSizeInBytes, + alpha, + aDesc, + A, + beta, + cDesc, + C, + ) + } + pub unsafe fn cudnnSetTensor( + &self, + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + valuePtr: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetTensor + .as_ref() + .expect("Expected function, got error."))(handle, yDesc, y, valuePtr) + } + pub unsafe fn cudnnScaleTensor( + &self, + handle: cudnnHandle_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + alpha: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnScaleTensor + .as_ref() + .expect("Expected function, got error."))(handle, yDesc, y, alpha) + } + pub unsafe fn cudnnCreateFilterDescriptor( + &self, + filterDesc: *mut cudnnFilterDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFilterDescriptor + .as_ref() + .expect("Expected function, got error."))(filterDesc) + } + pub unsafe fn cudnnSetFilter4dDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + k: ::core::ffi::c_int, + c: ::core::ffi::c_int, + h: ::core::ffi::c_int, + w: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetFilter4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, k, c, h, w + ) + } + pub unsafe fn cudnnGetFilter4dDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + k: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFilter4dDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, k, c, h, w + ) + } + pub unsafe fn cudnnSetFilterNdDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + dataType: cudnnDataType_t, + format: cudnnTensorFormat_t, + nbDims: ::core::ffi::c_int, + filterDimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetFilterNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, dataType, format, nbDims, filterDimA, + ) + } + pub unsafe fn cudnnGetFilterNdDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + dataType: *mut cudnnDataType_t, + format: *mut cudnnTensorFormat_t, + nbDims: *mut ::core::ffi::c_int, + filterDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFilterNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + filterDesc, + nbDimsRequested, + dataType, + format, + nbDims, + filterDimA, + ) + } + pub unsafe fn cudnnGetFilterSizeInBytes( + &self, + filterDesc: cudnnFilterDescriptor_t, + size: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetFilterSizeInBytes + .as_ref() + .expect("Expected function, got error."))(filterDesc, size) + } + pub unsafe fn cudnnTransformFilter( + &self, + handle: cudnnHandle_t, + transDesc: cudnnTensorTransformDescriptor_t, + alpha: *const ::core::ffi::c_void, + srcDesc: cudnnFilterDescriptor_t, + srcData: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + destDesc: cudnnFilterDescriptor_t, + destData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnTransformFilter + .as_ref() + .expect("Expected function, got error."))( + handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData, + ) + } + pub unsafe fn cudnnDestroyFilterDescriptor( + &self, + filterDesc: cudnnFilterDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFilterDescriptor + .as_ref() + .expect("Expected function, got error."))(filterDesc) + } + pub unsafe fn cudnnSoftmaxForward( + &self, + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSoftmaxForward + .as_ref() + .expect("Expected function, got error."))( + handle, algo, mode, alpha, xDesc, x, beta, yDesc, y, + ) + } + pub unsafe fn cudnnCreatePoolingDescriptor( + &self, + poolingDesc: *mut cudnnPoolingDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreatePoolingDescriptor + .as_ref() + .expect("Expected function, got error."))(poolingDesc) + } + pub unsafe fn cudnnSetPooling2dDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + windowHeight: ::core::ffi::c_int, + windowWidth: ::core::ffi::c_int, + verticalPadding: ::core::ffi::c_int, + horizontalPadding: ::core::ffi::c_int, + verticalStride: ::core::ffi::c_int, + horizontalStride: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetPooling2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + windowHeight, + windowWidth, + verticalPadding, + horizontalPadding, + verticalStride, + horizontalStride, + ) + } + pub unsafe fn cudnnGetPooling2dDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + windowHeight: *mut ::core::ffi::c_int, + windowWidth: *mut ::core::ffi::c_int, + verticalPadding: *mut ::core::ffi::c_int, + horizontalPadding: *mut ::core::ffi::c_int, + verticalStride: *mut ::core::ffi::c_int, + horizontalStride: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPooling2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + windowHeight, + windowWidth, + verticalPadding, + horizontalPadding, + verticalStride, + horizontalStride, + ) + } + pub unsafe fn cudnnSetPoolingNdDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + mode: cudnnPoolingMode_t, + maxpoolingNanOpt: cudnnNanPropagation_t, + nbDims: ::core::ffi::c_int, + windowDimA: *const ::core::ffi::c_int, + paddingA: *const ::core::ffi::c_int, + strideA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetPoolingNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + mode, + maxpoolingNanOpt, + nbDims, + windowDimA, + paddingA, + strideA, + ) + } + pub unsafe fn cudnnGetPoolingNdDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + nbDimsRequested: ::core::ffi::c_int, + mode: *mut cudnnPoolingMode_t, + maxpoolingNanOpt: *mut cudnnNanPropagation_t, + nbDims: *mut ::core::ffi::c_int, + windowDimA: *mut ::core::ffi::c_int, + paddingA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPoolingNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + nbDimsRequested, + mode, + maxpoolingNanOpt, + nbDims, + windowDimA, + paddingA, + strideA, + ) + } + pub unsafe fn cudnnGetPoolingNdForwardOutputDim( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + nbDims: ::core::ffi::c_int, + outputTensorDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPoolingNdForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, + inputTensorDesc, + nbDims, + outputTensorDimA, + ) + } + pub unsafe fn cudnnGetPooling2dForwardOutputDim( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetPooling2dForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + poolingDesc, inputTensorDesc, n, c, h, w + ) + } + pub unsafe fn cudnnDestroyPoolingDescriptor( + &self, + poolingDesc: cudnnPoolingDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyPoolingDescriptor + .as_ref() + .expect("Expected function, got error."))(poolingDesc) + } + pub unsafe fn cudnnPoolingForward( + &self, + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnPoolingForward + .as_ref() + .expect("Expected function, got error."))( + handle, + poolingDesc, + alpha, + xDesc, + x, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnCreateActivationDescriptor( + &self, + activationDesc: *mut cudnnActivationDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc) + } + pub unsafe fn cudnnSetActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + mode: cudnnActivationMode_t, + reluNanOpt: cudnnNanPropagation_t, + coef: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc, mode, reluNanOpt, coef) + } + pub unsafe fn cudnnGetActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + mode: *mut cudnnActivationMode_t, + reluNanOpt: *mut cudnnNanPropagation_t, + coef: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc, mode, reluNanOpt, coef) + } + pub unsafe fn cudnnSetActivationDescriptorSwishBeta( + &self, + activationDesc: cudnnActivationDescriptor_t, + swish_beta: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetActivationDescriptorSwishBeta + .as_ref() + .expect("Expected function, got error."))(activationDesc, swish_beta) + } + pub unsafe fn cudnnGetActivationDescriptorSwishBeta( + &self, + activationDesc: cudnnActivationDescriptor_t, + swish_beta: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetActivationDescriptorSwishBeta + .as_ref() + .expect("Expected function, got error."))(activationDesc, swish_beta) + } + pub unsafe fn cudnnDestroyActivationDescriptor( + &self, + activationDesc: cudnnActivationDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyActivationDescriptor + .as_ref() + .expect("Expected function, got error."))(activationDesc) + } + pub unsafe fn cudnnActivationForward( + &self, + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnActivationForward + .as_ref() + .expect("Expected function, got error."))( + handle, + activationDesc, + alpha, + xDesc, + x, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnCreateLRNDescriptor( + &self, + normDesc: *mut cudnnLRNDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateLRNDescriptor + .as_ref() + .expect("Expected function, got error."))(normDesc) + } + pub unsafe fn cudnnSetLRNDescriptor( + &self, + normDesc: cudnnLRNDescriptor_t, + lrnN: ::core::ffi::c_uint, + lrnAlpha: f64, + lrnBeta: f64, + lrnK: f64, + ) -> cudnnStatus_t { + (self + .cudnnSetLRNDescriptor + .as_ref() + .expect("Expected function, got error."))( + normDesc, lrnN, lrnAlpha, lrnBeta, lrnK + ) + } + pub unsafe fn cudnnGetLRNDescriptor( + &self, + normDesc: cudnnLRNDescriptor_t, + lrnN: *mut ::core::ffi::c_uint, + lrnAlpha: *mut f64, + lrnBeta: *mut f64, + lrnK: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnGetLRNDescriptor + .as_ref() + .expect("Expected function, got error."))( + normDesc, lrnN, lrnAlpha, lrnBeta, lrnK + ) + } + pub unsafe fn cudnnDestroyLRNDescriptor(&self, lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t { + (self + .cudnnDestroyLRNDescriptor + .as_ref() + .expect("Expected function, got error."))(lrnDesc) + } + pub unsafe fn cudnnLRNCrossChannelForward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnLRNCrossChannelForward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, lrnMode, alpha, xDesc, x, beta, yDesc, y, + ) + } + pub unsafe fn cudnnDivisiveNormalizationForward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnDivisiveNormalizationForward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, mode, alpha, xDesc, x, means, temp, temp2, beta, yDesc, y, + ) + } + pub unsafe fn cudnnDeriveBNTensorDescriptor( + &self, + derivedBnDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnBatchNormMode_t, + ) -> cudnnStatus_t { + (self + .cudnnDeriveBNTensorDescriptor + .as_ref() + .expect("Expected function, got error."))(derivedBnDesc, xDesc, mode) + } + pub unsafe fn cudnnBatchNormalizationForwardInference( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + epsilon: f64, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alpha, + beta, + xDesc, + x, + yDesc, + y, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + estimatedMean, + estimatedVariance, + epsilon, + ) + } + pub unsafe fn cudnnDeriveNormTensorDescriptor( + &self, + derivedNormScaleBiasDesc: cudnnTensorDescriptor_t, + derivedNormMeanVarDesc: cudnnTensorDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + mode: cudnnNormMode_t, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnDeriveNormTensorDescriptor + .as_ref() + .expect("Expected function, got error."))( + derivedNormScaleBiasDesc, + derivedNormMeanVarDesc, + xDesc, + mode, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationForwardInference( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + normMeanVarDesc: cudnnTensorDescriptor_t, + estimatedMean: *const ::core::ffi::c_void, + estimatedVariance: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + epsilon: f64, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alpha, + beta, + xDesc, + x, + normScaleBiasDesc, + normScale, + normBias, + normMeanVarDesc, + estimatedMean, + estimatedVariance, + zDesc, + z, + activationDesc, + yDesc, + y, + epsilon, + groupCnt, + ) + } + pub unsafe fn cudnnCreateSpatialTransformerDescriptor( + &self, + stDesc: *mut cudnnSpatialTransformerDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateSpatialTransformerDescriptor + .as_ref() + .expect("Expected function, got error."))(stDesc) + } + pub unsafe fn cudnnSetSpatialTransformerNdDescriptor( + &self, + stDesc: cudnnSpatialTransformerDescriptor_t, + samplerType: cudnnSamplerType_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetSpatialTransformerNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + stDesc, samplerType, dataType, nbDims, dimA + ) + } + pub unsafe fn cudnnDestroySpatialTransformerDescriptor( + &self, + stDesc: cudnnSpatialTransformerDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroySpatialTransformerDescriptor + .as_ref() + .expect("Expected function, got error."))(stDesc) + } + pub unsafe fn cudnnSpatialTfGridGeneratorForward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + theta: *const ::core::ffi::c_void, + grid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfGridGeneratorForward + .as_ref() + .expect("Expected function, got error."))(handle, stDesc, theta, grid) + } + pub unsafe fn cudnnSpatialTfSamplerForward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfSamplerForward + .as_ref() + .expect("Expected function, got error."))( + handle, stDesc, alpha, xDesc, x, grid, beta, yDesc, y, + ) + } + pub unsafe fn cudnnCreateDropoutDescriptor( + &self, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))(dropoutDesc) + } + pub unsafe fn cudnnDestroyDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))(dropoutDesc) + } + pub unsafe fn cudnnDropoutGetStatesSize( + &self, + handle: cudnnHandle_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutGetStatesSize + .as_ref() + .expect("Expected function, got error."))(handle, sizeInBytes) + } + pub unsafe fn cudnnDropoutGetReserveSpaceSize( + &self, + xdesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutGetReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))(xdesc, sizeInBytes) + } + pub unsafe fn cudnnSetDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnSetDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, + handle, + dropout, + states, + stateSizeInBytes, + seed, + ) + } + pub unsafe fn cudnnRestoreDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: f32, + states: *mut ::core::ffi::c_void, + stateSizeInBytes: usize, + seed: ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnRestoreDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, + handle, + dropout, + states, + stateSizeInBytes, + seed, + ) + } + pub unsafe fn cudnnGetDropoutDescriptor( + &self, + dropoutDesc: cudnnDropoutDescriptor_t, + handle: cudnnHandle_t, + dropout: *mut f32, + states: *mut *mut ::core::ffi::c_void, + seed: *mut ::core::ffi::c_ulonglong, + ) -> cudnnStatus_t { + (self + .cudnnGetDropoutDescriptor + .as_ref() + .expect("Expected function, got error."))( + dropoutDesc, handle, dropout, states, seed + ) + } + pub unsafe fn cudnnDropoutForward( + &self, + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + xdesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + ydesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutForward + .as_ref() + .expect("Expected function, got error."))( + handle, + dropoutDesc, + xdesc, + x, + ydesc, + y, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCreateAlgorithmDescriptor( + &self, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc) + } + pub unsafe fn cudnnSetAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: cudnnAlgorithm_t, + ) -> cudnnStatus_t { + (self + .cudnnSetAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc, algorithm) + } + pub unsafe fn cudnnGetAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + algorithm: *mut cudnnAlgorithm_t, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc, algorithm) + } + pub unsafe fn cudnnCopyAlgorithmDescriptor( + &self, + src: cudnnAlgorithmDescriptor_t, + dest: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCopyAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(src, dest) + } + pub unsafe fn cudnnDestroyAlgorithmDescriptor( + &self, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(algoDesc) + } + pub unsafe fn cudnnCreateAlgorithmPerformance( + &self, + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToCreate: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnCreateAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))(algoPerf, numberToCreate) + } + pub unsafe fn cudnnSetAlgorithmPerformance( + &self, + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: cudnnAlgorithmDescriptor_t, + status: cudnnStatus_t, + time: f32, + memory: usize, + ) -> cudnnStatus_t { + (self + .cudnnSetAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))( + algoPerf, algoDesc, status, time, memory + ) + } + pub unsafe fn cudnnGetAlgorithmPerformance( + &self, + algoPerf: cudnnAlgorithmPerformance_t, + algoDesc: *mut cudnnAlgorithmDescriptor_t, + status: *mut cudnnStatus_t, + time: *mut f32, + memory: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))( + algoPerf, algoDesc, status, time, memory + ) + } + pub unsafe fn cudnnDestroyAlgorithmPerformance( + &self, + algoPerf: *mut cudnnAlgorithmPerformance_t, + numberToDestroy: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAlgorithmPerformance + .as_ref() + .expect("Expected function, got error."))(algoPerf, numberToDestroy) + } + pub unsafe fn cudnnGetAlgorithmSpaceSize( + &self, + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetAlgorithmSpaceSize + .as_ref() + .expect("Expected function, got error."))(handle, algoDesc, algoSpaceSizeInBytes) + } + pub unsafe fn cudnnSaveAlgorithm( + &self, + handle: cudnnHandle_t, + algoDesc: cudnnAlgorithmDescriptor_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnSaveAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + algoDesc, + algoSpace, + algoSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRestoreAlgorithm( + &self, + handle: cudnnHandle_t, + algoSpace: *mut ::core::ffi::c_void, + algoSpaceSizeInBytes: usize, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnRestoreAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + algoSpace, + algoSpaceSizeInBytes, + algoDesc, + ) + } + pub unsafe fn cudnnSetCallback( + &self, + mask: ::core::ffi::c_uint, + udata: *mut ::core::ffi::c_void, + fptr: cudnnCallback_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCallback + .as_ref() + .expect("Expected function, got error."))(mask, udata, fptr) + } + pub unsafe fn cudnnGetCallback( + &self, + mask: *mut ::core::ffi::c_uint, + udata: *mut *mut ::core::ffi::c_void, + fptr: *mut cudnnCallback_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCallback + .as_ref() + .expect("Expected function, got error."))(mask, udata, fptr) + } + pub unsafe fn cudnnOpsInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnOpsInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnSoftmaxBackward( + &self, + handle: cudnnHandle_t, + algo: cudnnSoftmaxAlgorithm_t, + mode: cudnnSoftmaxMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSoftmaxBackward + .as_ref() + .expect("Expected function, got error."))( + handle, algo, mode, alpha, yDesc, y, dyDesc, dy, beta, dxDesc, dx, + ) + } + pub unsafe fn cudnnPoolingBackward( + &self, + handle: cudnnHandle_t, + poolingDesc: cudnnPoolingDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnPoolingBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + poolingDesc, + alpha, + yDesc, + y, + dyDesc, + dy, + xDesc, + x, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnActivationBackward( + &self, + handle: cudnnHandle_t, + activationDesc: cudnnActivationDescriptor_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnActivationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + activationDesc, + alpha, + yDesc, + y, + dyDesc, + dy, + xDesc, + x, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnLRNCrossChannelBackward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + lrnMode: cudnnLRNMode_t, + alpha: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnLRNCrossChannelBackward + .as_ref() + .expect("Expected function, got error."))( + handle, normDesc, lrnMode, alpha, yDesc, y, dyDesc, dy, xDesc, x, beta, dxDesc, dx, + ) + } + pub unsafe fn cudnnDivisiveNormalizationBackward( + &self, + handle: cudnnHandle_t, + normDesc: cudnnLRNDescriptor_t, + mode: cudnnDivNormMode_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + means: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + temp: *mut ::core::ffi::c_void, + temp2: *mut ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dXdMeansDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dMeans: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnDivisiveNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + normDesc, + mode, + alpha, + xDesc, + x, + means, + dy, + temp, + temp2, + beta, + dXdMeansDesc, + dx, + dMeans, + ) + } + pub unsafe fn cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + xDesc, + zDesc, + yDesc, + bnScaleBiasMeanVarDesc, + activationDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetBatchNormalizationBackwardExWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationBackwardExWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + xDesc, + yDesc, + dyDesc, + dzDesc, + dxDesc, + dBnScaleBiasDesc, + activationDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetBatchNormalizationTrainingExReserveSpaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetBatchNormalizationTrainingExReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + activationDesc, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnBatchNormalizationForwardTraining( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alpha, + beta, + xDesc, + x, + yDesc, + y, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + exponentialAverageFactor, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + ) + } + pub unsafe fn cudnnBatchNormalizationForwardTrainingEx( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + bnBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationForwardTrainingEx + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + alpha, + beta, + xDesc, + xData, + zDesc, + zData, + yDesc, + yData, + bnScaleBiasMeanVarDesc, + bnScale, + bnBias, + exponentialAverageFactor, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + activationDesc, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnBatchNormalizationBackward( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScale: *const ::core::ffi::c_void, + dBnScaleResult: *mut ::core::ffi::c_void, + dBnBiasResult: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + x, + dyDesc, + dy, + dxDesc, + dx, + dBnScaleBiasDesc, + bnScale, + dBnScaleResult, + dBnBiasResult, + epsilon, + savedMean, + savedInvVariance, + ) + } + pub unsafe fn cudnnBatchNormalizationBackwardEx( + &self, + handle: cudnnHandle_t, + mode: cudnnBatchNormMode_t, + bnOps: cudnnBatchNormOps_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dBnScaleBiasDesc: cudnnTensorDescriptor_t, + bnScaleData: *const ::core::ffi::c_void, + bnBiasData: *const ::core::ffi::c_void, + dBnScaleData: *mut ::core::ffi::c_void, + dBnBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnBatchNormalizationBackwardEx + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + bnOps, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + xData, + yDesc, + yData, + dyDesc, + dyData, + dzDesc, + dzData, + dxDesc, + dxData, + dBnScaleBiasDesc, + bnScaleData, + bnBiasData, + dBnScaleData, + dBnBiasData, + epsilon, + savedMean, + savedInvVariance, + activationDesc, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetNormalizationForwardTrainingWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + normScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationForwardTrainingWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + xDesc, + zDesc, + yDesc, + normScaleBiasDesc, + activationDesc, + normMeanVarDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnGetNormalizationBackwardWorkspaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + xDesc: cudnnTensorDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + dzDesc: cudnnTensorDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + activationDesc: cudnnActivationDescriptor_t, + normMeanVarDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationBackwardWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + xDesc, + yDesc, + dyDesc, + dzDesc, + dxDesc, + dNormScaleBiasDesc, + activationDesc, + normMeanVarDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnGetNormalizationTrainingReserveSpaceSize( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + activationDesc: cudnnActivationDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetNormalizationTrainingReserveSpaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + activationDesc, + xDesc, + sizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationForwardTraining( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alpha: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + normScaleBiasDesc: cudnnTensorDescriptor_t, + normScale: *const ::core::ffi::c_void, + normBias: *const ::core::ffi::c_void, + exponentialAverageFactor: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + resultRunningMean: *mut ::core::ffi::c_void, + resultRunningVariance: *mut ::core::ffi::c_void, + epsilon: f64, + resultSaveMean: *mut ::core::ffi::c_void, + resultSaveInvVariance: *mut ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + zDesc: cudnnTensorDescriptor_t, + zData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *mut ::core::ffi::c_void, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alpha, + beta, + xDesc, + xData, + normScaleBiasDesc, + normScale, + normBias, + exponentialAverageFactor, + normMeanVarDesc, + resultRunningMean, + resultRunningVariance, + epsilon, + resultSaveMean, + resultSaveInvVariance, + activationDesc, + zDesc, + zData, + yDesc, + yData, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnNormalizationBackward( + &self, + handle: cudnnHandle_t, + mode: cudnnNormMode_t, + normOps: cudnnNormOps_t, + algo: cudnnNormAlgo_t, + alphaDataDiff: *const ::core::ffi::c_void, + betaDataDiff: *const ::core::ffi::c_void, + alphaParamDiff: *const ::core::ffi::c_void, + betaParamDiff: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + xData: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + yData: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dyData: *const ::core::ffi::c_void, + dzDesc: cudnnTensorDescriptor_t, + dzData: *mut ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dxData: *mut ::core::ffi::c_void, + dNormScaleBiasDesc: cudnnTensorDescriptor_t, + normScaleData: *const ::core::ffi::c_void, + normBiasData: *const ::core::ffi::c_void, + dNormScaleData: *mut ::core::ffi::c_void, + dNormBiasData: *mut ::core::ffi::c_void, + epsilon: f64, + normMeanVarDesc: cudnnTensorDescriptor_t, + savedMean: *const ::core::ffi::c_void, + savedInvVariance: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + groupCnt: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnNormalizationBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + mode, + normOps, + algo, + alphaDataDiff, + betaDataDiff, + alphaParamDiff, + betaParamDiff, + xDesc, + xData, + yDesc, + yData, + dyDesc, + dyData, + dzDesc, + dzData, + dxDesc, + dxData, + dNormScaleBiasDesc, + normScaleData, + normBiasData, + dNormScaleData, + dNormBiasData, + epsilon, + normMeanVarDesc, + savedMean, + savedInvVariance, + activationDesc, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + groupCnt, + ) + } + pub unsafe fn cudnnSpatialTfGridGeneratorBackward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + dgrid: *const ::core::ffi::c_void, + dtheta: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfGridGeneratorBackward + .as_ref() + .expect("Expected function, got error."))(handle, stDesc, dgrid, dtheta) + } + pub unsafe fn cudnnSpatialTfSamplerBackward( + &self, + handle: cudnnHandle_t, + stDesc: cudnnSpatialTransformerDescriptor_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + alphaDgrid: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + grid: *const ::core::ffi::c_void, + betaDgrid: *const ::core::ffi::c_void, + dgrid: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSpatialTfSamplerBackward + .as_ref() + .expect("Expected function, got error."))( + handle, stDesc, alpha, xDesc, x, beta, dxDesc, dx, alphaDgrid, dyDesc, dy, grid, + betaDgrid, dgrid, + ) + } + pub unsafe fn cudnnDropoutBackward( + &self, + handle: cudnnHandle_t, + dropoutDesc: cudnnDropoutDescriptor_t, + dydesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dxdesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnDropoutBackward + .as_ref() + .expect("Expected function, got error."))( + handle, + dropoutDesc, + dydesc, + dy, + dxdesc, + dx, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnOpsTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnOpsTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnCreateRNNDescriptor( + &self, + rnnDesc: *mut cudnnRNNDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateRNNDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDesc) + } + pub unsafe fn cudnnDestroyRNNDescriptor(&self, rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t { + (self + .cudnnDestroyRNNDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDesc) + } + pub unsafe fn cudnnSetRNNDescriptor_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + algo: cudnnRNNAlgo_t, + cellMode: cudnnRNNMode_t, + biasMode: cudnnRNNBiasMode_t, + dirMode: cudnnDirectionMode_t, + inputMode: cudnnRNNInputMode_t, + dataType: cudnnDataType_t, + mathPrec: cudnnDataType_t, + mathType: cudnnMathType_t, + inputSize: i32, + hiddenSize: i32, + projSize: i32, + numLayers: i32, + dropoutDesc: cudnnDropoutDescriptor_t, + auxFlags: u32, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, + algo, + cellMode, + biasMode, + dirMode, + inputMode, + dataType, + mathPrec, + mathType, + inputSize, + hiddenSize, + projSize, + numLayers, + dropoutDesc, + auxFlags, + ) + } + pub unsafe fn cudnnGetRNNDescriptor_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + algo: *mut cudnnRNNAlgo_t, + cellMode: *mut cudnnRNNMode_t, + biasMode: *mut cudnnRNNBiasMode_t, + dirMode: *mut cudnnDirectionMode_t, + inputMode: *mut cudnnRNNInputMode_t, + dataType: *mut cudnnDataType_t, + mathPrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + inputSize: *mut i32, + hiddenSize: *mut i32, + projSize: *mut i32, + numLayers: *mut i32, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + auxFlags: *mut u32, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, + algo, + cellMode, + biasMode, + dirMode, + inputMode, + dataType, + mathPrec, + mathType, + inputSize, + hiddenSize, + projSize, + numLayers, + dropoutDesc, + auxFlags, + ) + } + pub unsafe fn cudnnSetRNNDescriptor_v6( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: ::core::ffi::c_int, + numLayers: ::core::ffi::c_int, + dropoutDesc: cudnnDropoutDescriptor_t, + inputMode: cudnnRNNInputMode_t, + direction: cudnnDirectionMode_t, + cellMode: cudnnRNNMode_t, + algo: cudnnRNNAlgo_t, + mathPrec: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDescriptor_v6 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + hiddenSize, + numLayers, + dropoutDesc, + inputMode, + direction, + cellMode, + algo, + mathPrec, + ) + } + pub unsafe fn cudnnGetRNNDescriptor_v6( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + hiddenSize: *mut ::core::ffi::c_int, + numLayers: *mut ::core::ffi::c_int, + dropoutDesc: *mut cudnnDropoutDescriptor_t, + inputMode: *mut cudnnRNNInputMode_t, + direction: *mut cudnnDirectionMode_t, + cellMode: *mut cudnnRNNMode_t, + algo: *mut cudnnRNNAlgo_t, + mathPrec: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDescriptor_v6 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + hiddenSize, + numLayers, + dropoutDesc, + inputMode, + direction, + cellMode, + algo, + mathPrec, + ) + } + pub unsafe fn cudnnSetRNNMatrixMathType( + &self, + rnnDesc: cudnnRNNDescriptor_t, + mType: cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNMatrixMathType + .as_ref() + .expect("Expected function, got error."))(rnnDesc, mType) + } + pub unsafe fn cudnnGetRNNMatrixMathType( + &self, + rnnDesc: cudnnRNNDescriptor_t, + mType: *mut cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNMatrixMathType + .as_ref() + .expect("Expected function, got error."))(rnnDesc, mType) + } + pub unsafe fn cudnnSetRNNBiasMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + biasMode: cudnnRNNBiasMode_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNBiasMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, biasMode) + } + pub unsafe fn cudnnGetRNNBiasMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + biasMode: *mut cudnnRNNBiasMode_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBiasMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, biasMode) + } + pub unsafe fn cudnnRNNSetClip_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNSetClip_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, clipMode, clipNanOpt, lclip, rclip + ) + } + pub unsafe fn cudnnRNNGetClip_v8( + &self, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNGetClip_v8 + .as_ref() + .expect("Expected function, got error."))( + rnnDesc, clipMode, clipNanOpt, lclip, rclip + ) + } + pub unsafe fn cudnnRNNSetClip( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: cudnnRNNClipMode_t, + clipNanOpt: cudnnNanPropagation_t, + lclip: f64, + rclip: f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNSetClip + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, clipMode, clipNanOpt, lclip, rclip, + ) + } + pub unsafe fn cudnnRNNGetClip( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + clipMode: *mut cudnnRNNClipMode_t, + clipNanOpt: *mut cudnnNanPropagation_t, + lclip: *mut f64, + rclip: *mut f64, + ) -> cudnnStatus_t { + (self + .cudnnRNNGetClip + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, clipMode, clipNanOpt, lclip, rclip, + ) + } + pub unsafe fn cudnnSetRNNProjectionLayers( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: ::core::ffi::c_int, + outProjSize: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNProjectionLayers + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, recProjSize, outProjSize + ) + } + pub unsafe fn cudnnGetRNNProjectionLayers( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + recProjSize: *mut ::core::ffi::c_int, + outProjSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNProjectionLayers + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, recProjSize, outProjSize + ) + } + pub unsafe fn cudnnCreatePersistentRNNPlan( + &self, + rnnDesc: cudnnRNNDescriptor_t, + minibatch: ::core::ffi::c_int, + dataType: cudnnDataType_t, + plan: *mut cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnCreatePersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(rnnDesc, minibatch, dataType, plan) + } + pub unsafe fn cudnnDestroyPersistentRNNPlan( + &self, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyPersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(plan) + } + pub unsafe fn cudnnSetPersistentRNNPlan( + &self, + rnnDesc: cudnnRNNDescriptor_t, + plan: cudnnPersistentRNNPlan_t, + ) -> cudnnStatus_t { + (self + .cudnnSetPersistentRNNPlan + .as_ref() + .expect("Expected function, got error."))(rnnDesc, plan) + } + pub unsafe fn cudnnBuildRNNDynamic( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + miniBatch: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnBuildRNNDynamic + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, miniBatch) + } + pub unsafe fn cudnnGetRNNWorkspaceSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNTrainingReserveSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNTrainingReserveSize + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNTempSpaceSizes( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fMode: cudnnForwardMode_t, + xDesc: cudnnRNNDataDescriptor_t, + workSpaceSize: *mut usize, + reserveSpaceSize: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNTempSpaceSizes + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + fMode, + xDesc, + workSpaceSize, + reserveSpaceSize, + ) + } + pub unsafe fn cudnnGetRNNParamsSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + dataType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNParamsSize + .as_ref() + .expect("Expected function, got error."))( + handle, rnnDesc, xDesc, sizeInBytes, dataType + ) + } + pub unsafe fn cudnnGetRNNWeightSpaceSize( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + weightSpaceSize: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWeightSpaceSize + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, weightSpaceSize) + } + pub unsafe fn cudnnGetRNNLinLayerMatrixParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerMatDesc: cudnnFilterDescriptor_t, + linLayerMat: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNLinLayerMatrixParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + xDesc, + wDesc, + w, + linLayerID, + linLayerMatDesc, + linLayerMat, + ) + } + pub unsafe fn cudnnGetRNNLinLayerBiasParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: ::core::ffi::c_int, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + linLayerID: ::core::ffi::c_int, + linLayerBiasDesc: cudnnFilterDescriptor_t, + linLayerBias: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNLinLayerBiasParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + xDesc, + wDesc, + w, + linLayerID, + linLayerBiasDesc, + linLayerBias, + ) + } + pub unsafe fn cudnnGetRNNWeightParams( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + pseudoLayer: i32, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + linLayerID: i32, + mDesc: cudnnTensorDescriptor_t, + mAddr: *mut *mut ::core::ffi::c_void, + bDesc: cudnnTensorDescriptor_t, + bAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNWeightParams + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + pseudoLayer, + weightSpaceSize, + weightSpace, + linLayerID, + mDesc, + mAddr, + bDesc, + bAddr, + ) + } + pub unsafe fn cudnnRNNForwardInference( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardInference + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnSetRNNPaddingMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: ::core::ffi::c_uint, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNPaddingMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, paddingMode) + } + pub unsafe fn cudnnGetRNNPaddingMode( + &self, + rnnDesc: cudnnRNNDescriptor_t, + paddingMode: *mut ::core::ffi::c_uint, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNPaddingMode + .as_ref() + .expect("Expected function, got error."))(rnnDesc, paddingMode) + } + pub unsafe fn cudnnCreateRNNDataDescriptor( + &self, + rnnDataDesc: *mut cudnnRNNDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDataDesc) + } + pub unsafe fn cudnnDestroyRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))(rnnDataDesc) + } + pub unsafe fn cudnnSetRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: cudnnDataType_t, + layout: cudnnRNNDataLayout_t, + maxSeqLength: ::core::ffi::c_int, + batchSize: ::core::ffi::c_int, + vectorSize: ::core::ffi::c_int, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + rnnDataDesc, + dataType, + layout, + maxSeqLength, + batchSize, + vectorSize, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnGetRNNDataDescriptor( + &self, + rnnDataDesc: cudnnRNNDataDescriptor_t, + dataType: *mut cudnnDataType_t, + layout: *mut cudnnRNNDataLayout_t, + maxSeqLength: *mut ::core::ffi::c_int, + batchSize: *mut ::core::ffi::c_int, + vectorSize: *mut ::core::ffi::c_int, + arrayLengthRequested: ::core::ffi::c_int, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + rnnDataDesc, + dataType, + layout, + maxSeqLength, + batchSize, + vectorSize, + arrayLengthRequested, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnRNNForwardInferenceEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardInferenceEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + kDesc, + keys, + cDesc, + cAttn, + iDesc, + iAttn, + qDesc, + queries, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNForward( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + fwdMode: cudnnForwardMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + hy: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + cy: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNForward + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + fwdMode, + devSeqLengths, + xDesc, + x, + yDesc, + y, + hDesc, + hx, + hy, + cDesc, + cx, + cy, + weightSpaceSize, + weightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnSetRNNAlgorithmDescriptor( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + algoDesc: cudnnAlgorithmDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnSetRNNAlgorithmDescriptor + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, algoDesc) + } + pub unsafe fn cudnnGetRNNForwardInferenceAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNForwardInferenceAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNForwardInferenceAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNForwardInferenceAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCreateSeqDataDescriptor( + &self, + seqDataDesc: *mut cudnnSeqDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))(seqDataDesc) + } + pub unsafe fn cudnnDestroySeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroySeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))(seqDataDesc) + } + pub unsafe fn cudnnSetSeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: cudnnDataType_t, + nbDims: ::core::ffi::c_int, + dimA: *const ::core::ffi::c_int, + axes: *const cudnnSeqDataAxis_t, + seqLengthArraySize: usize, + seqLengthArray: *const ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + seqDataDesc, + dataType, + nbDims, + dimA, + axes, + seqLengthArraySize, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnGetSeqDataDescriptor( + &self, + seqDataDesc: cudnnSeqDataDescriptor_t, + dataType: *mut cudnnDataType_t, + nbDims: *mut ::core::ffi::c_int, + nbDimsRequested: ::core::ffi::c_int, + dimA: *mut ::core::ffi::c_int, + axes: *mut cudnnSeqDataAxis_t, + seqLengthArraySize: *mut usize, + seqLengthSizeRequested: usize, + seqLengthArray: *mut ::core::ffi::c_int, + paddingFill: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetSeqDataDescriptor + .as_ref() + .expect("Expected function, got error."))( + seqDataDesc, + dataType, + nbDims, + nbDimsRequested, + dimA, + axes, + seqLengthArraySize, + seqLengthSizeRequested, + seqLengthArray, + paddingFill, + ) + } + pub unsafe fn cudnnCreateAttnDescriptor( + &self, + attnDesc: *mut cudnnAttnDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateAttnDescriptor + .as_ref() + .expect("Expected function, got error."))(attnDesc) + } + pub unsafe fn cudnnDestroyAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyAttnDescriptor + .as_ref() + .expect("Expected function, got error."))(attnDesc) + } + pub unsafe fn cudnnSetAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + attnMode: ::core::ffi::c_uint, + nHeads: ::core::ffi::c_int, + smScaler: f64, + dataType: cudnnDataType_t, + computePrec: cudnnDataType_t, + mathType: cudnnMathType_t, + attnDropoutDesc: cudnnDropoutDescriptor_t, + postDropoutDesc: cudnnDropoutDescriptor_t, + qSize: ::core::ffi::c_int, + kSize: ::core::ffi::c_int, + vSize: ::core::ffi::c_int, + qProjSize: ::core::ffi::c_int, + kProjSize: ::core::ffi::c_int, + vProjSize: ::core::ffi::c_int, + oProjSize: ::core::ffi::c_int, + qoMaxSeqLength: ::core::ffi::c_int, + kvMaxSeqLength: ::core::ffi::c_int, + maxBatchSize: ::core::ffi::c_int, + maxBeamSize: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetAttnDescriptor + .as_ref() + .expect("Expected function, got error."))( + attnDesc, + attnMode, + nHeads, + smScaler, + dataType, + computePrec, + mathType, + attnDropoutDesc, + postDropoutDesc, + qSize, + kSize, + vSize, + qProjSize, + kProjSize, + vProjSize, + oProjSize, + qoMaxSeqLength, + kvMaxSeqLength, + maxBatchSize, + maxBeamSize, + ) + } + pub unsafe fn cudnnGetAttnDescriptor( + &self, + attnDesc: cudnnAttnDescriptor_t, + attnMode: *mut ::core::ffi::c_uint, + nHeads: *mut ::core::ffi::c_int, + smScaler: *mut f64, + dataType: *mut cudnnDataType_t, + computePrec: *mut cudnnDataType_t, + mathType: *mut cudnnMathType_t, + attnDropoutDesc: *mut cudnnDropoutDescriptor_t, + postDropoutDesc: *mut cudnnDropoutDescriptor_t, + qSize: *mut ::core::ffi::c_int, + kSize: *mut ::core::ffi::c_int, + vSize: *mut ::core::ffi::c_int, + qProjSize: *mut ::core::ffi::c_int, + kProjSize: *mut ::core::ffi::c_int, + vProjSize: *mut ::core::ffi::c_int, + oProjSize: *mut ::core::ffi::c_int, + qoMaxSeqLength: *mut ::core::ffi::c_int, + kvMaxSeqLength: *mut ::core::ffi::c_int, + maxBatchSize: *mut ::core::ffi::c_int, + maxBeamSize: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetAttnDescriptor + .as_ref() + .expect("Expected function, got error."))( + attnDesc, + attnMode, + nHeads, + smScaler, + dataType, + computePrec, + mathType, + attnDropoutDesc, + postDropoutDesc, + qSize, + kSize, + vSize, + qProjSize, + kProjSize, + vProjSize, + oProjSize, + qoMaxSeqLength, + kvMaxSeqLength, + maxBatchSize, + maxBeamSize, + ) + } + pub unsafe fn cudnnGetMultiHeadAttnBuffers( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + weightSizeInBytes: *mut usize, + workSpaceSizeInBytes: *mut usize, + reserveSpaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetMultiHeadAttnBuffers + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + weightSizeInBytes, + workSpaceSizeInBytes, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetMultiHeadAttnWeights( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + wKind: cudnnMultiHeadAttnWeightKind_t, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + wDesc: cudnnTensorDescriptor_t, + wAddr: *mut *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetMultiHeadAttnWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + wKind, + weightSizeInBytes, + weights, + wDesc, + wAddr, + ) + } + pub unsafe fn cudnnMultiHeadAttnForward( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + currIdx: ::core::ffi::c_int, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsQO: *const ::core::ffi::c_int, + devSeqLengthsKV: *const ::core::ffi::c_int, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + residuals: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + oDesc: cudnnSeqDataDescriptor_t, + out: *mut ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnForward + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + currIdx, + loWinIdx, + hiWinIdx, + devSeqLengthsQO, + devSeqLengthsKV, + qDesc, + queries, + residuals, + kDesc, + keys, + vDesc, + values, + oDesc, + out, + weightSizeInBytes, + weights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnAdvInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnAdvInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnRNNForwardTraining( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardTraining + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardData( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + yDesc, + y, + dyDesc, + dy, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardData_v8( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + devSeqLengths: *const i32, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dy: *const ::core::ffi::c_void, + xDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + dhy: *const ::core::ffi::c_void, + dhx: *mut ::core::ffi::c_void, + cDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dcy: *const ::core::ffi::c_void, + dcx: *mut ::core::ffi::c_void, + weightSpaceSize: usize, + weightSpace: *const ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardData_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + devSeqLengths, + yDesc, + y, + dy, + xDesc, + dx, + hDesc, + hx, + dhy, + dhx, + cDesc, + cx, + dcy, + dcx, + weightSpaceSize, + weightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnRNNBackwardWeights( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + workSpace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardWeights_v8( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + addGrad: cudnnWgradMode_t, + devSeqLengths: *const i32, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + weightSpaceSize: usize, + dweightSpace: *mut ::core::ffi::c_void, + workSpaceSize: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSize: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeights_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + addGrad, + devSeqLengths, + xDesc, + x, + hDesc, + hx, + yDesc, + y, + weightSpaceSize, + dweightSpace, + workSpaceSize, + workSpace, + reserveSpaceSize, + reserveSpace, + ) + } + pub unsafe fn cudnnRNNForwardTrainingEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + kDesc: cudnnRNNDataDescriptor_t, + keys: *const ::core::ffi::c_void, + cDesc: cudnnRNNDataDescriptor_t, + cAttn: *mut ::core::ffi::c_void, + iDesc: cudnnRNNDataDescriptor_t, + iAttn: *mut ::core::ffi::c_void, + qDesc: cudnnRNNDataDescriptor_t, + queries: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNForwardTrainingEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + kDesc, + keys, + cDesc, + cAttn, + iDesc, + iAttn, + qDesc, + queries, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardDataEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: cudnnRNNDataDescriptor_t, + dy: *const ::core::ffi::c_void, + dcDesc: cudnnRNNDataDescriptor_t, + dcAttn: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: cudnnRNNDataDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + dkDesc: cudnnRNNDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardDataEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + yDesc, + y, + dyDesc, + dy, + dcDesc, + dcAttn, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + dkDesc, + dkeys, + workSpace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnRNNBackwardWeightsEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + xDesc: cudnnRNNDataDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: cudnnRNNDataDescriptor_t, + y: *const ::core::ffi::c_void, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnRNNBackwardWeightsEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + workSpace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNForwardTrainingAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNForwardTrainingAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNForwardTrainingAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + hyDesc: cudnnTensorDescriptor_t, + hy: *mut ::core::ffi::c_void, + cyDesc: cudnnTensorDescriptor_t, + cy: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNForwardTrainingAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + cxDesc, + cx, + wDesc, + w, + yDesc, + y, + hyDesc, + hy, + cyDesc, + cy, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNBackwardDataAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBackwardDataAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNBackwardDataAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + dyDesc: *const cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + dhyDesc: cudnnTensorDescriptor_t, + dhy: *const ::core::ffi::c_void, + dcyDesc: cudnnTensorDescriptor_t, + dcy: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + cxDesc: cudnnTensorDescriptor_t, + cx: *const ::core::ffi::c_void, + dxDesc: *const cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + dhxDesc: cudnnTensorDescriptor_t, + dhx: *mut ::core::ffi::c_void, + dcxDesc: cudnnTensorDescriptor_t, + dcx: *mut ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNBackwardDataAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + yDesc, + y, + dyDesc, + dy, + dhyDesc, + dhy, + dcyDesc, + dcy, + wDesc, + w, + hxDesc, + hx, + cxDesc, + cx, + dxDesc, + dx, + dhxDesc, + dhx, + dcxDesc, + dcx, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetRNNBackwardWeightsAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetRNNBackwardWeightsAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, rnnDesc, count) + } + pub unsafe fn cudnnFindRNNBackwardWeightsAlgorithmEx( + &self, + handle: cudnnHandle_t, + rnnDesc: cudnnRNNDescriptor_t, + seqLength: ::core::ffi::c_int, + xDesc: *const cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + hxDesc: cudnnTensorDescriptor_t, + hx: *const ::core::ffi::c_void, + yDesc: *const cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + findIntensity: f32, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnAlgorithmPerformance_t, + workspace: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + reserveSpace: *const ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindRNNBackwardWeightsAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + rnnDesc, + seqLength, + xDesc, + x, + hxDesc, + hx, + yDesc, + y, + findIntensity, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workspace, + workSpaceSizeInBytes, + dwDesc, + dw, + reserveSpace, + reserveSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnMultiHeadAttnBackwardData( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + loWinIdx: *const ::core::ffi::c_int, + hiWinIdx: *const ::core::ffi::c_int, + devSeqLengthsDQDO: *const ::core::ffi::c_int, + devSeqLengthsDKDV: *const ::core::ffi::c_int, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + dqDesc: cudnnSeqDataDescriptor_t, + dqueries: *mut ::core::ffi::c_void, + queries: *const ::core::ffi::c_void, + dkDesc: cudnnSeqDataDescriptor_t, + dkeys: *mut ::core::ffi::c_void, + keys: *const ::core::ffi::c_void, + dvDesc: cudnnSeqDataDescriptor_t, + dvalues: *mut ::core::ffi::c_void, + values: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + loWinIdx, + hiWinIdx, + devSeqLengthsDQDO, + devSeqLengthsDKDV, + doDesc, + dout, + dqDesc, + dqueries, + queries, + dkDesc, + dkeys, + keys, + dvDesc, + dvalues, + values, + weightSizeInBytes, + weights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnMultiHeadAttnBackwardWeights( + &self, + handle: cudnnHandle_t, + attnDesc: cudnnAttnDescriptor_t, + addGrad: cudnnWgradMode_t, + qDesc: cudnnSeqDataDescriptor_t, + queries: *const ::core::ffi::c_void, + kDesc: cudnnSeqDataDescriptor_t, + keys: *const ::core::ffi::c_void, + vDesc: cudnnSeqDataDescriptor_t, + values: *const ::core::ffi::c_void, + doDesc: cudnnSeqDataDescriptor_t, + dout: *const ::core::ffi::c_void, + weightSizeInBytes: usize, + weights: *const ::core::ffi::c_void, + dweights: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workSpace: *mut ::core::ffi::c_void, + reserveSpaceSizeInBytes: usize, + reserveSpace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnMultiHeadAttnBackwardWeights + .as_ref() + .expect("Expected function, got error."))( + handle, + attnDesc, + addGrad, + qDesc, + queries, + kDesc, + keys, + vDesc, + values, + doDesc, + dout, + weightSizeInBytes, + weights, + dweights, + workSpaceSizeInBytes, + workSpace, + reserveSpaceSizeInBytes, + reserveSpace, + ) + } + pub unsafe fn cudnnCreateCTCLossDescriptor( + &self, + ctcLossDesc: *mut cudnnCTCLossDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc) + } + pub unsafe fn cudnnSetCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc, compType) + } + pub unsafe fn cudnnSetCTCLossDescriptorEx( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, compType, normMode, gradMode + ) + } + pub unsafe fn cudnnSetCTCLossDescriptor_v8( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: cudnnDataType_t, + normMode: cudnnLossNormalizationMode_t, + gradMode: cudnnNanPropagation_t, + maxLabelLength: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetCTCLossDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, + compType, + normMode, + gradMode, + maxLabelLength, + ) + } + pub unsafe fn cudnnGetCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc, compType) + } + pub unsafe fn cudnnGetCTCLossDescriptorEx( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptorEx + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, compType, normMode, gradMode + ) + } + pub unsafe fn cudnnGetCTCLossDescriptor_v8( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + compType: *mut cudnnDataType_t, + normMode: *mut cudnnLossNormalizationMode_t, + gradMode: *mut cudnnNanPropagation_t, + maxLabelLength: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossDescriptor_v8 + .as_ref() + .expect("Expected function, got error."))( + ctcLossDesc, + compType, + normMode, + gradMode, + maxLabelLength, + ) + } + pub unsafe fn cudnnDestroyCTCLossDescriptor( + &self, + ctcLossDesc: cudnnCTCLossDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyCTCLossDescriptor + .as_ref() + .expect("Expected function, got error."))(ctcLossDesc) + } + pub unsafe fn cudnnCTCLoss( + &self, + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + hostLabels: *const ::core::ffi::c_int, + hostLabelLengths: *const ::core::ffi::c_int, + hostInputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + workspace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnCTCLoss + .as_ref() + .expect("Expected function, got error."))( + handle, + probsDesc, + probs, + hostLabels, + hostLabelLengths, + hostInputLengths, + costs, + gradientsDesc, + gradients, + algo, + ctcLossDesc, + workspace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnCTCLoss_v8( + &self, + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + probs: *const ::core::ffi::c_void, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + costs: *mut ::core::ffi::c_void, + gradientsDesc: cudnnTensorDescriptor_t, + gradients: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + workspace: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnCTCLoss_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + algo, + ctcLossDesc, + probsDesc, + probs, + labels, + labelLengths, + inputLengths, + costs, + gradientsDesc, + gradients, + workSpaceSizeInBytes, + workspace, + ) + } + pub unsafe fn cudnnGetCTCLossWorkspaceSize( + &self, + handle: cudnnHandle_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + labels: *const ::core::ffi::c_int, + labelLengths: *const ::core::ffi::c_int, + inputLengths: *const ::core::ffi::c_int, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + probsDesc, + gradientsDesc, + labels, + labelLengths, + inputLengths, + algo, + ctcLossDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnGetCTCLossWorkspaceSize_v8( + &self, + handle: cudnnHandle_t, + algo: cudnnCTCLossAlgo_t, + ctcLossDesc: cudnnCTCLossDescriptor_t, + probsDesc: cudnnTensorDescriptor_t, + gradientsDesc: cudnnTensorDescriptor_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetCTCLossWorkspaceSize_v8 + .as_ref() + .expect("Expected function, got error."))( + handle, + algo, + ctcLossDesc, + probsDesc, + gradientsDesc, + sizeInBytes, + ) + } + pub unsafe fn cudnnAdvTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnAdvTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnCreateConvolutionDescriptor( + &self, + convDesc: *mut cudnnConvolutionDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateConvolutionDescriptor + .as_ref() + .expect("Expected function, got error."))(convDesc) + } + pub unsafe fn cudnnDestroyConvolutionDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyConvolutionDescriptor + .as_ref() + .expect("Expected function, got error."))(convDesc) + } + pub unsafe fn cudnnSetConvolutionMathType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + mathType: cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionMathType + .as_ref() + .expect("Expected function, got error."))(convDesc, mathType) + } + pub unsafe fn cudnnGetConvolutionMathType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + mathType: *mut cudnnMathType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionMathType + .as_ref() + .expect("Expected function, got error."))(convDesc, mathType) + } + pub unsafe fn cudnnSetConvolutionGroupCount( + &self, + convDesc: cudnnConvolutionDescriptor_t, + groupCount: ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionGroupCount + .as_ref() + .expect("Expected function, got error."))(convDesc, groupCount) + } + pub unsafe fn cudnnGetConvolutionGroupCount( + &self, + convDesc: cudnnConvolutionDescriptor_t, + groupCount: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionGroupCount + .as_ref() + .expect("Expected function, got error."))(convDesc, groupCount) + } + pub unsafe fn cudnnSetConvolutionReorderType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + reorderType: cudnnReorderType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionReorderType + .as_ref() + .expect("Expected function, got error."))(convDesc, reorderType) + } + pub unsafe fn cudnnGetConvolutionReorderType( + &self, + convDesc: cudnnConvolutionDescriptor_t, + reorderType: *mut cudnnReorderType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionReorderType + .as_ref() + .expect("Expected function, got error."))(convDesc, reorderType) + } + pub unsafe fn cudnnSetConvolution2dDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + pad_h: ::core::ffi::c_int, + pad_w: ::core::ffi::c_int, + u: ::core::ffi::c_int, + v: ::core::ffi::c_int, + dilation_h: ::core::ffi::c_int, + dilation_w: ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolution2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + pad_h, + pad_w, + u, + v, + dilation_h, + dilation_w, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolution2dDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + pad_h: *mut ::core::ffi::c_int, + pad_w: *mut ::core::ffi::c_int, + u: *mut ::core::ffi::c_int, + v: *mut ::core::ffi::c_int, + dilation_h: *mut ::core::ffi::c_int, + dilation_w: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolution2dDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + pad_h, + pad_w, + u, + v, + dilation_h, + dilation_w, + mode, + computeType, + ) + } + pub unsafe fn cudnnSetConvolutionNdDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + arrayLength: ::core::ffi::c_int, + padA: *const ::core::ffi::c_int, + filterStrideA: *const ::core::ffi::c_int, + dilationA: *const ::core::ffi::c_int, + mode: cudnnConvolutionMode_t, + computeType: cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnSetConvolutionNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + arrayLength, + padA, + filterStrideA, + dilationA, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolutionNdDescriptor( + &self, + convDesc: cudnnConvolutionDescriptor_t, + arrayLengthRequested: ::core::ffi::c_int, + arrayLength: *mut ::core::ffi::c_int, + padA: *mut ::core::ffi::c_int, + strideA: *mut ::core::ffi::c_int, + dilationA: *mut ::core::ffi::c_int, + mode: *mut cudnnConvolutionMode_t, + computeType: *mut cudnnDataType_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionNdDescriptor + .as_ref() + .expect("Expected function, got error."))( + convDesc, + arrayLengthRequested, + arrayLength, + padA, + strideA, + dilationA, + mode, + computeType, + ) + } + pub unsafe fn cudnnGetConvolution2dForwardOutputDim( + &self, + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + n: *mut ::core::ffi::c_int, + c: *mut ::core::ffi::c_int, + h: *mut ::core::ffi::c_int, + w: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolution2dForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + convDesc, + inputTensorDesc, + filterDesc, + n, + c, + h, + w, + ) + } + pub unsafe fn cudnnGetConvolutionNdForwardOutputDim( + &self, + convDesc: cudnnConvolutionDescriptor_t, + inputTensorDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + nbDims: ::core::ffi::c_int, + tensorOuputDimA: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionNdForwardOutputDim + .as_ref() + .expect("Expected function, got error."))( + convDesc, + inputTensorDesc, + filterDesc, + nbDims, + tensorOuputDimA, + ) + } + pub unsafe fn cudnnGetConvolutionForwardAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnGetConvolutionForwardAlgorithm_v7( + &self, + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + filterDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + destDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + srcDesc, + filterDesc, + convDesc, + destDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionForwardAlgorithm( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionForwardAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + wDesc, + convDesc, + yDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionForwardAlgorithmEx( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionFwdAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionForwardAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + x, + wDesc, + w, + convDesc, + yDesc, + y, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnIm2Col( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + colBuffer: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnIm2Col + .as_ref() + .expect("Expected function, got error."))( + handle, xDesc, x, wDesc, convDesc, colBuffer + ) + } + pub unsafe fn cudnnReorderFilterAndBias( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + reorderType: cudnnReorderType_t, + filterData: *const ::core::ffi::c_void, + reorderedFilterData: *mut ::core::ffi::c_void, + reorderBias: ::core::ffi::c_int, + biasData: *const ::core::ffi::c_void, + reorderedBiasData: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnReorderFilterAndBias + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + reorderType, + filterData, + reorderedFilterData, + reorderBias, + biasData, + reorderedBiasData, + ) + } + pub unsafe fn cudnnGetConvolutionForwardWorkspaceSize( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + wDesc: cudnnFilterDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionForwardWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + wDesc, + convDesc, + yDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionForward( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionForward + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + xDesc, + x, + wDesc, + w, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + yDesc, + y, + ) + } + pub unsafe fn cudnnConvolutionBiasActivationForward( + &self, + handle: cudnnHandle_t, + alpha1: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionFwdAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + alpha2: *const ::core::ffi::c_void, + zDesc: cudnnTensorDescriptor_t, + z: *const ::core::ffi::c_void, + biasDesc: cudnnTensorDescriptor_t, + bias: *const ::core::ffi::c_void, + activationDesc: cudnnActivationDescriptor_t, + yDesc: cudnnTensorDescriptor_t, + y: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBiasActivationForward + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha1, + xDesc, + x, + wDesc, + w, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + alpha2, + zDesc, + z, + biasDesc, + bias, + activationDesc, + yDesc, + y, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithm( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardDataAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + dyDesc, + convDesc, + dxDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithmEx( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardDataAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + w, + dyDesc, + dy, + convDesc, + dxDesc, + dx, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithm_v7( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + diffDesc, + convDesc, + gradDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardDataWorkspaceSize( + &self, + handle: cudnnHandle_t, + wDesc: cudnnFilterDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dxDesc: cudnnTensorDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardDataWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + wDesc, + dyDesc, + convDesc, + dxDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionBackwardData( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + wDesc: cudnnFilterDescriptor_t, + w: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdDataAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dxDesc: cudnnTensorDescriptor_t, + dx: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardData + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + wDesc, + w, + dyDesc, + dy, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + dxDesc, + dx, + ) + } + pub unsafe fn cudnnGetFoldedConvBackwardDataDescriptors( + &self, + handle: cudnnHandle_t, + filterDesc: cudnnFilterDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnTensorDescriptor_t, + transformFormat: cudnnTensorFormat_t, + foldedFilterDesc: cudnnFilterDescriptor_t, + paddedDiffDesc: cudnnTensorDescriptor_t, + foldedConvDesc: cudnnConvolutionDescriptor_t, + foldedGradDesc: cudnnTensorDescriptor_t, + filterFoldTransDesc: cudnnTensorTransformDescriptor_t, + diffPadTransDesc: cudnnTensorTransformDescriptor_t, + gradFoldTransDesc: cudnnTensorTransformDescriptor_t, + gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnGetFoldedConvBackwardDataDescriptors + .as_ref() + .expect("Expected function, got error."))( + handle, + filterDesc, + diffDesc, + convDesc, + gradDesc, + transformFormat, + foldedFilterDesc, + paddedDiffDesc, + foldedConvDesc, + foldedGradDesc, + filterFoldTransDesc, + diffPadTransDesc, + gradFoldTransDesc, + gradUnfoldTransDesc, + ) + } + pub unsafe fn cudnnCnnInferVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnCnnInferVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithmMaxCount( + &self, + handle: cudnnHandle_t, + count: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterAlgorithmMaxCount + .as_ref() + .expect("Expected function, got error."))(handle, count) + } + pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithm( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardFilterAlgorithm + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + dyDesc, + convDesc, + dwDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithmEx( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + y: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + ) -> cudnnStatus_t { + (self + .cudnnFindConvolutionBackwardFilterAlgorithmEx + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + x, + dyDesc, + y, + convDesc, + dwDesc, + dw, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + workSpace, + workSpaceSizeInBytes, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithm_v7( + &self, + handle: cudnnHandle_t, + srcDesc: cudnnTensorDescriptor_t, + diffDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + requestedAlgoCount: ::core::ffi::c_int, + returnedAlgoCount: *mut ::core::ffi::c_int, + perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterAlgorithm_v7 + .as_ref() + .expect("Expected function, got error."))( + handle, + srcDesc, + diffDesc, + convDesc, + gradDesc, + requestedAlgoCount, + returnedAlgoCount, + perfResults, + ) + } + pub unsafe fn cudnnGetConvolutionBackwardFilterWorkspaceSize( + &self, + handle: cudnnHandle_t, + xDesc: cudnnTensorDescriptor_t, + dyDesc: cudnnTensorDescriptor_t, + convDesc: cudnnConvolutionDescriptor_t, + gradDesc: cudnnFilterDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + sizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnGetConvolutionBackwardFilterWorkspaceSize + .as_ref() + .expect("Expected function, got error."))( + handle, + xDesc, + dyDesc, + convDesc, + gradDesc, + algo, + sizeInBytes, + ) + } + pub unsafe fn cudnnConvolutionBackwardFilter( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + xDesc: cudnnTensorDescriptor_t, + x: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + convDesc: cudnnConvolutionDescriptor_t, + algo: cudnnConvolutionBwdFilterAlgo_t, + workSpace: *mut ::core::ffi::c_void, + workSpaceSizeInBytes: usize, + beta: *const ::core::ffi::c_void, + dwDesc: cudnnFilterDescriptor_t, + dw: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardFilter + .as_ref() + .expect("Expected function, got error."))( + handle, + alpha, + xDesc, + x, + dyDesc, + dy, + convDesc, + algo, + workSpace, + workSpaceSizeInBytes, + beta, + dwDesc, + dw, + ) + } + pub unsafe fn cudnnConvolutionBackwardBias( + &self, + handle: cudnnHandle_t, + alpha: *const ::core::ffi::c_void, + dyDesc: cudnnTensorDescriptor_t, + dy: *const ::core::ffi::c_void, + beta: *const ::core::ffi::c_void, + dbDesc: cudnnTensorDescriptor_t, + db: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnConvolutionBackwardBias + .as_ref() + .expect("Expected function, got error."))( + handle, alpha, dyDesc, dy, beta, dbDesc, db + ) + } + pub unsafe fn cudnnCreateFusedOpsConstParamPack( + &self, + constPack: *mut cudnnFusedOpsConstParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsConstParamPack + .as_ref() + .expect("Expected function, got error."))(constPack, ops) + } + pub unsafe fn cudnnDestroyFusedOpsConstParamPack( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsConstParamPack + .as_ref() + .expect("Expected function, got error."))(constPack) + } + pub unsafe fn cudnnSetFusedOpsConstParamPackAttribute( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetFusedOpsConstParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(constPack, paramLabel, param) + } + pub unsafe fn cudnnGetFusedOpsConstParamPackAttribute( + &self, + constPack: cudnnFusedOpsConstParamPack_t, + paramLabel: cudnnFusedOpsConstParamLabel_t, + param: *mut ::core::ffi::c_void, + isNULL: *mut ::core::ffi::c_int, + ) -> cudnnStatus_t { + (self + .cudnnGetFusedOpsConstParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(constPack, paramLabel, param, isNULL) + } + pub unsafe fn cudnnCreateFusedOpsVariantParamPack( + &self, + varPack: *mut cudnnFusedOpsVariantParamPack_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsVariantParamPack + .as_ref() + .expect("Expected function, got error."))(varPack, ops) + } + pub unsafe fn cudnnDestroyFusedOpsVariantParamPack( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsVariantParamPack + .as_ref() + .expect("Expected function, got error."))(varPack) + } + pub unsafe fn cudnnSetFusedOpsVariantParamPackAttribute( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnSetFusedOpsVariantParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(varPack, paramLabel, ptr) + } + pub unsafe fn cudnnGetFusedOpsVariantParamPackAttribute( + &self, + varPack: cudnnFusedOpsVariantParamPack_t, + paramLabel: cudnnFusedOpsVariantParamLabel_t, + ptr: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnGetFusedOpsVariantParamPackAttribute + .as_ref() + .expect("Expected function, got error."))(varPack, paramLabel, ptr) + } + pub unsafe fn cudnnCreateFusedOpsPlan( + &self, + plan: *mut cudnnFusedOpsPlan_t, + ops: cudnnFusedOps_t, + ) -> cudnnStatus_t { + (self + .cudnnCreateFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))(plan, ops) + } + pub unsafe fn cudnnDestroyFusedOpsPlan(&self, plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t { + (self + .cudnnDestroyFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))(plan) + } + pub unsafe fn cudnnMakeFusedOpsPlan( + &self, + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + constPack: cudnnFusedOpsConstParamPack_t, + workspaceSizeInBytes: *mut usize, + ) -> cudnnStatus_t { + (self + .cudnnMakeFusedOpsPlan + .as_ref() + .expect("Expected function, got error."))( + handle, plan, constPack, workspaceSizeInBytes + ) + } + pub unsafe fn cudnnFusedOpsExecute( + &self, + handle: cudnnHandle_t, + plan: cudnnFusedOpsPlan_t, + varPack: cudnnFusedOpsVariantParamPack_t, + ) -> cudnnStatus_t { + (self + .cudnnFusedOpsExecute + .as_ref() + .expect("Expected function, got error."))(handle, plan, varPack) + } + pub unsafe fn cudnnCnnTrainVersionCheck(&self) -> cudnnStatus_t { + (self + .cudnnCnnTrainVersionCheck + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cudnnBackendCreateDescriptor( + &self, + descriptorType: cudnnBackendDescriptorType_t, + descriptor: *mut cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendCreateDescriptor + .as_ref() + .expect("Expected function, got error."))(descriptorType, descriptor) + } + pub unsafe fn cudnnBackendDestroyDescriptor( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendDestroyDescriptor + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendInitialize( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendInitialize + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendFinalize( + &self, + descriptor: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendFinalize + .as_ref() + .expect("Expected function, got error."))(descriptor) + } + pub unsafe fn cudnnBackendSetAttribute( + &self, + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + elementCount: i64, + arrayOfElements: *const ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBackendSetAttribute + .as_ref() + .expect("Expected function, got error."))( + descriptor, + attributeName, + attributeType, + elementCount, + arrayOfElements, + ) + } + pub unsafe fn cudnnBackendGetAttribute( + &self, + descriptor: cudnnBackendDescriptor_t, + attributeName: cudnnBackendAttributeName_t, + attributeType: cudnnBackendAttributeType_t, + requestedElementCount: i64, + elementCount: *mut i64, + arrayOfElements: *mut ::core::ffi::c_void, + ) -> cudnnStatus_t { + (self + .cudnnBackendGetAttribute + .as_ref() + .expect("Expected function, got error."))( + descriptor, + attributeName, + attributeType, + requestedElementCount, + elementCount, + arrayOfElements, + ) + } + pub unsafe fn cudnnBackendExecute( + &self, + handle: cudnnHandle_t, + executionPlan: cudnnBackendDescriptor_t, + variantPack: cudnnBackendDescriptor_t, + ) -> cudnnStatus_t { + (self + .cudnnBackendExecute + .as_ref() + .expect("Expected function, got error."))(handle, executionPlan, variantPack) + } +} diff --git a/src/curand/sys/mod.rs b/src/curand/sys/mod.rs index aef8fb0c..43fb7e6f 100644 --- a/src/curand/sys/mod.rs +++ b/src/curand/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/curand/sys/sys_11050.rs b/src/curand/sys/sys_11050.rs new file mode 100644 index 00000000..fed5df7a --- /dev/null +++ b/src/curand/sys/sys_11050.rs @@ -0,0 +1,756 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandStatus { + CURAND_STATUS_SUCCESS = 0, + CURAND_STATUS_VERSION_MISMATCH = 100, + CURAND_STATUS_NOT_INITIALIZED = 101, + CURAND_STATUS_ALLOCATION_FAILED = 102, + CURAND_STATUS_TYPE_ERROR = 103, + CURAND_STATUS_OUT_OF_RANGE = 104, + CURAND_STATUS_LENGTH_NOT_MULTIPLE = 105, + CURAND_STATUS_DOUBLE_PRECISION_REQUIRED = 106, + CURAND_STATUS_LAUNCH_FAILURE = 201, + CURAND_STATUS_PREEXISTING_FAILURE = 202, + CURAND_STATUS_INITIALIZATION_FAILED = 203, + CURAND_STATUS_ARCH_MISMATCH = 204, + CURAND_STATUS_INTERNAL_ERROR = 999, +} +pub use self::curandStatus as curandStatus_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandRngType { + CURAND_RNG_TEST = 0, + CURAND_RNG_PSEUDO_DEFAULT = 100, + CURAND_RNG_PSEUDO_XORWOW = 101, + CURAND_RNG_PSEUDO_MRG32K3A = 121, + CURAND_RNG_PSEUDO_MTGP32 = 141, + CURAND_RNG_PSEUDO_MT19937 = 142, + CURAND_RNG_PSEUDO_PHILOX4_32_10 = 161, + CURAND_RNG_QUASI_DEFAULT = 200, + CURAND_RNG_QUASI_SOBOL32 = 201, + CURAND_RNG_QUASI_SCRAMBLED_SOBOL32 = 202, + CURAND_RNG_QUASI_SOBOL64 = 203, + CURAND_RNG_QUASI_SCRAMBLED_SOBOL64 = 204, +} +pub use self::curandRngType as curandRngType_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandOrdering { + CURAND_ORDERING_PSEUDO_BEST = 100, + CURAND_ORDERING_PSEUDO_DEFAULT = 101, + CURAND_ORDERING_PSEUDO_SEEDED = 102, + CURAND_ORDERING_PSEUDO_LEGACY = 103, + CURAND_ORDERING_PSEUDO_DYNAMIC = 104, + CURAND_ORDERING_QUASI_DEFAULT = 201, +} +pub use self::curandOrdering as curandOrdering_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandDirectionVectorSet { + CURAND_DIRECTION_VECTORS_32_JOEKUO6 = 101, + CURAND_SCRAMBLED_DIRECTION_VECTORS_32_JOEKUO6 = 102, + CURAND_DIRECTION_VECTORS_64_JOEKUO6 = 103, + CURAND_SCRAMBLED_DIRECTION_VECTORS_64_JOEKUO6 = 104, +} +pub use self::curandDirectionVectorSet as curandDirectionVectorSet_t; +pub type curandDirectionVectors32_t = [::core::ffi::c_uint; 32usize]; +pub type curandDirectionVectors64_t = [::core::ffi::c_ulonglong; 64usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandGenerator_st { + _unused: [u8; 0], +} +pub type curandGenerator_t = *mut curandGenerator_st; +pub type curandDistribution_st = f64; +pub type curandDistribution_t = *mut curandDistribution_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDistributionShift_st { + _unused: [u8; 0], +} +pub type curandDistributionShift_t = *mut curandDistributionShift_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDistributionM2Shift_st { + _unused: [u8; 0], +} +pub type curandDistributionM2Shift_t = *mut curandDistributionM2Shift_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandHistogramM2_st { + _unused: [u8; 0], +} +pub type curandHistogramM2_t = *mut curandHistogramM2_st; +pub type curandHistogramM2K_st = ::core::ffi::c_uint; +pub type curandHistogramM2K_t = *mut curandHistogramM2K_st; +pub type curandHistogramM2V_st = curandDistribution_st; +pub type curandHistogramM2V_t = *mut curandHistogramM2V_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDiscreteDistribution_st { + _unused: [u8; 0], +} +pub type curandDiscreteDistribution_t = *mut curandDiscreteDistribution_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandMethod { + CURAND_CHOOSE_BEST = 0, + CURAND_ITR = 1, + CURAND_KNUTH = 2, + CURAND_HITR = 3, + CURAND_M1 = 4, + CURAND_M2 = 5, + CURAND_BINARY_SEARCH = 6, + CURAND_DISCRETE_GAUSS = 7, + CURAND_REJECTION = 8, + CURAND_DEVICE_API = 9, + CURAND_FAST_REJECTION = 10, + CURAND_3RD = 11, + CURAND_DEFINITION = 12, + CURAND_POISSON = 13, +} +pub use self::curandMethod as curandMethod_t; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub curandCreateGenerator: Result< + unsafe extern "C" fn( + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandCreateGeneratorHost: Result< + unsafe extern "C" fn( + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandDestroyGenerator: Result< + unsafe extern "C" fn(generator: curandGenerator_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetVersion: Result< + unsafe extern "C" fn(version: *mut ::core::ffi::c_int) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetStream: Result< + unsafe extern "C" fn(generator: curandGenerator_t, stream: cudaStream_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetPseudoRandomGeneratorSeed: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + seed: ::core::ffi::c_ulonglong, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetGeneratorOffset: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + offset: ::core::ffi::c_ulonglong, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetGeneratorOrdering: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + order: curandOrdering_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetQuasiRandomGeneratorDimensions: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + num_dimensions: ::core::ffi::c_uint, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerate: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLongLong: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_ulonglong, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateUniform: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateUniformDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateNormal: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateNormalDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLogNormal: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLogNormalDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandCreatePoissonDistribution: Result< + unsafe extern "C" fn( + lambda: f64, + discrete_distribution: *mut curandDiscreteDistribution_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandDestroyDistribution: Result< + unsafe extern "C" fn(discrete_distribution: curandDiscreteDistribution_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGeneratePoisson: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGeneratePoissonMethod: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + method: curandMethod_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateBinomial: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateBinomialMethod: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + method: curandMethod_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateSeeds: Result< + unsafe extern "C" fn(generator: curandGenerator_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetDirectionVectors32: Result< + unsafe extern "C" fn( + vectors: *mut *mut curandDirectionVectors32_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetScrambleConstants32: Result< + unsafe extern "C" fn(constants: *mut *mut ::core::ffi::c_uint) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetDirectionVectors64: Result< + unsafe extern "C" fn( + vectors: *mut *mut curandDirectionVectors64_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetScrambleConstants64: Result< + unsafe extern "C" fn(constants: *mut *mut ::core::ffi::c_ulonglong) -> curandStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let curandCreateGenerator = __library.get(b"curandCreateGenerator\0").map(|sym| *sym); + let curandCreateGeneratorHost = __library + .get(b"curandCreateGeneratorHost\0") + .map(|sym| *sym); + let curandDestroyGenerator = __library.get(b"curandDestroyGenerator\0").map(|sym| *sym); + let curandGetVersion = __library.get(b"curandGetVersion\0").map(|sym| *sym); + let curandGetProperty = __library.get(b"curandGetProperty\0").map(|sym| *sym); + let curandSetStream = __library.get(b"curandSetStream\0").map(|sym| *sym); + let curandSetPseudoRandomGeneratorSeed = __library + .get(b"curandSetPseudoRandomGeneratorSeed\0") + .map(|sym| *sym); + let curandSetGeneratorOffset = __library.get(b"curandSetGeneratorOffset\0").map(|sym| *sym); + let curandSetGeneratorOrdering = __library + .get(b"curandSetGeneratorOrdering\0") + .map(|sym| *sym); + let curandSetQuasiRandomGeneratorDimensions = __library + .get(b"curandSetQuasiRandomGeneratorDimensions\0") + .map(|sym| *sym); + let curandGenerate = __library.get(b"curandGenerate\0").map(|sym| *sym); + let curandGenerateLongLong = __library.get(b"curandGenerateLongLong\0").map(|sym| *sym); + let curandGenerateUniform = __library.get(b"curandGenerateUniform\0").map(|sym| *sym); + let curandGenerateUniformDouble = __library + .get(b"curandGenerateUniformDouble\0") + .map(|sym| *sym); + let curandGenerateNormal = __library.get(b"curandGenerateNormal\0").map(|sym| *sym); + let curandGenerateNormalDouble = __library + .get(b"curandGenerateNormalDouble\0") + .map(|sym| *sym); + let curandGenerateLogNormal = __library.get(b"curandGenerateLogNormal\0").map(|sym| *sym); + let curandGenerateLogNormalDouble = __library + .get(b"curandGenerateLogNormalDouble\0") + .map(|sym| *sym); + let curandCreatePoissonDistribution = __library + .get(b"curandCreatePoissonDistribution\0") + .map(|sym| *sym); + let curandDestroyDistribution = __library + .get(b"curandDestroyDistribution\0") + .map(|sym| *sym); + let curandGeneratePoisson = __library.get(b"curandGeneratePoisson\0").map(|sym| *sym); + let curandGeneratePoissonMethod = __library + .get(b"curandGeneratePoissonMethod\0") + .map(|sym| *sym); + let curandGenerateBinomial = __library.get(b"curandGenerateBinomial\0").map(|sym| *sym); + let curandGenerateBinomialMethod = __library + .get(b"curandGenerateBinomialMethod\0") + .map(|sym| *sym); + let curandGenerateSeeds = __library.get(b"curandGenerateSeeds\0").map(|sym| *sym); + let curandGetDirectionVectors32 = __library + .get(b"curandGetDirectionVectors32\0") + .map(|sym| *sym); + let curandGetScrambleConstants32 = __library + .get(b"curandGetScrambleConstants32\0") + .map(|sym| *sym); + let curandGetDirectionVectors64 = __library + .get(b"curandGetDirectionVectors64\0") + .map(|sym| *sym); + let curandGetScrambleConstants64 = __library + .get(b"curandGetScrambleConstants64\0") + .map(|sym| *sym); + Ok(Lib { + __library, + curandCreateGenerator, + curandCreateGeneratorHost, + curandDestroyGenerator, + curandGetVersion, + curandGetProperty, + curandSetStream, + curandSetPseudoRandomGeneratorSeed, + curandSetGeneratorOffset, + curandSetGeneratorOrdering, + curandSetQuasiRandomGeneratorDimensions, + curandGenerate, + curandGenerateLongLong, + curandGenerateUniform, + curandGenerateUniformDouble, + curandGenerateNormal, + curandGenerateNormalDouble, + curandGenerateLogNormal, + curandGenerateLogNormalDouble, + curandCreatePoissonDistribution, + curandDestroyDistribution, + curandGeneratePoisson, + curandGeneratePoissonMethod, + curandGenerateBinomial, + curandGenerateBinomialMethod, + curandGenerateSeeds, + curandGetDirectionVectors32, + curandGetScrambleConstants32, + curandGetDirectionVectors64, + curandGetScrambleConstants64, + }) + } + pub unsafe fn curandCreateGenerator( + &self, + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t { + (self + .curandCreateGenerator + .as_ref() + .expect("Expected function, got error."))(generator, rng_type) + } + pub unsafe fn curandCreateGeneratorHost( + &self, + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t { + (self + .curandCreateGeneratorHost + .as_ref() + .expect("Expected function, got error."))(generator, rng_type) + } + pub unsafe fn curandDestroyGenerator(&self, generator: curandGenerator_t) -> curandStatus_t { + (self + .curandDestroyGenerator + .as_ref() + .expect("Expected function, got error."))(generator) + } + pub unsafe fn curandGetVersion(&self, version: *mut ::core::ffi::c_int) -> curandStatus_t { + (self + .curandGetVersion + .as_ref() + .expect("Expected function, got error."))(version) + } + pub unsafe fn curandGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> curandStatus_t { + (self + .curandGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn curandSetStream( + &self, + generator: curandGenerator_t, + stream: cudaStream_t, + ) -> curandStatus_t { + (self + .curandSetStream + .as_ref() + .expect("Expected function, got error."))(generator, stream) + } + pub unsafe fn curandSetPseudoRandomGeneratorSeed( + &self, + generator: curandGenerator_t, + seed: ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandSetPseudoRandomGeneratorSeed + .as_ref() + .expect("Expected function, got error."))(generator, seed) + } + pub unsafe fn curandSetGeneratorOffset( + &self, + generator: curandGenerator_t, + offset: ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandSetGeneratorOffset + .as_ref() + .expect("Expected function, got error."))(generator, offset) + } + pub unsafe fn curandSetGeneratorOrdering( + &self, + generator: curandGenerator_t, + order: curandOrdering_t, + ) -> curandStatus_t { + (self + .curandSetGeneratorOrdering + .as_ref() + .expect("Expected function, got error."))(generator, order) + } + pub unsafe fn curandSetQuasiRandomGeneratorDimensions( + &self, + generator: curandGenerator_t, + num_dimensions: ::core::ffi::c_uint, + ) -> curandStatus_t { + (self + .curandSetQuasiRandomGeneratorDimensions + .as_ref() + .expect("Expected function, got error."))(generator, num_dimensions) + } + pub unsafe fn curandGenerate( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerate + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateLongLong( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_ulonglong, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateLongLong + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateUniform( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateUniform + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateUniformDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateUniformDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateNormal( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t { + (self + .curandGenerateNormal + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateNormalDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t { + (self + .curandGenerateNormalDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateLogNormal( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t { + (self + .curandGenerateLogNormal + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateLogNormalDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t { + (self + .curandGenerateLogNormalDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandCreatePoissonDistribution( + &self, + lambda: f64, + discrete_distribution: *mut curandDiscreteDistribution_t, + ) -> curandStatus_t { + (self + .curandCreatePoissonDistribution + .as_ref() + .expect("Expected function, got error."))(lambda, discrete_distribution) + } + pub unsafe fn curandDestroyDistribution( + &self, + discrete_distribution: curandDiscreteDistribution_t, + ) -> curandStatus_t { + (self + .curandDestroyDistribution + .as_ref() + .expect("Expected function, got error."))(discrete_distribution) + } + pub unsafe fn curandGeneratePoisson( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + ) -> curandStatus_t { + (self + .curandGeneratePoisson + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, lambda) + } + pub unsafe fn curandGeneratePoissonMethod( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + method: curandMethod_t, + ) -> curandStatus_t { + (self + .curandGeneratePoissonMethod + .as_ref() + .expect("Expected function, got error."))( + generator, outputPtr, n, lambda, method + ) + } + pub unsafe fn curandGenerateBinomial( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + ) -> curandStatus_t { + (self + .curandGenerateBinomial + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num, n, p) + } + pub unsafe fn curandGenerateBinomialMethod( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + method: curandMethod_t, + ) -> curandStatus_t { + (self + .curandGenerateBinomialMethod + .as_ref() + .expect("Expected function, got error."))( + generator, outputPtr, num, n, p, method + ) + } + pub unsafe fn curandGenerateSeeds(&self, generator: curandGenerator_t) -> curandStatus_t { + (self + .curandGenerateSeeds + .as_ref() + .expect("Expected function, got error."))(generator) + } + pub unsafe fn curandGetDirectionVectors32( + &self, + vectors: *mut *mut curandDirectionVectors32_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t { + (self + .curandGetDirectionVectors32 + .as_ref() + .expect("Expected function, got error."))(vectors, set) + } + pub unsafe fn curandGetScrambleConstants32( + &self, + constants: *mut *mut ::core::ffi::c_uint, + ) -> curandStatus_t { + (self + .curandGetScrambleConstants32 + .as_ref() + .expect("Expected function, got error."))(constants) + } + pub unsafe fn curandGetDirectionVectors64( + &self, + vectors: *mut *mut curandDirectionVectors64_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t { + (self + .curandGetDirectionVectors64 + .as_ref() + .expect("Expected function, got error."))(vectors, set) + } + pub unsafe fn curandGetScrambleConstants64( + &self, + constants: *mut *mut ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandGetScrambleConstants64 + .as_ref() + .expect("Expected function, got error."))(constants) + } +} diff --git a/src/curand/sys/sys_11060.rs b/src/curand/sys/sys_11060.rs new file mode 100644 index 00000000..473cba55 --- /dev/null +++ b/src/curand/sys/sys_11060.rs @@ -0,0 +1,756 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandStatus { + CURAND_STATUS_SUCCESS = 0, + CURAND_STATUS_VERSION_MISMATCH = 100, + CURAND_STATUS_NOT_INITIALIZED = 101, + CURAND_STATUS_ALLOCATION_FAILED = 102, + CURAND_STATUS_TYPE_ERROR = 103, + CURAND_STATUS_OUT_OF_RANGE = 104, + CURAND_STATUS_LENGTH_NOT_MULTIPLE = 105, + CURAND_STATUS_DOUBLE_PRECISION_REQUIRED = 106, + CURAND_STATUS_LAUNCH_FAILURE = 201, + CURAND_STATUS_PREEXISTING_FAILURE = 202, + CURAND_STATUS_INITIALIZATION_FAILED = 203, + CURAND_STATUS_ARCH_MISMATCH = 204, + CURAND_STATUS_INTERNAL_ERROR = 999, +} +pub use self::curandStatus as curandStatus_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandRngType { + CURAND_RNG_TEST = 0, + CURAND_RNG_PSEUDO_DEFAULT = 100, + CURAND_RNG_PSEUDO_XORWOW = 101, + CURAND_RNG_PSEUDO_MRG32K3A = 121, + CURAND_RNG_PSEUDO_MTGP32 = 141, + CURAND_RNG_PSEUDO_MT19937 = 142, + CURAND_RNG_PSEUDO_PHILOX4_32_10 = 161, + CURAND_RNG_QUASI_DEFAULT = 200, + CURAND_RNG_QUASI_SOBOL32 = 201, + CURAND_RNG_QUASI_SCRAMBLED_SOBOL32 = 202, + CURAND_RNG_QUASI_SOBOL64 = 203, + CURAND_RNG_QUASI_SCRAMBLED_SOBOL64 = 204, +} +pub use self::curandRngType as curandRngType_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandOrdering { + CURAND_ORDERING_PSEUDO_BEST = 100, + CURAND_ORDERING_PSEUDO_DEFAULT = 101, + CURAND_ORDERING_PSEUDO_SEEDED = 102, + CURAND_ORDERING_PSEUDO_LEGACY = 103, + CURAND_ORDERING_PSEUDO_DYNAMIC = 104, + CURAND_ORDERING_QUASI_DEFAULT = 201, +} +pub use self::curandOrdering as curandOrdering_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandDirectionVectorSet { + CURAND_DIRECTION_VECTORS_32_JOEKUO6 = 101, + CURAND_SCRAMBLED_DIRECTION_VECTORS_32_JOEKUO6 = 102, + CURAND_DIRECTION_VECTORS_64_JOEKUO6 = 103, + CURAND_SCRAMBLED_DIRECTION_VECTORS_64_JOEKUO6 = 104, +} +pub use self::curandDirectionVectorSet as curandDirectionVectorSet_t; +pub type curandDirectionVectors32_t = [::core::ffi::c_uint; 32usize]; +pub type curandDirectionVectors64_t = [::core::ffi::c_ulonglong; 64usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandGenerator_st { + _unused: [u8; 0], +} +pub type curandGenerator_t = *mut curandGenerator_st; +pub type curandDistribution_st = f64; +pub type curandDistribution_t = *mut curandDistribution_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDistributionShift_st { + _unused: [u8; 0], +} +pub type curandDistributionShift_t = *mut curandDistributionShift_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDistributionM2Shift_st { + _unused: [u8; 0], +} +pub type curandDistributionM2Shift_t = *mut curandDistributionM2Shift_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandHistogramM2_st { + _unused: [u8; 0], +} +pub type curandHistogramM2_t = *mut curandHistogramM2_st; +pub type curandHistogramM2K_st = ::core::ffi::c_uint; +pub type curandHistogramM2K_t = *mut curandHistogramM2K_st; +pub type curandHistogramM2V_st = curandDistribution_st; +pub type curandHistogramM2V_t = *mut curandHistogramM2V_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct curandDiscreteDistribution_st { + _unused: [u8; 0], +} +pub type curandDiscreteDistribution_t = *mut curandDiscreteDistribution_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum curandMethod { + CURAND_CHOOSE_BEST = 0, + CURAND_ITR = 1, + CURAND_KNUTH = 2, + CURAND_HITR = 3, + CURAND_M1 = 4, + CURAND_M2 = 5, + CURAND_BINARY_SEARCH = 6, + CURAND_DISCRETE_GAUSS = 7, + CURAND_REJECTION = 8, + CURAND_DEVICE_API = 9, + CURAND_FAST_REJECTION = 10, + CURAND_3RD = 11, + CURAND_DEFINITION = 12, + CURAND_POISSON = 13, +} +pub use self::curandMethod as curandMethod_t; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub curandCreateGenerator: Result< + unsafe extern "C" fn( + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandCreateGeneratorHost: Result< + unsafe extern "C" fn( + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandDestroyGenerator: Result< + unsafe extern "C" fn(generator: curandGenerator_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetVersion: Result< + unsafe extern "C" fn(version: *mut ::core::ffi::c_int) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetProperty: Result< + unsafe extern "C" fn( + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetStream: Result< + unsafe extern "C" fn(generator: curandGenerator_t, stream: cudaStream_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetPseudoRandomGeneratorSeed: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + seed: ::core::ffi::c_ulonglong, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetGeneratorOffset: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + offset: ::core::ffi::c_ulonglong, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetGeneratorOrdering: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + order: curandOrdering_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandSetQuasiRandomGeneratorDimensions: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + num_dimensions: ::core::ffi::c_uint, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerate: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLongLong: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_ulonglong, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateUniform: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateUniformDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + num: usize, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateNormal: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateNormalDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLogNormal: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateLogNormalDouble: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandCreatePoissonDistribution: Result< + unsafe extern "C" fn( + lambda: f64, + discrete_distribution: *mut curandDiscreteDistribution_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandDestroyDistribution: Result< + unsafe extern "C" fn(discrete_distribution: curandDiscreteDistribution_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGeneratePoisson: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGeneratePoissonMethod: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + method: curandMethod_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateBinomial: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateBinomialMethod: Result< + unsafe extern "C" fn( + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + method: curandMethod_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGenerateSeeds: Result< + unsafe extern "C" fn(generator: curandGenerator_t) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetDirectionVectors32: Result< + unsafe extern "C" fn( + vectors: *mut *mut curandDirectionVectors32_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetScrambleConstants32: Result< + unsafe extern "C" fn(constants: *mut *mut ::core::ffi::c_uint) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetDirectionVectors64: Result< + unsafe extern "C" fn( + vectors: *mut *mut curandDirectionVectors64_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t, + ::libloading::Error, + >, + pub curandGetScrambleConstants64: Result< + unsafe extern "C" fn(constants: *mut *mut ::core::ffi::c_ulonglong) -> curandStatus_t, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let curandCreateGenerator = __library.get(b"curandCreateGenerator\0").map(|sym| *sym); + let curandCreateGeneratorHost = __library + .get(b"curandCreateGeneratorHost\0") + .map(|sym| *sym); + let curandDestroyGenerator = __library.get(b"curandDestroyGenerator\0").map(|sym| *sym); + let curandGetVersion = __library.get(b"curandGetVersion\0").map(|sym| *sym); + let curandGetProperty = __library.get(b"curandGetProperty\0").map(|sym| *sym); + let curandSetStream = __library.get(b"curandSetStream\0").map(|sym| *sym); + let curandSetPseudoRandomGeneratorSeed = __library + .get(b"curandSetPseudoRandomGeneratorSeed\0") + .map(|sym| *sym); + let curandSetGeneratorOffset = __library.get(b"curandSetGeneratorOffset\0").map(|sym| *sym); + let curandSetGeneratorOrdering = __library + .get(b"curandSetGeneratorOrdering\0") + .map(|sym| *sym); + let curandSetQuasiRandomGeneratorDimensions = __library + .get(b"curandSetQuasiRandomGeneratorDimensions\0") + .map(|sym| *sym); + let curandGenerate = __library.get(b"curandGenerate\0").map(|sym| *sym); + let curandGenerateLongLong = __library.get(b"curandGenerateLongLong\0").map(|sym| *sym); + let curandGenerateUniform = __library.get(b"curandGenerateUniform\0").map(|sym| *sym); + let curandGenerateUniformDouble = __library + .get(b"curandGenerateUniformDouble\0") + .map(|sym| *sym); + let curandGenerateNormal = __library.get(b"curandGenerateNormal\0").map(|sym| *sym); + let curandGenerateNormalDouble = __library + .get(b"curandGenerateNormalDouble\0") + .map(|sym| *sym); + let curandGenerateLogNormal = __library.get(b"curandGenerateLogNormal\0").map(|sym| *sym); + let curandGenerateLogNormalDouble = __library + .get(b"curandGenerateLogNormalDouble\0") + .map(|sym| *sym); + let curandCreatePoissonDistribution = __library + .get(b"curandCreatePoissonDistribution\0") + .map(|sym| *sym); + let curandDestroyDistribution = __library + .get(b"curandDestroyDistribution\0") + .map(|sym| *sym); + let curandGeneratePoisson = __library.get(b"curandGeneratePoisson\0").map(|sym| *sym); + let curandGeneratePoissonMethod = __library + .get(b"curandGeneratePoissonMethod\0") + .map(|sym| *sym); + let curandGenerateBinomial = __library.get(b"curandGenerateBinomial\0").map(|sym| *sym); + let curandGenerateBinomialMethod = __library + .get(b"curandGenerateBinomialMethod\0") + .map(|sym| *sym); + let curandGenerateSeeds = __library.get(b"curandGenerateSeeds\0").map(|sym| *sym); + let curandGetDirectionVectors32 = __library + .get(b"curandGetDirectionVectors32\0") + .map(|sym| *sym); + let curandGetScrambleConstants32 = __library + .get(b"curandGetScrambleConstants32\0") + .map(|sym| *sym); + let curandGetDirectionVectors64 = __library + .get(b"curandGetDirectionVectors64\0") + .map(|sym| *sym); + let curandGetScrambleConstants64 = __library + .get(b"curandGetScrambleConstants64\0") + .map(|sym| *sym); + Ok(Lib { + __library, + curandCreateGenerator, + curandCreateGeneratorHost, + curandDestroyGenerator, + curandGetVersion, + curandGetProperty, + curandSetStream, + curandSetPseudoRandomGeneratorSeed, + curandSetGeneratorOffset, + curandSetGeneratorOrdering, + curandSetQuasiRandomGeneratorDimensions, + curandGenerate, + curandGenerateLongLong, + curandGenerateUniform, + curandGenerateUniformDouble, + curandGenerateNormal, + curandGenerateNormalDouble, + curandGenerateLogNormal, + curandGenerateLogNormalDouble, + curandCreatePoissonDistribution, + curandDestroyDistribution, + curandGeneratePoisson, + curandGeneratePoissonMethod, + curandGenerateBinomial, + curandGenerateBinomialMethod, + curandGenerateSeeds, + curandGetDirectionVectors32, + curandGetScrambleConstants32, + curandGetDirectionVectors64, + curandGetScrambleConstants64, + }) + } + pub unsafe fn curandCreateGenerator( + &self, + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t { + (self + .curandCreateGenerator + .as_ref() + .expect("Expected function, got error."))(generator, rng_type) + } + pub unsafe fn curandCreateGeneratorHost( + &self, + generator: *mut curandGenerator_t, + rng_type: curandRngType_t, + ) -> curandStatus_t { + (self + .curandCreateGeneratorHost + .as_ref() + .expect("Expected function, got error."))(generator, rng_type) + } + pub unsafe fn curandDestroyGenerator(&self, generator: curandGenerator_t) -> curandStatus_t { + (self + .curandDestroyGenerator + .as_ref() + .expect("Expected function, got error."))(generator) + } + pub unsafe fn curandGetVersion(&self, version: *mut ::core::ffi::c_int) -> curandStatus_t { + (self + .curandGetVersion + .as_ref() + .expect("Expected function, got error."))(version) + } + pub unsafe fn curandGetProperty( + &self, + type_: libraryPropertyType, + value: *mut ::core::ffi::c_int, + ) -> curandStatus_t { + (self + .curandGetProperty + .as_ref() + .expect("Expected function, got error."))(type_, value) + } + pub unsafe fn curandSetStream( + &self, + generator: curandGenerator_t, + stream: cudaStream_t, + ) -> curandStatus_t { + (self + .curandSetStream + .as_ref() + .expect("Expected function, got error."))(generator, stream) + } + pub unsafe fn curandSetPseudoRandomGeneratorSeed( + &self, + generator: curandGenerator_t, + seed: ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandSetPseudoRandomGeneratorSeed + .as_ref() + .expect("Expected function, got error."))(generator, seed) + } + pub unsafe fn curandSetGeneratorOffset( + &self, + generator: curandGenerator_t, + offset: ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandSetGeneratorOffset + .as_ref() + .expect("Expected function, got error."))(generator, offset) + } + pub unsafe fn curandSetGeneratorOrdering( + &self, + generator: curandGenerator_t, + order: curandOrdering_t, + ) -> curandStatus_t { + (self + .curandSetGeneratorOrdering + .as_ref() + .expect("Expected function, got error."))(generator, order) + } + pub unsafe fn curandSetQuasiRandomGeneratorDimensions( + &self, + generator: curandGenerator_t, + num_dimensions: ::core::ffi::c_uint, + ) -> curandStatus_t { + (self + .curandSetQuasiRandomGeneratorDimensions + .as_ref() + .expect("Expected function, got error."))(generator, num_dimensions) + } + pub unsafe fn curandGenerate( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerate + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateLongLong( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_ulonglong, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateLongLong + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateUniform( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateUniform + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateUniformDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + num: usize, + ) -> curandStatus_t { + (self + .curandGenerateUniformDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num) + } + pub unsafe fn curandGenerateNormal( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t { + (self + .curandGenerateNormal + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateNormalDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t { + (self + .curandGenerateNormalDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateLogNormal( + &self, + generator: curandGenerator_t, + outputPtr: *mut f32, + n: usize, + mean: f32, + stddev: f32, + ) -> curandStatus_t { + (self + .curandGenerateLogNormal + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandGenerateLogNormalDouble( + &self, + generator: curandGenerator_t, + outputPtr: *mut f64, + n: usize, + mean: f64, + stddev: f64, + ) -> curandStatus_t { + (self + .curandGenerateLogNormalDouble + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, mean, stddev) + } + pub unsafe fn curandCreatePoissonDistribution( + &self, + lambda: f64, + discrete_distribution: *mut curandDiscreteDistribution_t, + ) -> curandStatus_t { + (self + .curandCreatePoissonDistribution + .as_ref() + .expect("Expected function, got error."))(lambda, discrete_distribution) + } + pub unsafe fn curandDestroyDistribution( + &self, + discrete_distribution: curandDiscreteDistribution_t, + ) -> curandStatus_t { + (self + .curandDestroyDistribution + .as_ref() + .expect("Expected function, got error."))(discrete_distribution) + } + pub unsafe fn curandGeneratePoisson( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + ) -> curandStatus_t { + (self + .curandGeneratePoisson + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, n, lambda) + } + pub unsafe fn curandGeneratePoissonMethod( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + n: usize, + lambda: f64, + method: curandMethod_t, + ) -> curandStatus_t { + (self + .curandGeneratePoissonMethod + .as_ref() + .expect("Expected function, got error."))( + generator, outputPtr, n, lambda, method + ) + } + pub unsafe fn curandGenerateBinomial( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + ) -> curandStatus_t { + (self + .curandGenerateBinomial + .as_ref() + .expect("Expected function, got error."))(generator, outputPtr, num, n, p) + } + pub unsafe fn curandGenerateBinomialMethod( + &self, + generator: curandGenerator_t, + outputPtr: *mut ::core::ffi::c_uint, + num: usize, + n: ::core::ffi::c_uint, + p: f64, + method: curandMethod_t, + ) -> curandStatus_t { + (self + .curandGenerateBinomialMethod + .as_ref() + .expect("Expected function, got error."))( + generator, outputPtr, num, n, p, method + ) + } + pub unsafe fn curandGenerateSeeds(&self, generator: curandGenerator_t) -> curandStatus_t { + (self + .curandGenerateSeeds + .as_ref() + .expect("Expected function, got error."))(generator) + } + pub unsafe fn curandGetDirectionVectors32( + &self, + vectors: *mut *mut curandDirectionVectors32_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t { + (self + .curandGetDirectionVectors32 + .as_ref() + .expect("Expected function, got error."))(vectors, set) + } + pub unsafe fn curandGetScrambleConstants32( + &self, + constants: *mut *mut ::core::ffi::c_uint, + ) -> curandStatus_t { + (self + .curandGetScrambleConstants32 + .as_ref() + .expect("Expected function, got error."))(constants) + } + pub unsafe fn curandGetDirectionVectors64( + &self, + vectors: *mut *mut curandDirectionVectors64_t, + set: curandDirectionVectorSet_t, + ) -> curandStatus_t { + (self + .curandGetDirectionVectors64 + .as_ref() + .expect("Expected function, got error."))(vectors, set) + } + pub unsafe fn curandGetScrambleConstants64( + &self, + constants: *mut *mut ::core::ffi::c_ulonglong, + ) -> curandStatus_t { + (self + .curandGetScrambleConstants64 + .as_ref() + .expect("Expected function, got error."))(constants) + } +} diff --git a/src/driver/safe/core.rs b/src/driver/safe/core.rs index 0d5071aa..f32cab13 100644 --- a/src/driver/safe/core.rs +++ b/src/driver/safe/core.rs @@ -347,7 +347,7 @@ impl CudaFunction { Ok(num_blocks as u32) } - #[cfg(not(feature = "cuda-11070"))] + #[cfg(not(any(feature = "cuda-11070", feature = "cuda-11060", feature = "cuda-11050")))] pub fn occupancy_max_active_clusters( &self, config: crate::driver::LaunchConfig, @@ -405,7 +405,7 @@ impl CudaFunction { Ok((min_grid_size as u32, block_size as u32)) } - #[cfg(not(feature = "cuda-11070"))] + #[cfg(not(any(feature = "cuda-11070", feature = "cuda-11060", feature = "cuda-11050")))] pub fn occupancy_max_potential_cluster_size( &self, config: crate::driver::LaunchConfig, diff --git a/src/driver/sys/mod.rs b/src/driver/sys/mod.rs index cc1fde5a..c5765e00 100644 --- a/src/driver/sys/mod.rs +++ b/src/driver/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/driver/sys/sys_11050.rs b/src/driver/sys/sys_11050.rs new file mode 100644 index 00000000..c02cabf3 --- /dev/null +++ b/src/driver/sys/sys_11050.rs @@ -0,0 +1,13686 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +pub const CU_IPC_HANDLE_SIZE: u32 = 64; +pub const CU_MEMHOSTALLOC_PORTABLE: u32 = 1; +pub const CU_MEMHOSTALLOC_DEVICEMAP: u32 = 2; +pub const CU_MEMHOSTALLOC_WRITECOMBINED: u32 = 4; +pub const CU_MEMHOSTREGISTER_PORTABLE: u32 = 1; +pub const CU_MEMHOSTREGISTER_DEVICEMAP: u32 = 2; +pub const CU_MEMHOSTREGISTER_IOMEMORY: u32 = 4; +pub const CU_MEMHOSTREGISTER_READ_ONLY: u32 = 8; +pub const CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL: u32 = 1; +pub const CUDA_EXTERNAL_MEMORY_DEDICATED: u32 = 1; +pub const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC: u32 = 1; +pub const CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC: u32 = 2; +pub const CUDA_NVSCISYNC_ATTR_SIGNAL: u32 = 1; +pub const CUDA_NVSCISYNC_ATTR_WAIT: u32 = 2; +pub const CU_MEM_CREATE_USAGE_TILE_POOL: u32 = 1; +pub const CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC: u32 = 1; +pub const CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC: u32 = 2; +pub const CUDA_ARRAY3D_LAYERED: u32 = 1; +pub const CUDA_ARRAY3D_2DARRAY: u32 = 1; +pub const CUDA_ARRAY3D_SURFACE_LDST: u32 = 2; +pub const CUDA_ARRAY3D_CUBEMAP: u32 = 4; +pub const CUDA_ARRAY3D_TEXTURE_GATHER: u32 = 8; +pub const CUDA_ARRAY3D_DEPTH_TEXTURE: u32 = 16; +pub const CUDA_ARRAY3D_COLOR_ATTACHMENT: u32 = 32; +pub const CUDA_ARRAY3D_SPARSE: u32 = 64; +pub const CU_TRSA_OVERRIDE_FORMAT: u32 = 1; +pub const CU_TRSF_READ_AS_INTEGER: u32 = 1; +pub const CU_TRSF_NORMALIZED_COORDINATES: u32 = 2; +pub const CU_TRSF_SRGB: u32 = 16; +pub const CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION: u32 = 32; +pub const CU_PARAM_TR_DEFAULT: i32 = -1; +pub type cuuint32_t = u32; +pub type cuuint64_t = u64; +pub type CUdeviceptr_v2 = ::core::ffi::c_ulonglong; +pub type CUdeviceptr = CUdeviceptr_v2; +pub type CUdevice_v1 = ::core::ffi::c_int; +pub type CUdevice = CUdevice_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUctx_st { + _unused: [u8; 0], +} +pub type CUcontext = *mut CUctx_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmod_st { + _unused: [u8; 0], +} +pub type CUmodule = *mut CUmod_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUfunc_st { + _unused: [u8; 0], +} +pub type CUfunction = *mut CUfunc_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUarray_st { + _unused: [u8; 0], +} +pub type CUarray = *mut CUarray_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmipmappedArray_st { + _unused: [u8; 0], +} +pub type CUmipmappedArray = *mut CUmipmappedArray_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUtexref_st { + _unused: [u8; 0], +} +pub type CUtexref = *mut CUtexref_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUsurfref_st { + _unused: [u8; 0], +} +pub type CUsurfref = *mut CUsurfref_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUevent_st { + _unused: [u8; 0], +} +pub type CUevent = *mut CUevent_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type CUstream = *mut CUstream_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphicsResource_st { + _unused: [u8; 0], +} +pub type CUgraphicsResource = *mut CUgraphicsResource_st; +pub type CUtexObject_v1 = ::core::ffi::c_ulonglong; +pub type CUtexObject = CUtexObject_v1; +pub type CUsurfObject_v1 = ::core::ffi::c_ulonglong; +pub type CUsurfObject = CUsurfObject_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUextMemory_st { + _unused: [u8; 0], +} +pub type CUexternalMemory = *mut CUextMemory_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUextSemaphore_st { + _unused: [u8; 0], +} +pub type CUexternalSemaphore = *mut CUextSemaphore_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraph_st { + _unused: [u8; 0], +} +pub type CUgraph = *mut CUgraph_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphNode_st { + _unused: [u8; 0], +} +pub type CUgraphNode = *mut CUgraphNode_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphExec_st { + _unused: [u8; 0], +} +pub type CUgraphExec = *mut CUgraphExec_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmemPoolHandle_st { + _unused: [u8; 0], +} +pub type CUmemoryPool = *mut CUmemPoolHandle_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUuserObject_st { + _unused: [u8; 0], +} +pub type CUuserObject = *mut CUuserObject_st; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUuuid_st { + pub bytes: [::core::ffi::c_char; 16usize], +} +#[test] +fn bindgen_test_layout_CUuuid_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(CUuuid_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUuuid_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUuuid_st), + "::", + stringify!(bytes) + ) + ); +} +pub type CUuuid = CUuuid_st; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUipcEventHandle_st { + pub reserved: [::core::ffi::c_char; 64usize], +} +#[test] +fn bindgen_test_layout_CUipcEventHandle_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUipcEventHandle_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUipcEventHandle_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUipcEventHandle_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUipcEventHandle_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUipcEventHandle_v1 = CUipcEventHandle_st; +pub type CUipcEventHandle = CUipcEventHandle_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUipcMemHandle_st { + pub reserved: [::core::ffi::c_char; 64usize], +} +#[test] +fn bindgen_test_layout_CUipcMemHandle_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUipcMemHandle_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUipcMemHandle_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUipcMemHandle_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUipcMemHandle_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUipcMemHandle_v1 = CUipcMemHandle_st; +pub type CUipcMemHandle = CUipcMemHandle_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUipcMem_flags_enum { + CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = 1, +} +pub use self::CUipcMem_flags_enum as CUipcMem_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAttach_flags_enum { + CU_MEM_ATTACH_GLOBAL = 1, + CU_MEM_ATTACH_HOST = 2, + CU_MEM_ATTACH_SINGLE = 4, +} +pub use self::CUmemAttach_flags_enum as CUmemAttach_flags; +impl CUctx_flags_enum { + pub const CU_CTX_BLOCKING_SYNC: CUctx_flags_enum = CUctx_flags_enum::CU_CTX_SCHED_BLOCKING_SYNC; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUctx_flags_enum { + CU_CTX_SCHED_AUTO = 0, + CU_CTX_SCHED_SPIN = 1, + CU_CTX_SCHED_YIELD = 2, + CU_CTX_SCHED_BLOCKING_SYNC = 4, + CU_CTX_SCHED_MASK = 7, + CU_CTX_MAP_HOST = 8, + CU_CTX_LMEM_RESIZE_TO_MAX = 16, + CU_CTX_FLAGS_MASK = 31, +} +pub use self::CUctx_flags_enum as CUctx_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstream_flags_enum { + CU_STREAM_DEFAULT = 0, + CU_STREAM_NON_BLOCKING = 1, +} +pub use self::CUstream_flags_enum as CUstream_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_flags_enum { + CU_EVENT_DEFAULT = 0, + CU_EVENT_BLOCKING_SYNC = 1, + CU_EVENT_DISABLE_TIMING = 2, + CU_EVENT_INTERPROCESS = 4, +} +pub use self::CUevent_flags_enum as CUevent_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_record_flags_enum { + CU_EVENT_RECORD_DEFAULT = 0, + CU_EVENT_RECORD_EXTERNAL = 1, +} +pub use self::CUevent_record_flags_enum as CUevent_record_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_wait_flags_enum { + CU_EVENT_WAIT_DEFAULT = 0, + CU_EVENT_WAIT_EXTERNAL = 1, +} +pub use self::CUevent_wait_flags_enum as CUevent_wait_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamWaitValue_flags_enum { + CU_STREAM_WAIT_VALUE_GEQ = 0, + CU_STREAM_WAIT_VALUE_EQ = 1, + CU_STREAM_WAIT_VALUE_AND = 2, + CU_STREAM_WAIT_VALUE_NOR = 3, + CU_STREAM_WAIT_VALUE_FLUSH = 1073741824, +} +pub use self::CUstreamWaitValue_flags_enum as CUstreamWaitValue_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamWriteValue_flags_enum { + CU_STREAM_WRITE_VALUE_DEFAULT = 0, + CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = 1, +} +pub use self::CUstreamWriteValue_flags_enum as CUstreamWriteValue_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamBatchMemOpType_enum { + CU_STREAM_MEM_OP_WAIT_VALUE_32 = 1, + CU_STREAM_MEM_OP_WRITE_VALUE_32 = 2, + CU_STREAM_MEM_OP_WAIT_VALUE_64 = 4, + CU_STREAM_MEM_OP_WRITE_VALUE_64 = 5, + CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = 3, +} +pub use self::CUstreamBatchMemOpType_enum as CUstreamBatchMemOpType; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union { + pub operation: CUstreamBatchMemOpType, + pub waitValue: CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st, + pub writeValue: CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st, + pub flushRemoteWrites: CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + pub pad: [cuuint64_t; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st { + pub operation: CUstreamBatchMemOpType, + pub address: CUdeviceptr, + pub __bindgen_anon_1: + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub alias: CUdeviceptr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 { + pub value: cuuint32_t, + pub value64: cuuint64_t, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1( +) { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Size of: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Alignment of ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value64) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value64) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(address) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).alias) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(alias) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st { + pub operation: CUstreamBatchMemOpType, + pub address: CUdeviceptr, + pub __bindgen_anon_1: + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub alias: CUdeviceptr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 { + pub value: cuuint32_t, + pub value64: cuuint64_t, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1( +) { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Size of: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Alignment of ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value64) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value64) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(address) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).alias) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(alias) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st { + pub operation: CUstreamBatchMemOpType, + pub flags: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + >(), + 8usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + >(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(CUstreamBatchMemOpParams_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUstreamBatchMemOpParams_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).waitValue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(waitValue) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).writeValue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(writeValue) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flushRemoteWrites) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(flushRemoteWrites) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(pad) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUstreamBatchMemOpParams_v1 = CUstreamBatchMemOpParams_union; +pub type CUstreamBatchMemOpParams = CUstreamBatchMemOpParams_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUoccupancy_flags_enum { + CU_OCCUPANCY_DEFAULT = 0, + CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = 1, +} +pub use self::CUoccupancy_flags_enum as CUoccupancy_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamUpdateCaptureDependencies_flags_enum { + CU_STREAM_ADD_CAPTURE_DEPENDENCIES = 0, + CU_STREAM_SET_CAPTURE_DEPENDENCIES = 1, +} +pub use self::CUstreamUpdateCaptureDependencies_flags_enum as CUstreamUpdateCaptureDependencies_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarray_format_enum { + CU_AD_FORMAT_UNSIGNED_INT8 = 1, + CU_AD_FORMAT_UNSIGNED_INT16 = 2, + CU_AD_FORMAT_UNSIGNED_INT32 = 3, + CU_AD_FORMAT_SIGNED_INT8 = 8, + CU_AD_FORMAT_SIGNED_INT16 = 9, + CU_AD_FORMAT_SIGNED_INT32 = 10, + CU_AD_FORMAT_HALF = 16, + CU_AD_FORMAT_FLOAT = 32, + CU_AD_FORMAT_NV12 = 176, + CU_AD_FORMAT_UNORM_INT8X1 = 192, + CU_AD_FORMAT_UNORM_INT8X2 = 193, + CU_AD_FORMAT_UNORM_INT8X4 = 194, + CU_AD_FORMAT_UNORM_INT16X1 = 195, + CU_AD_FORMAT_UNORM_INT16X2 = 196, + CU_AD_FORMAT_UNORM_INT16X4 = 197, + CU_AD_FORMAT_SNORM_INT8X1 = 198, + CU_AD_FORMAT_SNORM_INT8X2 = 199, + CU_AD_FORMAT_SNORM_INT8X4 = 200, + CU_AD_FORMAT_SNORM_INT16X1 = 201, + CU_AD_FORMAT_SNORM_INT16X2 = 202, + CU_AD_FORMAT_SNORM_INT16X4 = 203, + CU_AD_FORMAT_BC1_UNORM = 145, + CU_AD_FORMAT_BC1_UNORM_SRGB = 146, + CU_AD_FORMAT_BC2_UNORM = 147, + CU_AD_FORMAT_BC2_UNORM_SRGB = 148, + CU_AD_FORMAT_BC3_UNORM = 149, + CU_AD_FORMAT_BC3_UNORM_SRGB = 150, + CU_AD_FORMAT_BC4_UNORM = 151, + CU_AD_FORMAT_BC4_SNORM = 152, + CU_AD_FORMAT_BC5_UNORM = 153, + CU_AD_FORMAT_BC5_SNORM = 154, + CU_AD_FORMAT_BC6H_UF16 = 155, + CU_AD_FORMAT_BC6H_SF16 = 156, + CU_AD_FORMAT_BC7_UNORM = 157, + CU_AD_FORMAT_BC7_UNORM_SRGB = 158, +} +pub use self::CUarray_format_enum as CUarray_format; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUaddress_mode_enum { + CU_TR_ADDRESS_MODE_WRAP = 0, + CU_TR_ADDRESS_MODE_CLAMP = 1, + CU_TR_ADDRESS_MODE_MIRROR = 2, + CU_TR_ADDRESS_MODE_BORDER = 3, +} +pub use self::CUaddress_mode_enum as CUaddress_mode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfilter_mode_enum { + CU_TR_FILTER_MODE_POINT = 0, + CU_TR_FILTER_MODE_LINEAR = 1, +} +pub use self::CUfilter_mode_enum as CUfilter_mode; +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdevice_attribute_enum { + CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = 3, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = 4, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = 5, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = 6, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = 7, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = 8, + CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9, + CU_DEVICE_ATTRIBUTE_WARP_SIZE = 10, + CU_DEVICE_ATTRIBUTE_MAX_PITCH = 11, + CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = 12, + CU_DEVICE_ATTRIBUTE_CLOCK_RATE = 13, + CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = 14, + CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = 15, + CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = 16, + CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = 17, + CU_DEVICE_ATTRIBUTE_INTEGRATED = 18, + CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = 19, + CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = 20, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = 21, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = 22, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = 23, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = 24, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = 25, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = 26, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = 27, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = 28, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = 29, + CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = 30, + CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31, + CU_DEVICE_ATTRIBUTE_ECC_ENABLED = 32, + CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = 33, + CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = 34, + CU_DEVICE_ATTRIBUTE_TCC_DRIVER = 35, + CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = 36, + CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = 37, + CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = 38, + CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39, + CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40, + CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = 41, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = 42, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = 43, + CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = 44, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = 45, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = 46, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = 47, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = 48, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = 49, + CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = 50, + CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = 51, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = 52, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = 53, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = 54, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = 55, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = 56, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = 57, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = 58, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = 59, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = 60, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = 61, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = 62, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = 63, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = 64, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = 65, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = 66, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = 67, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = 68, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = 69, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = 70, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = 71, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = 72, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = 73, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = 74, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = 75, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = 76, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = 77, + CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = 78, + CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = 79, + CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = 80, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = 81, + CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = 82, + CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = 83, + CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = 84, + CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = 85, + CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = 86, + CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = 87, + CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = 88, + CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = 89, + CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = 90, + CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = 91, + CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = 92, + CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = 93, + CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = 94, + CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = 95, + CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = 96, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = 97, + CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = 98, + CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = 99, + CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = 100, + CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = 101, + CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = 102, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = 103, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = 104, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = 105, + CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = 106, + CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = 107, + CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = 108, + CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = 109, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = 110, + CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = 111, + CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = 112, + CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = 113, + CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = 114, + CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = 115, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = 116, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = 117, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = 118, + CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = 119, + CU_DEVICE_ATTRIBUTE_MAX = 120, +} +pub use self::CUdevice_attribute_enum as CUdevice_attribute; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUdevprop_st { + pub maxThreadsPerBlock: ::core::ffi::c_int, + pub maxThreadsDim: [::core::ffi::c_int; 3usize], + pub maxGridSize: [::core::ffi::c_int; 3usize], + pub sharedMemPerBlock: ::core::ffi::c_int, + pub totalConstantMemory: ::core::ffi::c_int, + pub SIMDWidth: ::core::ffi::c_int, + pub memPitch: ::core::ffi::c_int, + pub regsPerBlock: ::core::ffi::c_int, + pub clockRate: ::core::ffi::c_int, + pub textureAlign: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUdevprop_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUdevprop_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUdevprop_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxThreadsPerBlock) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxThreadsPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxThreadsDim) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxThreadsDim) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxGridSize) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxGridSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemPerBlock) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(sharedMemPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).totalConstantMemory) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(totalConstantMemory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).SIMDWidth) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(SIMDWidth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memPitch) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(memPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).regsPerBlock) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(regsPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).clockRate) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(clockRate) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).textureAlign) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(textureAlign) + ) + ); +} +pub type CUdevprop_v1 = CUdevprop_st; +pub type CUdevprop = CUdevprop_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUpointer_attribute_enum { + CU_POINTER_ATTRIBUTE_CONTEXT = 1, + CU_POINTER_ATTRIBUTE_MEMORY_TYPE = 2, + CU_POINTER_ATTRIBUTE_DEVICE_POINTER = 3, + CU_POINTER_ATTRIBUTE_HOST_POINTER = 4, + CU_POINTER_ATTRIBUTE_P2P_TOKENS = 5, + CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = 6, + CU_POINTER_ATTRIBUTE_BUFFER_ID = 7, + CU_POINTER_ATTRIBUTE_IS_MANAGED = 8, + CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = 9, + CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = 10, + CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = 11, + CU_POINTER_ATTRIBUTE_RANGE_SIZE = 12, + CU_POINTER_ATTRIBUTE_MAPPED = 13, + CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = 14, + CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = 15, + CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = 16, + CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17, +} +pub use self::CUpointer_attribute_enum as CUpointer_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfunction_attribute_enum { + CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0, + CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1, + CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2, + CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3, + CU_FUNC_ATTRIBUTE_NUM_REGS = 4, + CU_FUNC_ATTRIBUTE_PTX_VERSION = 5, + CU_FUNC_ATTRIBUTE_BINARY_VERSION = 6, + CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = 7, + CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = 8, + CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 9, + CU_FUNC_ATTRIBUTE_MAX = 10, +} +pub use self::CUfunction_attribute_enum as CUfunction_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfunc_cache_enum { + CU_FUNC_CACHE_PREFER_NONE = 0, + CU_FUNC_CACHE_PREFER_SHARED = 1, + CU_FUNC_CACHE_PREFER_L1 = 2, + CU_FUNC_CACHE_PREFER_EQUAL = 3, +} +pub use self::CUfunc_cache_enum as CUfunc_cache; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUsharedconfig_enum { + CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = 0, + CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = 1, + CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = 2, +} +pub use self::CUsharedconfig_enum as CUsharedconfig; +#[repr(i32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUshared_carveout_enum { + CU_SHAREDMEM_CARVEOUT_DEFAULT = -1, + CU_SHAREDMEM_CARVEOUT_MAX_SHARED = 100, + CU_SHAREDMEM_CARVEOUT_MAX_L1 = 0, +} +pub use self::CUshared_carveout_enum as CUshared_carveout; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemorytype_enum { + CU_MEMORYTYPE_HOST = 1, + CU_MEMORYTYPE_DEVICE = 2, + CU_MEMORYTYPE_ARRAY = 3, + CU_MEMORYTYPE_UNIFIED = 4, +} +pub use self::CUmemorytype_enum as CUmemorytype; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUcomputemode_enum { + CU_COMPUTEMODE_DEFAULT = 0, + CU_COMPUTEMODE_PROHIBITED = 2, + CU_COMPUTEMODE_EXCLUSIVE_PROCESS = 3, +} +pub use self::CUcomputemode_enum as CUcomputemode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmem_advise_enum { + CU_MEM_ADVISE_SET_READ_MOSTLY = 1, + CU_MEM_ADVISE_UNSET_READ_MOSTLY = 2, + CU_MEM_ADVISE_SET_PREFERRED_LOCATION = 3, + CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = 4, + CU_MEM_ADVISE_SET_ACCESSED_BY = 5, + CU_MEM_ADVISE_UNSET_ACCESSED_BY = 6, +} +pub use self::CUmem_advise_enum as CUmem_advise; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmem_range_attribute_enum { + CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = 1, + CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = 2, + CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = 3, + CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = 4, +} +pub use self::CUmem_range_attribute_enum as CUmem_range_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_option_enum { + CU_JIT_MAX_REGISTERS = 0, + CU_JIT_THREADS_PER_BLOCK = 1, + CU_JIT_WALL_TIME = 2, + CU_JIT_INFO_LOG_BUFFER = 3, + CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = 4, + CU_JIT_ERROR_LOG_BUFFER = 5, + CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = 6, + CU_JIT_OPTIMIZATION_LEVEL = 7, + CU_JIT_TARGET_FROM_CUCONTEXT = 8, + CU_JIT_TARGET = 9, + CU_JIT_FALLBACK_STRATEGY = 10, + CU_JIT_GENERATE_DEBUG_INFO = 11, + CU_JIT_LOG_VERBOSE = 12, + CU_JIT_GENERATE_LINE_INFO = 13, + CU_JIT_CACHE_MODE = 14, + CU_JIT_NEW_SM3X_OPT = 15, + CU_JIT_FAST_COMPILE = 16, + CU_JIT_GLOBAL_SYMBOL_NAMES = 17, + CU_JIT_GLOBAL_SYMBOL_ADDRESSES = 18, + CU_JIT_GLOBAL_SYMBOL_COUNT = 19, + CU_JIT_LTO = 20, + CU_JIT_FTZ = 21, + CU_JIT_PREC_DIV = 22, + CU_JIT_PREC_SQRT = 23, + CU_JIT_FMA = 24, + CU_JIT_NUM_OPTIONS = 25, +} +pub use self::CUjit_option_enum as CUjit_option; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_target_enum { + CU_TARGET_COMPUTE_20 = 20, + CU_TARGET_COMPUTE_21 = 21, + CU_TARGET_COMPUTE_30 = 30, + CU_TARGET_COMPUTE_32 = 32, + CU_TARGET_COMPUTE_35 = 35, + CU_TARGET_COMPUTE_37 = 37, + CU_TARGET_COMPUTE_50 = 50, + CU_TARGET_COMPUTE_52 = 52, + CU_TARGET_COMPUTE_53 = 53, + CU_TARGET_COMPUTE_60 = 60, + CU_TARGET_COMPUTE_61 = 61, + CU_TARGET_COMPUTE_62 = 62, + CU_TARGET_COMPUTE_70 = 70, + CU_TARGET_COMPUTE_72 = 72, + CU_TARGET_COMPUTE_75 = 75, + CU_TARGET_COMPUTE_80 = 80, + CU_TARGET_COMPUTE_86 = 86, +} +pub use self::CUjit_target_enum as CUjit_target; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_fallback_enum { + CU_PREFER_PTX = 0, + CU_PREFER_BINARY = 1, +} +pub use self::CUjit_fallback_enum as CUjit_fallback; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_cacheMode_enum { + CU_JIT_CACHE_OPTION_NONE = 0, + CU_JIT_CACHE_OPTION_CG = 1, + CU_JIT_CACHE_OPTION_CA = 2, +} +pub use self::CUjit_cacheMode_enum as CUjit_cacheMode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjitInputType_enum { + CU_JIT_INPUT_CUBIN = 0, + CU_JIT_INPUT_PTX = 1, + CU_JIT_INPUT_FATBINARY = 2, + CU_JIT_INPUT_OBJECT = 3, + CU_JIT_INPUT_LIBRARY = 4, + CU_JIT_INPUT_NVVM = 5, + CU_JIT_NUM_INPUT_TYPES = 6, +} +pub use self::CUjitInputType_enum as CUjitInputType; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUlinkState_st { + _unused: [u8; 0], +} +pub type CUlinkState = *mut CUlinkState_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphicsRegisterFlags_enum { + CU_GRAPHICS_REGISTER_FLAGS_NONE = 0, + CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = 1, + CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = 2, + CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = 4, + CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = 8, +} +pub use self::CUgraphicsRegisterFlags_enum as CUgraphicsRegisterFlags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphicsMapResourceFlags_enum { + CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = 0, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = 1, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 2, +} +pub use self::CUgraphicsMapResourceFlags_enum as CUgraphicsMapResourceFlags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarray_cubemap_face_enum { + CU_CUBEMAP_FACE_POSITIVE_X = 0, + CU_CUBEMAP_FACE_NEGATIVE_X = 1, + CU_CUBEMAP_FACE_POSITIVE_Y = 2, + CU_CUBEMAP_FACE_NEGATIVE_Y = 3, + CU_CUBEMAP_FACE_POSITIVE_Z = 4, + CU_CUBEMAP_FACE_NEGATIVE_Z = 5, +} +pub use self::CUarray_cubemap_face_enum as CUarray_cubemap_face; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUlimit_enum { + CU_LIMIT_STACK_SIZE = 0, + CU_LIMIT_PRINTF_FIFO_SIZE = 1, + CU_LIMIT_MALLOC_HEAP_SIZE = 2, + CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = 3, + CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = 4, + CU_LIMIT_MAX_L2_FETCH_GRANULARITY = 5, + CU_LIMIT_PERSISTING_L2_CACHE_SIZE = 6, + CU_LIMIT_MAX = 7, +} +pub use self::CUlimit_enum as CUlimit; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUresourcetype_enum { + CU_RESOURCE_TYPE_ARRAY = 0, + CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = 1, + CU_RESOURCE_TYPE_LINEAR = 2, + CU_RESOURCE_TYPE_PITCH2D = 3, +} +pub use self::CUresourcetype_enum as CUresourcetype; +pub type CUhostFn = + ::core::option::Option; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUaccessProperty_enum { + CU_ACCESS_PROPERTY_NORMAL = 0, + CU_ACCESS_PROPERTY_STREAMING = 1, + CU_ACCESS_PROPERTY_PERSISTING = 2, +} +pub use self::CUaccessProperty_enum as CUaccessProperty; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct CUaccessPolicyWindow_st { + pub base_ptr: *mut ::core::ffi::c_void, + pub num_bytes: usize, + pub hitRatio: f32, + pub hitProp: CUaccessProperty, + pub missProp: CUaccessProperty, +} +#[test] +fn bindgen_test_layout_CUaccessPolicyWindow_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUaccessPolicyWindow_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUaccessPolicyWindow_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).base_ptr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(base_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).num_bytes) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(num_bytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hitRatio) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(hitRatio) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hitProp) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(hitProp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).missProp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(missProp) + ) + ); +} +impl Default for CUaccessPolicyWindow_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUaccessPolicyWindow_v1 = CUaccessPolicyWindow_st; +pub type CUaccessPolicyWindow = CUaccessPolicyWindow_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_KERNEL_NODE_PARAMS_st { + pub func: CUfunction, + pub gridDimX: ::core::ffi::c_uint, + pub gridDimY: ::core::ffi::c_uint, + pub gridDimZ: ::core::ffi::c_uint, + pub blockDimX: ::core::ffi::c_uint, + pub blockDimY: ::core::ffi::c_uint, + pub blockDimZ: ::core::ffi::c_uint, + pub sharedMemBytes: ::core::ffi::c_uint, + pub kernelParams: *mut *mut ::core::ffi::c_void, + pub extra: *mut *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_KERNEL_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUDA_KERNEL_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_KERNEL_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimX) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimY) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimZ) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(sharedMemBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).kernelParams) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(kernelParams) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extra) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(extra) + ) + ); +} +impl Default for CUDA_KERNEL_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_KERNEL_NODE_PARAMS_v1 = CUDA_KERNEL_NODE_PARAMS_st; +pub type CUDA_KERNEL_NODE_PARAMS = CUDA_KERNEL_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMSET_NODE_PARAMS_st { + pub dst: CUdeviceptr, + pub pitch: usize, + pub value: ::core::ffi::c_uint, + pub elementSize: ::core::ffi::c_uint, + pub width: usize, + pub height: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMSET_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(CUDA_MEMSET_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMSET_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dst) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(dst) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(pitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).elementSize) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(elementSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(height) + ) + ); +} +pub type CUDA_MEMSET_NODE_PARAMS_v1 = CUDA_MEMSET_NODE_PARAMS_st; +pub type CUDA_MEMSET_NODE_PARAMS = CUDA_MEMSET_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_HOST_NODE_PARAMS_st { + pub fn_: CUhostFn, + pub userData: *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_HOST_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(CUDA_HOST_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_HOST_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fn_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_HOST_NODE_PARAMS_st), + "::", + stringify!(fn_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).userData) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_HOST_NODE_PARAMS_st), + "::", + stringify!(userData) + ) + ); +} +impl Default for CUDA_HOST_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_HOST_NODE_PARAMS_v1 = CUDA_HOST_NODE_PARAMS_st; +pub type CUDA_HOST_NODE_PARAMS = CUDA_HOST_NODE_PARAMS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphNodeType_enum { + CU_GRAPH_NODE_TYPE_KERNEL = 0, + CU_GRAPH_NODE_TYPE_MEMCPY = 1, + CU_GRAPH_NODE_TYPE_MEMSET = 2, + CU_GRAPH_NODE_TYPE_HOST = 3, + CU_GRAPH_NODE_TYPE_GRAPH = 4, + CU_GRAPH_NODE_TYPE_EMPTY = 5, + CU_GRAPH_NODE_TYPE_WAIT_EVENT = 6, + CU_GRAPH_NODE_TYPE_EVENT_RECORD = 7, + CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = 8, + CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = 9, + CU_GRAPH_NODE_TYPE_MEM_ALLOC = 10, + CU_GRAPH_NODE_TYPE_MEM_FREE = 11, +} +pub use self::CUgraphNodeType_enum as CUgraphNodeType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUsynchronizationPolicy_enum { + CU_SYNC_POLICY_AUTO = 1, + CU_SYNC_POLICY_SPIN = 2, + CU_SYNC_POLICY_YIELD = 3, + CU_SYNC_POLICY_BLOCKING_SYNC = 4, +} +pub use self::CUsynchronizationPolicy_enum as CUsynchronizationPolicy; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUkernelNodeAttrID_enum { + CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1, + CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2, +} +pub use self::CUkernelNodeAttrID_enum as CUkernelNodeAttrID; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUkernelNodeAttrValue_union { + pub accessPolicyWindow: CUaccessPolicyWindow, + pub cooperative: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUkernelNodeAttrValue_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUkernelNodeAttrValue_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUkernelNodeAttrValue_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessPolicyWindow) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUkernelNodeAttrValue_union), + "::", + stringify!(accessPolicyWindow) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cooperative) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUkernelNodeAttrValue_union), + "::", + stringify!(cooperative) + ) + ); +} +impl Default for CUkernelNodeAttrValue_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUkernelNodeAttrValue_v1 = CUkernelNodeAttrValue_union; +pub type CUkernelNodeAttrValue = CUkernelNodeAttrValue_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamCaptureStatus_enum { + CU_STREAM_CAPTURE_STATUS_NONE = 0, + CU_STREAM_CAPTURE_STATUS_ACTIVE = 1, + CU_STREAM_CAPTURE_STATUS_INVALIDATED = 2, +} +pub use self::CUstreamCaptureStatus_enum as CUstreamCaptureStatus; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamCaptureMode_enum { + CU_STREAM_CAPTURE_MODE_GLOBAL = 0, + CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = 1, + CU_STREAM_CAPTURE_MODE_RELAXED = 2, +} +pub use self::CUstreamCaptureMode_enum as CUstreamCaptureMode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamAttrID_enum { + CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1, + CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3, +} +pub use self::CUstreamAttrID_enum as CUstreamAttrID; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamAttrValue_union { + pub accessPolicyWindow: CUaccessPolicyWindow, + pub syncPolicy: CUsynchronizationPolicy, +} +#[test] +fn bindgen_test_layout_CUstreamAttrValue_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUstreamAttrValue_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUstreamAttrValue_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessPolicyWindow) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamAttrValue_union), + "::", + stringify!(accessPolicyWindow) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).syncPolicy) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamAttrValue_union), + "::", + stringify!(syncPolicy) + ) + ); +} +impl Default for CUstreamAttrValue_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUstreamAttrValue_v1 = CUstreamAttrValue_union; +pub type CUstreamAttrValue = CUstreamAttrValue_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdriverProcAddress_flags_enum { + CU_GET_PROC_ADDRESS_DEFAULT = 0, + CU_GET_PROC_ADDRESS_LEGACY_STREAM = 1, + CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = 2, +} +pub use self::CUdriverProcAddress_flags_enum as CUdriverProcAddress_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexecAffinityType_enum { + CU_EXEC_AFFINITY_TYPE_SM_COUNT = 0, + CU_EXEC_AFFINITY_TYPE_MAX = 1, +} +pub use self::CUexecAffinityType_enum as CUexecAffinityType; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUexecAffinitySmCount_st { + pub val: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUexecAffinitySmCount_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(CUexecAffinitySmCount_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUexecAffinitySmCount_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinitySmCount_st), + "::", + stringify!(val) + ) + ); +} +pub type CUexecAffinitySmCount_v1 = CUexecAffinitySmCount_st; +pub type CUexecAffinitySmCount = CUexecAffinitySmCount_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUexecAffinityParam_st { + pub type_: CUexecAffinityType, + pub param: CUexecAffinityParam_st__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUexecAffinityParam_st__bindgen_ty_1 { + pub smCount: CUexecAffinitySmCount, +} +#[test] +fn bindgen_test_layout_CUexecAffinityParam_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).smCount) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1), + "::", + stringify!(smCount) + ) + ); +} +impl Default for CUexecAffinityParam_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUexecAffinityParam_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUexecAffinityParam_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUexecAffinityParam_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).param) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st), + "::", + stringify!(param) + ) + ); +} +impl Default for CUexecAffinityParam_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUexecAffinityParam_v1 = CUexecAffinityParam_st; +pub type CUexecAffinityParam = CUexecAffinityParam_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaError_enum { + CUDA_SUCCESS = 0, + CUDA_ERROR_INVALID_VALUE = 1, + CUDA_ERROR_OUT_OF_MEMORY = 2, + CUDA_ERROR_NOT_INITIALIZED = 3, + CUDA_ERROR_DEINITIALIZED = 4, + CUDA_ERROR_PROFILER_DISABLED = 5, + CUDA_ERROR_PROFILER_NOT_INITIALIZED = 6, + CUDA_ERROR_PROFILER_ALREADY_STARTED = 7, + CUDA_ERROR_PROFILER_ALREADY_STOPPED = 8, + CUDA_ERROR_STUB_LIBRARY = 34, + CUDA_ERROR_NO_DEVICE = 100, + CUDA_ERROR_INVALID_DEVICE = 101, + CUDA_ERROR_DEVICE_NOT_LICENSED = 102, + CUDA_ERROR_INVALID_IMAGE = 200, + CUDA_ERROR_INVALID_CONTEXT = 201, + CUDA_ERROR_CONTEXT_ALREADY_CURRENT = 202, + CUDA_ERROR_MAP_FAILED = 205, + CUDA_ERROR_UNMAP_FAILED = 206, + CUDA_ERROR_ARRAY_IS_MAPPED = 207, + CUDA_ERROR_ALREADY_MAPPED = 208, + CUDA_ERROR_NO_BINARY_FOR_GPU = 209, + CUDA_ERROR_ALREADY_ACQUIRED = 210, + CUDA_ERROR_NOT_MAPPED = 211, + CUDA_ERROR_NOT_MAPPED_AS_ARRAY = 212, + CUDA_ERROR_NOT_MAPPED_AS_POINTER = 213, + CUDA_ERROR_ECC_UNCORRECTABLE = 214, + CUDA_ERROR_UNSUPPORTED_LIMIT = 215, + CUDA_ERROR_CONTEXT_ALREADY_IN_USE = 216, + CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = 217, + CUDA_ERROR_INVALID_PTX = 218, + CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = 219, + CUDA_ERROR_NVLINK_UNCORRECTABLE = 220, + CUDA_ERROR_JIT_COMPILER_NOT_FOUND = 221, + CUDA_ERROR_UNSUPPORTED_PTX_VERSION = 222, + CUDA_ERROR_JIT_COMPILATION_DISABLED = 223, + CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = 224, + CUDA_ERROR_INVALID_SOURCE = 300, + CUDA_ERROR_FILE_NOT_FOUND = 301, + CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = 302, + CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = 303, + CUDA_ERROR_OPERATING_SYSTEM = 304, + CUDA_ERROR_INVALID_HANDLE = 400, + CUDA_ERROR_ILLEGAL_STATE = 401, + CUDA_ERROR_NOT_FOUND = 500, + CUDA_ERROR_NOT_READY = 600, + CUDA_ERROR_ILLEGAL_ADDRESS = 700, + CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = 701, + CUDA_ERROR_LAUNCH_TIMEOUT = 702, + CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = 703, + CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = 704, + CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = 705, + CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = 708, + CUDA_ERROR_CONTEXT_IS_DESTROYED = 709, + CUDA_ERROR_ASSERT = 710, + CUDA_ERROR_TOO_MANY_PEERS = 711, + CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = 712, + CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = 713, + CUDA_ERROR_HARDWARE_STACK_ERROR = 714, + CUDA_ERROR_ILLEGAL_INSTRUCTION = 715, + CUDA_ERROR_MISALIGNED_ADDRESS = 716, + CUDA_ERROR_INVALID_ADDRESS_SPACE = 717, + CUDA_ERROR_INVALID_PC = 718, + CUDA_ERROR_LAUNCH_FAILED = 719, + CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = 720, + CUDA_ERROR_NOT_PERMITTED = 800, + CUDA_ERROR_NOT_SUPPORTED = 801, + CUDA_ERROR_SYSTEM_NOT_READY = 802, + CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = 803, + CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = 804, + CUDA_ERROR_MPS_CONNECTION_FAILED = 805, + CUDA_ERROR_MPS_RPC_FAILURE = 806, + CUDA_ERROR_MPS_SERVER_NOT_READY = 807, + CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = 808, + CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = 809, + CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = 900, + CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = 901, + CUDA_ERROR_STREAM_CAPTURE_MERGE = 902, + CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = 903, + CUDA_ERROR_STREAM_CAPTURE_UNJOINED = 904, + CUDA_ERROR_STREAM_CAPTURE_ISOLATION = 905, + CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = 906, + CUDA_ERROR_CAPTURED_EVENT = 907, + CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = 908, + CUDA_ERROR_TIMEOUT = 909, + CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = 910, + CUDA_ERROR_EXTERNAL_DEVICE = 911, + CUDA_ERROR_UNKNOWN = 999, +} +pub use self::cudaError_enum as CUresult; +impl CUdevice_P2PAttribute_enum { + pub const CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED: CUdevice_P2PAttribute_enum = + CUdevice_P2PAttribute_enum::CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdevice_P2PAttribute_enum { + CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = 1, + CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = 2, + CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = 3, + CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = 4, +} +pub use self::CUdevice_P2PAttribute_enum as CUdevice_P2PAttribute; +pub type CUstreamCallback = ::core::option::Option< + unsafe extern "C" fn(hStream: CUstream, status: CUresult, userData: *mut ::core::ffi::c_void), +>; +pub type CUoccupancyB2DSize = + ::core::option::Option usize>; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY2D_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub srcPitch: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub dstPitch: usize, + pub WidthInBytes: usize, + pub Height: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY2D_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY2D_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY2D_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(Height) + ) + ); +} +impl Default for CUDA_MEMCPY2D_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY2D_v2 = CUDA_MEMCPY2D_st; +pub type CUDA_MEMCPY2D = CUDA_MEMCPY2D_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY3D_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcZ: usize, + pub srcLOD: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub reserved0: *mut ::core::ffi::c_void, + pub srcPitch: usize, + pub srcHeight: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstZ: usize, + pub dstLOD: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub reserved1: *mut ::core::ffi::c_void, + pub dstPitch: usize, + pub dstHeight: usize, + pub WidthInBytes: usize, + pub Height: usize, + pub Depth: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY3D_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY3D_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY3D_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcLOD) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved0) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(reserved0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHeight) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstZ) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstLOD) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHeight) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(Depth) + ) + ); +} +impl Default for CUDA_MEMCPY3D_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY3D_v2 = CUDA_MEMCPY3D_st; +pub type CUDA_MEMCPY3D = CUDA_MEMCPY3D_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY3D_PEER_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcZ: usize, + pub srcLOD: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub srcContext: CUcontext, + pub srcPitch: usize, + pub srcHeight: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstZ: usize, + pub dstLOD: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub dstContext: CUcontext, + pub dstPitch: usize, + pub dstHeight: usize, + pub WidthInBytes: usize, + pub Height: usize, + pub Depth: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY3D_PEER_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY3D_PEER_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY3D_PEER_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcLOD) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcContext) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcContext) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHeight) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstZ) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstLOD) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstContext) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstContext) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHeight) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(Depth) + ) + ); +} +impl Default for CUDA_MEMCPY3D_PEER_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY3D_PEER_v1 = CUDA_MEMCPY3D_PEER_st; +pub type CUDA_MEMCPY3D_PEER = CUDA_MEMCPY3D_PEER_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_DESCRIPTOR_st { + pub Width: usize, + pub Height: usize, + pub Format: CUarray_format, + pub NumChannels: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_DESCRIPTOR_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_ARRAY_DESCRIPTOR_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY_DESCRIPTOR_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Format) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).NumChannels) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(NumChannels) + ) + ); +} +impl Default for CUDA_ARRAY_DESCRIPTOR_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_ARRAY_DESCRIPTOR_v2 = CUDA_ARRAY_DESCRIPTOR_st; +pub type CUDA_ARRAY_DESCRIPTOR = CUDA_ARRAY_DESCRIPTOR_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY3D_DESCRIPTOR_st { + pub Width: usize, + pub Height: usize, + pub Depth: usize, + pub Format: CUarray_format, + pub NumChannels: ::core::ffi::c_uint, + pub Flags: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY3D_DESCRIPTOR_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(CUDA_ARRAY3D_DESCRIPTOR_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY3D_DESCRIPTOR_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Depth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Format) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).NumChannels) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(NumChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Flags) + ) + ); +} +impl Default for CUDA_ARRAY3D_DESCRIPTOR_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_ARRAY3D_DESCRIPTOR_v2 = CUDA_ARRAY3D_DESCRIPTOR_st; +pub type CUDA_ARRAY3D_DESCRIPTOR = CUDA_ARRAY3D_DESCRIPTOR_v2; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_SPARSE_PROPERTIES_st { + pub tileExtent: CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1, + pub miptailFirstLevel: ::core::ffi::c_uint, + pub miptailSize: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 4usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1 { + pub width: ::core::ffi::c_uint, + pub height: ::core::ffi::c_uint, + pub depth: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!( + "Size of: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(depth) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_SPARSE_PROPERTIES_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).tileExtent) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(tileExtent) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptailFirstLevel) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(miptailFirstLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptailSize) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(miptailSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(reserved) + ) + ); +} +pub type CUDA_ARRAY_SPARSE_PROPERTIES_v1 = CUDA_ARRAY_SPARSE_PROPERTIES_st; +pub type CUDA_ARRAY_SPARSE_PROPERTIES = CUDA_ARRAY_SPARSE_PROPERTIES_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_RESOURCE_DESC_st { + pub resType: CUresourcetype, + pub res: CUDA_RESOURCE_DESC_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_RESOURCE_DESC_st__bindgen_ty_1 { + pub array: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub mipmap: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2, + pub linear: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3, + pub pitch2D: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4, + pub reserved: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub hArray: CUarray, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hArray) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2 { + pub hMipmappedArray: CUmipmappedArray, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hMipmappedArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(hMipmappedArray) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3 { + pub devPtr: CUdeviceptr, + pub format: CUarray_format, + pub numChannels: ::core::ffi::c_uint, + pub sizeInBytes: usize, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).devPtr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(devPtr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numChannels) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(numChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sizeInBytes) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(sizeInBytes) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4 { + pub devPtr: CUdeviceptr, + pub format: CUarray_format, + pub numChannels: ::core::ffi::c_uint, + pub width: usize, + pub height: usize, + pub pitchInBytes: usize, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).devPtr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(devPtr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numChannels) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(numChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitchInBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(pitchInBytes) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5 { + pub reserved: [::core::ffi::c_int; 32usize], +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5), + "::", + stringify!(reserved) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).array) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(array) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(mipmap) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).linear) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(linear) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitch2D) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(pitch2D) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_RESOURCE_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(resType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).res) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(res) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_RESOURCE_DESC_v1 = CUDA_RESOURCE_DESC_st; +pub type CUDA_RESOURCE_DESC = CUDA_RESOURCE_DESC_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct CUDA_TEXTURE_DESC_st { + pub addressMode: [CUaddress_mode; 3usize], + pub filterMode: CUfilter_mode, + pub flags: ::core::ffi::c_uint, + pub maxAnisotropy: ::core::ffi::c_uint, + pub mipmapFilterMode: CUfilter_mode, + pub mipmapLevelBias: f32, + pub minMipmapLevelClamp: f32, + pub maxMipmapLevelClamp: f32, + pub borderColor: [f32; 4usize], + pub reserved: [::core::ffi::c_int; 12usize], +} +#[test] +fn bindgen_test_layout_CUDA_TEXTURE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(CUDA_TEXTURE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUDA_TEXTURE_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).addressMode) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(addressMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).filterMode) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(filterMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxAnisotropy) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(maxAnisotropy) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmapFilterMode) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(mipmapFilterMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmapLevelBias) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(mipmapLevelBias) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).minMipmapLevelClamp) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(minMipmapLevelClamp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxMipmapLevelClamp) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(maxMipmapLevelClamp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).borderColor) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(borderColor) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_TEXTURE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_TEXTURE_DESC_v1 = CUDA_TEXTURE_DESC_st; +pub type CUDA_TEXTURE_DESC = CUDA_TEXTURE_DESC_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUresourceViewFormat_enum { + CU_RES_VIEW_FORMAT_NONE = 0, + CU_RES_VIEW_FORMAT_UINT_1X8 = 1, + CU_RES_VIEW_FORMAT_UINT_2X8 = 2, + CU_RES_VIEW_FORMAT_UINT_4X8 = 3, + CU_RES_VIEW_FORMAT_SINT_1X8 = 4, + CU_RES_VIEW_FORMAT_SINT_2X8 = 5, + CU_RES_VIEW_FORMAT_SINT_4X8 = 6, + CU_RES_VIEW_FORMAT_UINT_1X16 = 7, + CU_RES_VIEW_FORMAT_UINT_2X16 = 8, + CU_RES_VIEW_FORMAT_UINT_4X16 = 9, + CU_RES_VIEW_FORMAT_SINT_1X16 = 10, + CU_RES_VIEW_FORMAT_SINT_2X16 = 11, + CU_RES_VIEW_FORMAT_SINT_4X16 = 12, + CU_RES_VIEW_FORMAT_UINT_1X32 = 13, + CU_RES_VIEW_FORMAT_UINT_2X32 = 14, + CU_RES_VIEW_FORMAT_UINT_4X32 = 15, + CU_RES_VIEW_FORMAT_SINT_1X32 = 16, + CU_RES_VIEW_FORMAT_SINT_2X32 = 17, + CU_RES_VIEW_FORMAT_SINT_4X32 = 18, + CU_RES_VIEW_FORMAT_FLOAT_1X16 = 19, + CU_RES_VIEW_FORMAT_FLOAT_2X16 = 20, + CU_RES_VIEW_FORMAT_FLOAT_4X16 = 21, + CU_RES_VIEW_FORMAT_FLOAT_1X32 = 22, + CU_RES_VIEW_FORMAT_FLOAT_2X32 = 23, + CU_RES_VIEW_FORMAT_FLOAT_4X32 = 24, + CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = 25, + CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = 26, + CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = 27, + CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = 28, + CU_RES_VIEW_FORMAT_SIGNED_BC4 = 29, + CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = 30, + CU_RES_VIEW_FORMAT_SIGNED_BC5 = 31, + CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = 32, + CU_RES_VIEW_FORMAT_SIGNED_BC6H = 33, + CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = 34, +} +pub use self::CUresourceViewFormat_enum as CUresourceViewFormat; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_VIEW_DESC_st { + pub format: CUresourceViewFormat, + pub width: usize, + pub height: usize, + pub depth: usize, + pub firstMipmapLevel: ::core::ffi::c_uint, + pub lastMipmapLevel: ::core::ffi::c_uint, + pub firstLayer: ::core::ffi::c_uint, + pub lastLayer: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_VIEW_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_VIEW_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_RESOURCE_VIEW_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).firstMipmapLevel) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(firstMipmapLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).lastMipmapLevel) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(lastMipmapLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).firstLayer) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(firstLayer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).lastLayer) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(lastLayer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_RESOURCE_VIEW_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_RESOURCE_VIEW_DESC_v1 = CUDA_RESOURCE_VIEW_DESC_st; +pub type CUDA_RESOURCE_VIEW_DESC = CUDA_RESOURCE_VIEW_DESC_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st { + pub p2pToken: ::core::ffi::c_ulonglong, + pub vaSpaceToken: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).p2pToken) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), + "::", + stringify!(p2pToken) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).vaSpaceToken) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), + "::", + stringify!(vaSpaceToken) + ) + ); +} +pub type CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 = CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st; +pub type CUDA_POINTER_ATTRIBUTE_P2P_TOKENS = CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum { + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = 0, + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = 1, + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = 3, +} +pub use self::CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum as CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_LAUNCH_PARAMS_st { + pub function: CUfunction, + pub gridDimX: ::core::ffi::c_uint, + pub gridDimY: ::core::ffi::c_uint, + pub gridDimZ: ::core::ffi::c_uint, + pub blockDimX: ::core::ffi::c_uint, + pub blockDimY: ::core::ffi::c_uint, + pub blockDimZ: ::core::ffi::c_uint, + pub sharedMemBytes: ::core::ffi::c_uint, + pub hStream: CUstream, + pub kernelParams: *mut *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_LAUNCH_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUDA_LAUNCH_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_LAUNCH_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimX) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimY) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimZ) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(sharedMemBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hStream) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(hStream) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).kernelParams) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(kernelParams) + ) + ); +} +impl Default for CUDA_LAUNCH_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_LAUNCH_PARAMS_v1 = CUDA_LAUNCH_PARAMS_st; +pub type CUDA_LAUNCH_PARAMS = CUDA_LAUNCH_PARAMS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexternalMemoryHandleType_enum { + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 1, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = 2, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = 4, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = 5, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = 6, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = 7, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = 8, +} +pub use self::CUexternalMemoryHandleType_enum as CUexternalMemoryHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st { + pub type_: CUexternalMemoryHandleType, + pub handle: CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1, + pub size: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1 { + pub fd: ::core::ffi::c_int, + pub win32: CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciBufObject: *const ::core::ffi::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub handle: *mut ::core::ffi::c_void, + pub name: *const ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(name) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(win32) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciBufObject) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(nvSciBufObject) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 = CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_HANDLE_DESC = CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st { + pub offset: ::core::ffi::c_ulonglong, + pub size: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +pub type CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 = CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_BUFFER_DESC = CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st { + pub offset: ::core::ffi::c_ulonglong, + pub arrayDesc: CUDA_ARRAY3D_DESCRIPTOR, + pub numLevels: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).arrayDesc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(arrayDesc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numLevels) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(numLevels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 = + CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC = CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexternalSemaphoreHandleType_enum { + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 1, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = 2, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = 4, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = 5, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = 6, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = 7, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = 8, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = 9, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = 10, +} +pub use self::CUexternalSemaphoreHandleType_enum as CUexternalSemaphoreHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st { + pub type_: CUexternalSemaphoreHandleType, + pub handle: CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1 { + pub fd: ::core::ffi::c_int, + pub win32: CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSyncObj: *const ::core::ffi::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub handle: *mut ::core::ffi::c_void, + pub name: *const ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(name) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(win32) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSyncObj) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(nvSciSyncObj) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 = CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st; +pub type CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC = CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st { + pub params: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1 { + pub fence: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSync: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + pub keyedMutex: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + pub reserved: [::core::ffi::c_uint; 12usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1 { + pub value: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + pub fence: *mut ::core::ffi::c_void, + pub reserved: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3 { + pub key: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(key) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSync) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(nvSciSync) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).keyedMutex) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(keyedMutex) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).params) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(params) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 = CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st; +pub type CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS = CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st { + pub params: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1 { + pub fence: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSync: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + pub keyedMutex: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + pub reserved: [::core::ffi::c_uint; 10usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1 { + pub value: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + pub fence: *mut ::core::ffi::c_void, + pub reserved: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3 { + pub key: ::core::ffi::c_ulonglong, + pub timeoutMs: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).timeoutMs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(timeoutMs) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSync) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(nvSciSync) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).keyedMutex) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(keyedMutex) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).params) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(params) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 = CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st; +pub type CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS = CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st { + pub extSemArray: *mut CUexternalSemaphore, + pub paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + pub numExtSems: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extSemArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(extSemArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).paramsArray) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(paramsArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numExtSems) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(numExtSems) + ) + ); +} +impl Default for CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st; +pub type CUDA_EXT_SEM_SIGNAL_NODE_PARAMS = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_st { + pub extSemArray: *mut CUexternalSemaphore, + pub paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + pub numExtSems: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extSemArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(extSemArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).paramsArray) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(paramsArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numExtSems) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(numExtSems) + ) + ); +} +impl Default for CUDA_EXT_SEM_WAIT_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 = CUDA_EXT_SEM_WAIT_NODE_PARAMS_st; +pub type CUDA_EXT_SEM_WAIT_NODE_PARAMS = CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1; +pub type CUmemGenericAllocationHandle_v1 = ::core::ffi::c_ulonglong; +pub type CUmemGenericAllocationHandle = CUmemGenericAllocationHandle_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationHandleType_enum { + CU_MEM_HANDLE_TYPE_NONE = 0, + CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = 1, + CU_MEM_HANDLE_TYPE_WIN32 = 2, + CU_MEM_HANDLE_TYPE_WIN32_KMT = 4, + CU_MEM_HANDLE_TYPE_MAX = 2147483647, +} +pub use self::CUmemAllocationHandleType_enum as CUmemAllocationHandleType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAccess_flags_enum { + CU_MEM_ACCESS_FLAGS_PROT_NONE = 0, + CU_MEM_ACCESS_FLAGS_PROT_READ = 1, + CU_MEM_ACCESS_FLAGS_PROT_READWRITE = 3, + CU_MEM_ACCESS_FLAGS_PROT_MAX = 2147483647, +} +pub use self::CUmemAccess_flags_enum as CUmemAccess_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemLocationType_enum { + CU_MEM_LOCATION_TYPE_INVALID = 0, + CU_MEM_LOCATION_TYPE_DEVICE = 1, + CU_MEM_LOCATION_TYPE_MAX = 2147483647, +} +pub use self::CUmemLocationType_enum as CUmemLocationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationType_enum { + CU_MEM_ALLOCATION_TYPE_INVALID = 0, + CU_MEM_ALLOCATION_TYPE_PINNED = 1, + CU_MEM_ALLOCATION_TYPE_MAX = 2147483647, +} +pub use self::CUmemAllocationType_enum as CUmemAllocationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationGranularity_flags_enum { + CU_MEM_ALLOC_GRANULARITY_MINIMUM = 0, + CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = 1, +} +pub use self::CUmemAllocationGranularity_flags_enum as CUmemAllocationGranularity_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarraySparseSubresourceType_enum { + CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = 0, + CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = 1, +} +pub use self::CUarraySparseSubresourceType_enum as CUarraySparseSubresourceType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemOperationType_enum { + CU_MEM_OPERATION_TYPE_MAP = 1, + CU_MEM_OPERATION_TYPE_UNMAP = 2, +} +pub use self::CUmemOperationType_enum as CUmemOperationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemHandleType_enum { + CU_MEM_HANDLE_TYPE_GENERIC = 0, +} +pub use self::CUmemHandleType_enum as CUmemHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUarrayMapInfo_st { + pub resourceType: CUresourcetype, + pub resource: CUarrayMapInfo_st__bindgen_ty_1, + pub subresourceType: CUarraySparseSubresourceType, + pub subresource: CUarrayMapInfo_st__bindgen_ty_2, + pub memOperationType: CUmemOperationType, + pub memHandleType: CUmemHandleType, + pub memHandle: CUarrayMapInfo_st__bindgen_ty_3, + pub offset: ::core::ffi::c_ulonglong, + pub deviceBitMask: ::core::ffi::c_uint, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_1 { + pub mipmap: CUmipmappedArray, + pub array: CUarray, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_1), + "::", + stringify!(mipmap) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).array) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_1), + "::", + stringify!(array) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_2 { + pub sparseLevel: CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1, + pub miptail: CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1 { + pub level: ::core::ffi::c_uint, + pub layer: ::core::ffi::c_uint, + pub offsetX: ::core::ffi::c_uint, + pub offsetY: ::core::ffi::c_uint, + pub offsetZ: ::core::ffi::c_uint, + pub extentWidth: ::core::ffi::c_uint, + pub extentHeight: ::core::ffi::c_uint, + pub extentDepth: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!( + "Size of: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(level) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).layer) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(layer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentWidth) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentWidth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentHeight) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentDepth) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentDepth) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2 { + pub layer: ::core::ffi::c_uint, + pub offset: ::core::ffi::c_ulonglong, + pub size: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).layer) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(layer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(size) + ) + ); +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sparseLevel) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2), + "::", + stringify!(sparseLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptail) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2), + "::", + stringify!(miptail) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_3 { + pub memHandle: CUmemGenericAllocationHandle, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_3)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_3)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_3), + "::", + stringify!(memHandle) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resourceType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(resourceType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resource) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(resource) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).subresourceType) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(subresourceType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).subresource) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(subresource) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memOperationType) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memOperationType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandleType) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memHandleType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandle) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memHandle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).deviceBitMask) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(deviceBitMask) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUarrayMapInfo_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUarrayMapInfo_v1 = CUarrayMapInfo_st; +pub type CUarrayMapInfo = CUarrayMapInfo_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemLocation_st { + pub type_: CUmemLocationType, + pub id: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUmemLocation_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUmemLocation_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUmemLocation_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemLocation_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemLocation_st), + "::", + stringify!(id) + ) + ); +} +impl Default for CUmemLocation_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemLocation_v1 = CUmemLocation_st; +pub type CUmemLocation = CUmemLocation_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationCompType_enum { + CU_MEM_ALLOCATION_COMP_NONE = 0, + CU_MEM_ALLOCATION_COMP_GENERIC = 1, +} +pub use self::CUmemAllocationCompType_enum as CUmemAllocationCompType; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAllocationProp_st { + pub type_: CUmemAllocationType, + pub requestedHandleTypes: CUmemAllocationHandleType, + pub location: CUmemLocation, + pub win32HandleMetaData: *mut ::core::ffi::c_void, + pub allocFlags: CUmemAllocationProp_st__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAllocationProp_st__bindgen_ty_1 { + pub compressionType: ::core::ffi::c_uchar, + pub gpuDirectRDMACapable: ::core::ffi::c_uchar, + pub usage: ::core::ffi::c_ushort, + pub reserved: [::core::ffi::c_uchar; 4usize], +} +#[test] +fn bindgen_test_layout_CUmemAllocationProp_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!( + "Alignment of ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).compressionType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(compressionType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gpuDirectRDMACapable) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(gpuDirectRDMACapable) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).usage) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(usage) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +#[test] +fn bindgen_test_layout_CUmemAllocationProp_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUmemAllocationProp_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUmemAllocationProp_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).requestedHandleTypes) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(requestedHandleTypes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32HandleMetaData) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(win32HandleMetaData) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).allocFlags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(allocFlags) + ) + ); +} +impl Default for CUmemAllocationProp_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemAllocationProp_v1 = CUmemAllocationProp_st; +pub type CUmemAllocationProp = CUmemAllocationProp_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAccessDesc_st { + pub location: CUmemLocation, + pub flags: CUmemAccess_flags, +} +#[test] +fn bindgen_test_layout_CUmemAccessDesc_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(CUmemAccessDesc_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUmemAccessDesc_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAccessDesc_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemAccessDesc_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUmemAccessDesc_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemAccessDesc_v1 = CUmemAccessDesc_st; +pub type CUmemAccessDesc = CUmemAccessDesc_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphExecUpdateResult_enum { + CU_GRAPH_EXEC_UPDATE_SUCCESS = 0, + CU_GRAPH_EXEC_UPDATE_ERROR = 1, + CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = 2, + CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = 3, + CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = 4, + CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = 5, + CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = 6, + CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = 7, +} +pub use self::CUgraphExecUpdateResult_enum as CUgraphExecUpdateResult; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemPool_attribute_enum { + CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = 1, + CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = 2, + CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = 3, + CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = 4, + CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = 5, + CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = 6, + CU_MEMPOOL_ATTR_USED_MEM_CURRENT = 7, + CU_MEMPOOL_ATTR_USED_MEM_HIGH = 8, +} +pub use self::CUmemPool_attribute_enum as CUmemPool_attribute; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemPoolProps_st { + pub allocType: CUmemAllocationType, + pub handleTypes: CUmemAllocationHandleType, + pub location: CUmemLocation, + pub win32SecurityAttributes: *mut ::core::ffi::c_void, + pub reserved: [::core::ffi::c_uchar; 64usize], +} +#[test] +fn bindgen_test_layout_CUmemPoolProps_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(CUmemPoolProps_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUmemPoolProps_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).allocType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(allocType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handleTypes) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(handleTypes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32SecurityAttributes) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(win32SecurityAttributes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUmemPoolProps_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemPoolProps_v1 = CUmemPoolProps_st; +pub type CUmemPoolProps = CUmemPoolProps_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemPoolPtrExportData_st { + pub reserved: [::core::ffi::c_uchar; 64usize], +} +#[test] +fn bindgen_test_layout_CUmemPoolPtrExportData_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUmemPoolPtrExportData_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUmemPoolPtrExportData_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolPtrExportData_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUmemPoolPtrExportData_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemPoolPtrExportData_v1 = CUmemPoolPtrExportData_st; +pub type CUmemPoolPtrExportData = CUmemPoolPtrExportData_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEM_ALLOC_NODE_PARAMS_st { + pub poolProps: CUmemPoolProps, + pub accessDescs: *const CUmemAccessDesc, + pub accessDescCount: usize, + pub bytesize: usize, + pub dptr: CUdeviceptr, +} +#[test] +fn bindgen_test_layout_CUDA_MEM_ALLOC_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!("Size of: ", stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).poolProps) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(poolProps) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessDescs) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(accessDescs) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessDescCount) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(accessDescCount) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).bytesize) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(bytesize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dptr) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(dptr) + ) + ); +} +impl Default for CUDA_MEM_ALLOC_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEM_ALLOC_NODE_PARAMS = CUDA_MEM_ALLOC_NODE_PARAMS_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphMem_attribute_enum { + CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT = 0, + CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = 1, + CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = 2, + CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = 3, +} +pub use self::CUgraphMem_attribute_enum as CUgraphMem_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesOptions_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = 1, + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = 2, +} +pub use self::CUflushGPUDirectRDMAWritesOptions_enum as CUflushGPUDirectRDMAWritesOptions; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUGPUDirectRDMAWritesOrdering_enum { + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = 0, + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = 100, + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = 200, +} +pub use self::CUGPUDirectRDMAWritesOrdering_enum as CUGPUDirectRDMAWritesOrdering; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesScope_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = 100, + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = 200, +} +pub use self::CUflushGPUDirectRDMAWritesScope_enum as CUflushGPUDirectRDMAWritesScope; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesTarget_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = 0, +} +pub use self::CUflushGPUDirectRDMAWritesTarget_enum as CUflushGPUDirectRDMAWritesTarget; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphDebugDot_flags_enum { + CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = 1, + CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = 2, + CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = 4, + CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = 8, + CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = 16, + CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = 32, + CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = 64, + CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = 128, + CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = 256, + CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = 512, + CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = 1024, + CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = 2048, + CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = 4096, +} +pub use self::CUgraphDebugDot_flags_enum as CUgraphDebugDot_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUuserObject_flags_enum { + CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = 1, +} +pub use self::CUuserObject_flags_enum as CUuserObject_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUuserObjectRetain_flags_enum { + CU_GRAPH_USER_OBJECT_MOVE = 1, +} +pub use self::CUuserObjectRetain_flags_enum as CUuserObjectRetain_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphInstantiate_flags_enum { + CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = 1, +} +pub use self::CUgraphInstantiate_flags_enum as CUgraphInstantiate_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUoutput_mode_enum { + CU_OUT_KEY_VALUE_PAIR = 0, + CU_OUT_CSV = 1, +} +pub use self::CUoutput_mode_enum as CUoutput_mode; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cuGetErrorString: Result< + unsafe extern "C" fn(error: CUresult, pStr: *mut *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuGetErrorName: Result< + unsafe extern "C" fn(error: CUresult, pStr: *mut *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuInit: + Result CUresult, ::libloading::Error>, + pub cuDriverGetVersion: Result< + unsafe extern "C" fn(driverVersion: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGet: Result< + unsafe extern "C" fn(device: *mut CUdevice, ordinal: ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetCount: Result< + unsafe extern "C" fn(count: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetName: Result< + unsafe extern "C" fn( + name: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetUuid: Result< + unsafe extern "C" fn(uuid: *mut CUuuid, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetUuid_v2: Result< + unsafe extern "C" fn(uuid: *mut CUuuid, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetLuid: Result< + unsafe extern "C" fn( + luid: *mut ::core::ffi::c_char, + deviceNodeMask: *mut ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceTotalMem_v2: Result< + unsafe extern "C" fn(bytes: *mut usize, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetTexture1DLinearMaxWidth: Result< + unsafe extern "C" fn( + maxWidthInElements: *mut usize, + format: CUarray_format, + numChannels: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetAttribute: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + attrib: CUdevice_attribute, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetNvSciSyncAttributes: Result< + unsafe extern "C" fn( + nvSciSyncAttrList: *mut ::core::ffi::c_void, + dev: CUdevice, + flags: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceSetMemPool: Result< + unsafe extern "C" fn(dev: CUdevice, pool: CUmemoryPool) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetMemPool: Result< + unsafe extern "C" fn(pool: *mut CUmemoryPool, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetDefaultMemPool: Result< + unsafe extern "C" fn(pool_out: *mut CUmemoryPool, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuFlushGPUDirectRDMAWrites: Result< + unsafe extern "C" fn( + target: CUflushGPUDirectRDMAWritesTarget, + scope: CUflushGPUDirectRDMAWritesScope, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetProperties: Result< + unsafe extern "C" fn(prop: *mut CUdevprop, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceComputeCapability: Result< + unsafe extern "C" fn( + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxRetain: Result< + unsafe extern "C" fn(pctx: *mut CUcontext, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxRelease_v2: + Result CUresult, ::libloading::Error>, + pub cuDevicePrimaryCtxSetFlags_v2: Result< + unsafe extern "C" fn(dev: CUdevice, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxGetState: Result< + unsafe extern "C" fn( + dev: CUdevice, + flags: *mut ::core::ffi::c_uint, + active: *mut ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxReset_v2: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetExecAffinitySupport: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + type_: CUexecAffinityType, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxCreate_v2: Result< + unsafe extern "C" fn( + pctx: *mut CUcontext, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxCreate_v3: Result< + unsafe extern "C" fn( + pctx: *mut CUcontext, + paramsArray: *mut CUexecAffinityParam, + numParams: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxPushCurrent_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxPopCurrent_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxSetCurrent: + Result CUresult, ::libloading::Error>, + pub cuCtxGetCurrent: + Result CUresult, ::libloading::Error>, + pub cuCtxGetDevice: + Result CUresult, ::libloading::Error>, + pub cuCtxGetFlags: Result< + unsafe extern "C" fn(flags: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxSynchronize: Result CUresult, ::libloading::Error>, + pub cuCtxSetLimit: + Result CUresult, ::libloading::Error>, + pub cuCtxGetLimit: Result< + unsafe extern "C" fn(pvalue: *mut usize, limit: CUlimit) -> CUresult, + ::libloading::Error, + >, + pub cuCtxGetCacheConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxSetCacheConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxGetSharedMemConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxSetSharedMemConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxGetApiVersion: Result< + unsafe extern "C" fn(ctx: CUcontext, version: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxGetStreamPriorityRange: Result< + unsafe extern "C" fn( + leastPriority: *mut ::core::ffi::c_int, + greatestPriority: *mut ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxResetPersistingL2Cache: + Result CUresult, ::libloading::Error>, + pub cuCtxGetExecAffinity: Result< + unsafe extern "C" fn( + pExecAffinity: *mut CUexecAffinityParam, + type_: CUexecAffinityType, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxAttach: Result< + unsafe extern "C" fn(pctx: *mut CUcontext, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDetach: Result CUresult, ::libloading::Error>, + pub cuModuleLoad: Result< + unsafe extern "C" fn(module: *mut CUmodule, fname: *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadData: Result< + unsafe extern "C" fn(module: *mut CUmodule, image: *const ::core::ffi::c_void) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadDataEx: Result< + unsafe extern "C" fn( + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadFatBinary: Result< + unsafe extern "C" fn( + module: *mut CUmodule, + fatCubin: *const ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleUnload: + Result CUresult, ::libloading::Error>, + pub cuModuleGetFunction: Result< + unsafe extern "C" fn( + hfunc: *mut CUfunction, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetGlobal_v2: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytes: *mut usize, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetTexRef: Result< + unsafe extern "C" fn( + pTexRef: *mut CUtexref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetSurfRef: Result< + unsafe extern "C" fn( + pSurfRef: *mut CUsurfref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkCreate_v2: Result< + unsafe extern "C" fn( + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + stateOut: *mut CUlinkState, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkAddData_v2: Result< + unsafe extern "C" fn( + state: CUlinkState, + type_: CUjitInputType, + data: *mut ::core::ffi::c_void, + size: usize, + name: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkAddFile_v2: Result< + unsafe extern "C" fn( + state: CUlinkState, + type_: CUjitInputType, + path: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkComplete: Result< + unsafe extern "C" fn( + state: CUlinkState, + cubinOut: *mut *mut ::core::ffi::c_void, + sizeOut: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkDestroy: + Result CUresult, ::libloading::Error>, + pub cuMemGetInfo_v2: Result< + unsafe extern "C" fn(free: *mut usize, total: *mut usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemAlloc_v2: Result< + unsafe extern "C" fn(dptr: *mut CUdeviceptr, bytesize: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocPitch_v2: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + pPitch: *mut usize, + WidthInBytes: usize, + Height: usize, + ElementSizeBytes: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemFree_v2: + Result CUresult, ::libloading::Error>, + pub cuMemGetAddressRange_v2: Result< + unsafe extern "C" fn( + pbase: *mut CUdeviceptr, + psize: *mut usize, + dptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocHost_v2: Result< + unsafe extern "C" fn(pp: *mut *mut ::core::ffi::c_void, bytesize: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemFreeHost: + Result CUresult, ::libloading::Error>, + pub cuMemHostAlloc: Result< + unsafe extern "C" fn( + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostGetDevicePointer_v2: Result< + unsafe extern "C" fn( + pdptr: *mut CUdeviceptr, + p: *mut ::core::ffi::c_void, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostGetFlags: Result< + unsafe extern "C" fn( + pFlags: *mut ::core::ffi::c_uint, + p: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocManaged: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetByPCIBusId: Result< + unsafe extern "C" fn(dev: *mut CUdevice, pciBusId: *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetPCIBusId: Result< + unsafe extern "C" fn( + pciBusId: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuIpcGetEventHandle: Result< + unsafe extern "C" fn(pHandle: *mut CUipcEventHandle, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuIpcOpenEventHandle: Result< + unsafe extern "C" fn(phEvent: *mut CUevent, handle: CUipcEventHandle) -> CUresult, + ::libloading::Error, + >, + pub cuIpcGetMemHandle: Result< + unsafe extern "C" fn(pHandle: *mut CUipcMemHandle, dptr: CUdeviceptr) -> CUresult, + ::libloading::Error, + >, + pub cuIpcOpenMemHandle_v2: Result< + unsafe extern "C" fn( + pdptr: *mut CUdeviceptr, + handle: CUipcMemHandle, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuIpcCloseMemHandle: + Result CUresult, ::libloading::Error>, + pub cuMemHostRegister_v2: Result< + unsafe extern "C" fn( + p: *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostUnregister: + Result CUresult, ::libloading::Error>, + pub cuMemcpy: Result< + unsafe extern "C" fn(dst: CUdeviceptr, src: CUdeviceptr, ByteCount: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyPeer: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoH_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoH_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy2D_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy2DUnaligned_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy3D_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy3DPeer: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D_PEER) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAsync: Result< + unsafe extern "C" fn( + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyPeerAsync: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoDAsync_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoHAsync_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoDAsync_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoAAsync_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoHAsync_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy2DAsync_v2: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY2D, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy3DAsync_v2: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy3DPeerAsync: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D_PEER, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD8_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD16_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD32_v2: Result< + unsafe extern "C" fn(dstDevice: CUdeviceptr, ui: ::core::ffi::c_uint, N: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D8_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D16_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D32_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD8Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD16Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD32Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D8Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D16Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D32Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayCreate_v2: Result< + unsafe extern "C" fn( + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY_DESCRIPTOR, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetDescriptor_v2: Result< + unsafe extern "C" fn( + pArrayDescriptor: *mut CUDA_ARRAY_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetSparseProperties: Result< + unsafe extern "C" fn( + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + array: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayGetSparseProperties: Result< + unsafe extern "C" fn( + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + mipmap: CUmipmappedArray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetPlane: Result< + unsafe extern "C" fn( + pPlaneArray: *mut CUarray, + hArray: CUarray, + planeIdx: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayDestroy: + Result CUresult, ::libloading::Error>, + pub cuArray3DCreate_v2: Result< + unsafe extern "C" fn( + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY3D_DESCRIPTOR, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArray3DGetDescriptor_v2: Result< + unsafe extern "C" fn( + pArrayDescriptor: *mut CUDA_ARRAY3D_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayCreate: Result< + unsafe extern "C" fn( + pHandle: *mut CUmipmappedArray, + pMipmappedArrayDesc: *const CUDA_ARRAY3D_DESCRIPTOR, + numMipmapLevels: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayGetLevel: Result< + unsafe extern "C" fn( + pLevelArray: *mut CUarray, + hMipmappedArray: CUmipmappedArray, + level: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayDestroy: Result< + unsafe extern "C" fn(hMipmappedArray: CUmipmappedArray) -> CUresult, + ::libloading::Error, + >, + pub cuMemAddressReserve: Result< + unsafe extern "C" fn( + ptr: *mut CUdeviceptr, + size: usize, + alignment: usize, + addr: CUdeviceptr, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAddressFree: Result< + unsafe extern "C" fn(ptr: CUdeviceptr, size: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemCreate: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + size: usize, + prop: *const CUmemAllocationProp, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRelease: Result< + unsafe extern "C" fn(handle: CUmemGenericAllocationHandle) -> CUresult, + ::libloading::Error, + >, + pub cuMemMap: Result< + unsafe extern "C" fn( + ptr: CUdeviceptr, + size: usize, + offset: usize, + handle: CUmemGenericAllocationHandle, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemMapArrayAsync: Result< + unsafe extern "C" fn( + mapInfoList: *mut CUarrayMapInfo, + count: ::core::ffi::c_uint, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemUnmap: Result< + unsafe extern "C" fn(ptr: CUdeviceptr, size: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemSetAccess: Result< + unsafe extern "C" fn( + ptr: CUdeviceptr, + size: usize, + desc: *const CUmemAccessDesc, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAccess: Result< + unsafe extern "C" fn( + flags: *mut ::core::ffi::c_ulonglong, + location: *const CUmemLocation, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemExportToShareableHandle: Result< + unsafe extern "C" fn( + shareableHandle: *mut ::core::ffi::c_void, + handle: CUmemGenericAllocationHandle, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemImportFromShareableHandle: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + osHandle: *mut ::core::ffi::c_void, + shHandleType: CUmemAllocationHandleType, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAllocationGranularity: Result< + unsafe extern "C" fn( + granularity: *mut usize, + prop: *const CUmemAllocationProp, + option: CUmemAllocationGranularity_flags, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAllocationPropertiesFromHandle: Result< + unsafe extern "C" fn( + prop: *mut CUmemAllocationProp, + handle: CUmemGenericAllocationHandle, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRetainAllocationHandle: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + addr: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemFreeAsync: Result< + unsafe extern "C" fn(dptr: CUdeviceptr, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocAsync: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolTrimTo: Result< + unsafe extern "C" fn(pool: CUmemoryPool, minBytesToKeep: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolSetAttribute: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolGetAttribute: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolSetAccess: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + map: *const CUmemAccessDesc, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolGetAccess: Result< + unsafe extern "C" fn( + flags: *mut CUmemAccess_flags, + memPool: CUmemoryPool, + location: *mut CUmemLocation, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolCreate: Result< + unsafe extern "C" fn(pool: *mut CUmemoryPool, poolProps: *const CUmemPoolProps) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolDestroy: + Result CUresult, ::libloading::Error>, + pub cuMemAllocFromPoolAsync: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + pool: CUmemoryPool, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolExportToShareableHandle: Result< + unsafe extern "C" fn( + handle_out: *mut ::core::ffi::c_void, + pool: CUmemoryPool, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolImportFromShareableHandle: Result< + unsafe extern "C" fn( + pool_out: *mut CUmemoryPool, + handle: *mut ::core::ffi::c_void, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolExportPointer: Result< + unsafe extern "C" fn( + shareData_out: *mut CUmemPoolPtrExportData, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolImportPointer: Result< + unsafe extern "C" fn( + ptr_out: *mut CUdeviceptr, + pool: CUmemoryPool, + shareData: *mut CUmemPoolPtrExportData, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerGetAttribute: Result< + unsafe extern "C" fn( + data: *mut ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPrefetchAsync: Result< + unsafe extern "C" fn( + devPtr: CUdeviceptr, + count: usize, + dstDevice: CUdevice, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAdvise: Result< + unsafe extern "C" fn( + devPtr: CUdeviceptr, + count: usize, + advice: CUmem_advise, + device: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRangeGetAttribute: Result< + unsafe extern "C" fn( + data: *mut ::core::ffi::c_void, + dataSize: usize, + attribute: CUmem_range_attribute, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRangeGetAttributes: Result< + unsafe extern "C" fn( + data: *mut *mut ::core::ffi::c_void, + dataSizes: *mut usize, + attributes: *mut CUmem_range_attribute, + numAttributes: usize, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerSetAttribute: Result< + unsafe extern "C" fn( + value: *const ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerGetAttributes: Result< + unsafe extern "C" fn( + numAttributes: ::core::ffi::c_uint, + attributes: *mut CUpointer_attribute, + data: *mut *mut ::core::ffi::c_void, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamCreate: Result< + unsafe extern "C" fn(phStream: *mut CUstream, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuStreamCreateWithPriority: Result< + unsafe extern "C" fn( + phStream: *mut CUstream, + flags: ::core::ffi::c_uint, + priority: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetPriority: Result< + unsafe extern "C" fn(hStream: CUstream, priority: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetFlags: Result< + unsafe extern "C" fn(hStream: CUstream, flags: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCtx: Result< + unsafe extern "C" fn(hStream: CUstream, pctx: *mut CUcontext) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWaitEvent: Result< + unsafe extern "C" fn( + hStream: CUstream, + hEvent: CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamAddCallback: Result< + unsafe extern "C" fn( + hStream: CUstream, + callback: CUstreamCallback, + userData: *mut ::core::ffi::c_void, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamBeginCapture_v2: Result< + unsafe extern "C" fn(hStream: CUstream, mode: CUstreamCaptureMode) -> CUresult, + ::libloading::Error, + >, + pub cuThreadExchangeStreamCaptureMode: Result< + unsafe extern "C" fn(mode: *mut CUstreamCaptureMode) -> CUresult, + ::libloading::Error, + >, + pub cuStreamEndCapture: Result< + unsafe extern "C" fn(hStream: CUstream, phGraph: *mut CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuStreamIsCapturing: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus: *mut CUstreamCaptureStatus, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCaptureInfo: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCaptureInfo_v2: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + graph_out: *mut CUgraph, + dependencies_out: *mut *const CUgraphNode, + numDependencies_out: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamUpdateCaptureDependencies: Result< + unsafe extern "C" fn( + hStream: CUstream, + dependencies: *mut CUgraphNode, + numDependencies: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamAttachMemAsync: Result< + unsafe extern "C" fn( + hStream: CUstream, + dptr: CUdeviceptr, + length: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamQuery: + Result CUresult, ::libloading::Error>, + pub cuStreamSynchronize: + Result CUresult, ::libloading::Error>, + pub cuStreamDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuStreamCopyAttributes: + Result CUresult, ::libloading::Error>, + pub cuStreamGetAttribute: Result< + unsafe extern "C" fn( + hStream: CUstream, + attr: CUstreamAttrID, + value_out: *mut CUstreamAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamSetAttribute: Result< + unsafe extern "C" fn( + hStream: CUstream, + attr: CUstreamAttrID, + value: *const CUstreamAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuEventCreate: Result< + unsafe extern "C" fn(phEvent: *mut CUevent, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuEventRecord: Result< + unsafe extern "C" fn(hEvent: CUevent, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuEventRecordWithFlags: Result< + unsafe extern "C" fn( + hEvent: CUevent, + hStream: CUstream, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuEventQuery: + Result CUresult, ::libloading::Error>, + pub cuEventSynchronize: + Result CUresult, ::libloading::Error>, + pub cuEventDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuEventElapsedTime: Result< + unsafe extern "C" fn(pMilliseconds: *mut f32, hStart: CUevent, hEnd: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuImportExternalMemory: Result< + unsafe extern "C" fn( + extMem_out: *mut CUexternalMemory, + memHandleDesc: *const CUDA_EXTERNAL_MEMORY_HANDLE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuExternalMemoryGetMappedBuffer: Result< + unsafe extern "C" fn( + devPtr: *mut CUdeviceptr, + extMem: CUexternalMemory, + bufferDesc: *const CUDA_EXTERNAL_MEMORY_BUFFER_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuExternalMemoryGetMappedMipmappedArray: Result< + unsafe extern "C" fn( + mipmap: *mut CUmipmappedArray, + extMem: CUexternalMemory, + mipmapDesc: *const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDestroyExternalMemory: + Result CUresult, ::libloading::Error>, + pub cuImportExternalSemaphore: Result< + unsafe extern "C" fn( + extSem_out: *mut CUexternalSemaphore, + semHandleDesc: *const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSignalExternalSemaphoresAsync: Result< + unsafe extern "C" fn( + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuWaitExternalSemaphoresAsync: Result< + unsafe extern "C" fn( + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDestroyExternalSemaphore: + Result CUresult, ::libloading::Error>, + pub cuStreamWaitValue32: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWaitValue64: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWriteValue32: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWriteValue64: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamBatchMemOp: Result< + unsafe extern "C" fn( + stream: CUstream, + count: ::core::ffi::c_uint, + paramArray: *mut CUstreamBatchMemOpParams, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncGetAttribute: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + attrib: CUfunction_attribute, + hfunc: CUfunction, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetAttribute: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + attrib: CUfunction_attribute, + value: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetCacheConfig: Result< + unsafe extern "C" fn(hfunc: CUfunction, config: CUfunc_cache) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetSharedMemConfig: Result< + unsafe extern "C" fn(hfunc: CUfunction, config: CUsharedconfig) -> CUresult, + ::libloading::Error, + >, + pub cuFuncGetModule: Result< + unsafe extern "C" fn(hmod: *mut CUmodule, hfunc: CUfunction) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchKernel: Result< + unsafe extern "C" fn( + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + extra: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchCooperativeKernel: Result< + unsafe extern "C" fn( + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchCooperativeKernelMultiDevice: Result< + unsafe extern "C" fn( + launchParamsList: *mut CUDA_LAUNCH_PARAMS, + numDevices: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchHostFunc: Result< + unsafe extern "C" fn( + hStream: CUstream, + fn_: CUhostFn, + userData: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetBlockShape: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + x: ::core::ffi::c_int, + y: ::core::ffi::c_int, + z: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetSharedSize: Result< + unsafe extern "C" fn(hfunc: CUfunction, bytes: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetSize: Result< + unsafe extern "C" fn(hfunc: CUfunction, numbytes: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuParamSeti: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetf: Result< + unsafe extern "C" fn(hfunc: CUfunction, offset: ::core::ffi::c_int, value: f32) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetv: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + offset: ::core::ffi::c_int, + ptr: *mut ::core::ffi::c_void, + numbytes: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunch: Result CUresult, ::libloading::Error>, + pub cuLaunchGrid: Result< + unsafe extern "C" fn( + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchGridAsync: Result< + unsafe extern "C" fn( + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetTexRef: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + texunit: ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphCreate: Result< + unsafe extern "C" fn(phGraph: *mut CUgraph, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddKernelNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemcpyNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemcpyNodeGetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, nodeParams: *mut CUDA_MEMCPY3D) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemcpyNodeSetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, nodeParams: *const CUDA_MEMCPY3D) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemsetNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemsetNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemsetNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddHostNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphHostNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphHostNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddChildGraphNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + childGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphChildGraphNodeGetGraph: Result< + unsafe extern "C" fn(hNode: CUgraphNode, phGraph: *mut CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEmptyNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEventRecordNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventRecordNodeGetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event_out: *mut CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventRecordNodeSetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEventWaitNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventWaitNodeGetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event_out: *mut CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventWaitNodeSetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddExternalSemaphoresSignalNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresSignalNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresSignalNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddExternalSemaphoresWaitNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresWaitNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresWaitNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemAllocNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemAllocNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemFreeNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + dptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemFreeNodeGetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, dptr_out: *mut CUdeviceptr) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGraphMemTrim: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetGraphMemAttribute: Result< + unsafe extern "C" fn( + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceSetGraphMemAttribute: Result< + unsafe extern "C" fn( + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphClone: Result< + unsafe extern "C" fn(phGraphClone: *mut CUgraph, originalGraph: CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeFindInClone: Result< + unsafe extern "C" fn( + phNode: *mut CUgraphNode, + hOriginalNode: CUgraphNode, + hClonedGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetType: Result< + unsafe extern "C" fn(hNode: CUgraphNode, type_: *mut CUgraphNodeType) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetNodes: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + nodes: *mut CUgraphNode, + numNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetRootNodes: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + rootNodes: *mut CUgraphNode, + numRootNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetEdges: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *mut CUgraphNode, + to: *mut CUgraphNode, + numEdges: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetDependencies: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + dependencies: *mut CUgraphNode, + numDependencies: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetDependentNodes: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + dependentNodes: *mut CUgraphNode, + numDependentNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddDependencies: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphRemoveDependencies: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphDestroyNode: + Result CUresult, ::libloading::Error>, + pub cuGraphInstantiate_v2: Result< + unsafe extern "C" fn( + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + phErrorNode: *mut CUgraphNode, + logBuffer: *mut ::core::ffi::c_char, + bufferSize: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphInstantiateWithFlags: Result< + unsafe extern "C" fn( + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecKernelNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecMemcpyNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecMemsetNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecHostNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecChildGraphNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + childGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecEventRecordNodeSetEvent: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecEventWaitNodeSetEvent: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecExternalSemaphoresSignalNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecExternalSemaphoresWaitNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphUpload: Result< + unsafe extern "C" fn(hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuGraphLaunch: Result< + unsafe extern "C" fn(hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecDestroy: + Result CUresult, ::libloading::Error>, + pub cuGraphDestroy: + Result CUresult, ::libloading::Error>, + pub cuGraphExecUpdate: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hGraph: CUgraph, + hErrorNode_out: *mut CUgraphNode, + updateResult_out: *mut CUgraphExecUpdateResult, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeCopyAttributes: Result< + unsafe extern "C" fn(dst: CUgraphNode, src: CUgraphNode) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeGetAttribute: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value_out: *mut CUkernelNodeAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeSetAttribute: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value: *const CUkernelNodeAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphDebugDotPrint: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + path: *const ::core::ffi::c_char, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectCreate: Result< + unsafe extern "C" fn( + object_out: *mut CUuserObject, + ptr: *mut ::core::ffi::c_void, + destroy: CUhostFn, + initialRefcount: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectRetain: Result< + unsafe extern "C" fn(object: CUuserObject, count: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectRelease: Result< + unsafe extern "C" fn(object: CUuserObject, count: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphRetainUserObject: Result< + unsafe extern "C" fn( + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphReleaseUserObject: Result< + unsafe extern "C" fn( + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxActiveBlocksPerMultiprocessor: Result< + unsafe extern "C" fn( + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags: Result< + unsafe extern "C" fn( + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxPotentialBlockSize: Result< + unsafe extern "C" fn( + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxPotentialBlockSizeWithFlags: Result< + unsafe extern "C" fn( + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyAvailableDynamicSMemPerBlock: Result< + unsafe extern "C" fn( + dynamicSmemSize: *mut usize, + func: CUfunction, + numBlocks: ::core::ffi::c_int, + blockSize: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetArray: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmappedArray: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + hMipmappedArray: CUmipmappedArray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddress_v2: Result< + unsafe extern "C" fn( + ByteOffset: *mut usize, + hTexRef: CUtexref, + dptr: CUdeviceptr, + bytes: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddress2D_v3: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + desc: *const CUDA_ARRAY_DESCRIPTOR, + dptr: CUdeviceptr, + Pitch: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFormat: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + fmt: CUarray_format, + NumPackedComponents: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddressMode: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + am: CUaddress_mode, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFilterMode: Result< + unsafe extern "C" fn(hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmapFilterMode: Result< + unsafe extern "C" fn(hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmapLevelBias: + Result CUresult, ::libloading::Error>, + pub cuTexRefSetMipmapLevelClamp: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + minMipmapLevelClamp: f32, + maxMipmapLevelClamp: f32, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMaxAnisotropy: Result< + unsafe extern "C" fn(hTexRef: CUtexref, maxAniso: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetBorderColor: Result< + unsafe extern "C" fn(hTexRef: CUtexref, pBorderColor: *mut f32) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFlags: Result< + unsafe extern "C" fn(hTexRef: CUtexref, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetAddress_v2: Result< + unsafe extern "C" fn(pdptr: *mut CUdeviceptr, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetArray: Result< + unsafe extern "C" fn(phArray: *mut CUarray, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmappedArray: Result< + unsafe extern "C" fn( + phMipmappedArray: *mut CUmipmappedArray, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetAddressMode: Result< + unsafe extern "C" fn( + pam: *mut CUaddress_mode, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFilterMode: Result< + unsafe extern "C" fn(pfm: *mut CUfilter_mode, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFormat: Result< + unsafe extern "C" fn( + pFormat: *mut CUarray_format, + pNumChannels: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapFilterMode: Result< + unsafe extern "C" fn(pfm: *mut CUfilter_mode, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapLevelBias: Result< + unsafe extern "C" fn(pbias: *mut f32, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapLevelClamp: Result< + unsafe extern "C" fn( + pminMipmapLevelClamp: *mut f32, + pmaxMipmapLevelClamp: *mut f32, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMaxAnisotropy: Result< + unsafe extern "C" fn(pmaxAniso: *mut ::core::ffi::c_int, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetBorderColor: Result< + unsafe extern "C" fn(pBorderColor: *mut f32, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFlags: Result< + unsafe extern "C" fn(pFlags: *mut ::core::ffi::c_uint, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefCreate: + Result CUresult, ::libloading::Error>, + pub cuTexRefDestroy: + Result CUresult, ::libloading::Error>, + pub cuSurfRefSetArray: Result< + unsafe extern "C" fn( + hSurfRef: CUsurfref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfRefGetArray: Result< + unsafe extern "C" fn(phArray: *mut CUarray, hSurfRef: CUsurfref) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectCreate: Result< + unsafe extern "C" fn( + pTexObject: *mut CUtexObject, + pResDesc: *const CUDA_RESOURCE_DESC, + pTexDesc: *const CUDA_TEXTURE_DESC, + pResViewDesc: *const CUDA_RESOURCE_VIEW_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectDestroy: + Result CUresult, ::libloading::Error>, + pub cuTexObjectGetResourceDesc: Result< + unsafe extern "C" fn(pResDesc: *mut CUDA_RESOURCE_DESC, texObject: CUtexObject) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectGetTextureDesc: Result< + unsafe extern "C" fn(pTexDesc: *mut CUDA_TEXTURE_DESC, texObject: CUtexObject) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectGetResourceViewDesc: Result< + unsafe extern "C" fn( + pResViewDesc: *mut CUDA_RESOURCE_VIEW_DESC, + texObject: CUtexObject, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfObjectCreate: Result< + unsafe extern "C" fn( + pSurfObject: *mut CUsurfObject, + pResDesc: *const CUDA_RESOURCE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfObjectDestroy: + Result CUresult, ::libloading::Error>, + pub cuSurfObjectGetResourceDesc: Result< + unsafe extern "C" fn( + pResDesc: *mut CUDA_RESOURCE_DESC, + surfObject: CUsurfObject, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceCanAccessPeer: Result< + unsafe extern "C" fn( + canAccessPeer: *mut ::core::ffi::c_int, + dev: CUdevice, + peerDev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxEnablePeerAccess: Result< + unsafe extern "C" fn(peerContext: CUcontext, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDisablePeerAccess: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetP2PAttribute: Result< + unsafe extern "C" fn( + value: *mut ::core::ffi::c_int, + attrib: CUdevice_P2PAttribute, + srcDevice: CUdevice, + dstDevice: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsUnregisterResource: + Result CUresult, ::libloading::Error>, + pub cuGraphicsSubResourceGetMappedArray: Result< + unsafe extern "C" fn( + pArray: *mut CUarray, + resource: CUgraphicsResource, + arrayIndex: ::core::ffi::c_uint, + mipLevel: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceGetMappedMipmappedArray: Result< + unsafe extern "C" fn( + pMipmappedArray: *mut CUmipmappedArray, + resource: CUgraphicsResource, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceGetMappedPointer_v2: Result< + unsafe extern "C" fn( + pDevPtr: *mut CUdeviceptr, + pSize: *mut usize, + resource: CUgraphicsResource, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceSetMapFlags_v2: Result< + unsafe extern "C" fn(resource: CUgraphicsResource, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsMapResources: Result< + unsafe extern "C" fn( + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsUnmapResources: Result< + unsafe extern "C" fn( + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGetProcAddress: Result< + unsafe extern "C" fn( + symbol: *const ::core::ffi::c_char, + pfn: *mut *mut ::core::ffi::c_void, + cudaVersion: ::core::ffi::c_int, + flags: cuuint64_t, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGetExportTable: Result< + unsafe extern "C" fn( + ppExportTable: *mut *const ::core::ffi::c_void, + pExportTableId: *const CUuuid, + ) -> CUresult, + ::libloading::Error, + >, + pub cuProfilerInitialize: Result< + unsafe extern "C" fn( + configFile: *const ::core::ffi::c_char, + outputFile: *const ::core::ffi::c_char, + outputMode: CUoutput_mode, + ) -> CUresult, + ::libloading::Error, + >, + pub cuProfilerStart: Result CUresult, ::libloading::Error>, + pub cuProfilerStop: Result CUresult, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cuGetErrorString = __library.get(b"cuGetErrorString\0").map(|sym| *sym); + let cuGetErrorName = __library.get(b"cuGetErrorName\0").map(|sym| *sym); + let cuInit = __library.get(b"cuInit\0").map(|sym| *sym); + let cuDriverGetVersion = __library.get(b"cuDriverGetVersion\0").map(|sym| *sym); + let cuDeviceGet = __library.get(b"cuDeviceGet\0").map(|sym| *sym); + let cuDeviceGetCount = __library.get(b"cuDeviceGetCount\0").map(|sym| *sym); + let cuDeviceGetName = __library.get(b"cuDeviceGetName\0").map(|sym| *sym); + let cuDeviceGetUuid = __library.get(b"cuDeviceGetUuid\0").map(|sym| *sym); + let cuDeviceGetUuid_v2 = __library.get(b"cuDeviceGetUuid_v2\0").map(|sym| *sym); + let cuDeviceGetLuid = __library.get(b"cuDeviceGetLuid\0").map(|sym| *sym); + let cuDeviceTotalMem_v2 = __library.get(b"cuDeviceTotalMem_v2\0").map(|sym| *sym); + let cuDeviceGetTexture1DLinearMaxWidth = __library + .get(b"cuDeviceGetTexture1DLinearMaxWidth\0") + .map(|sym| *sym); + let cuDeviceGetAttribute = __library.get(b"cuDeviceGetAttribute\0").map(|sym| *sym); + let cuDeviceGetNvSciSyncAttributes = __library + .get(b"cuDeviceGetNvSciSyncAttributes\0") + .map(|sym| *sym); + let cuDeviceSetMemPool = __library.get(b"cuDeviceSetMemPool\0").map(|sym| *sym); + let cuDeviceGetMemPool = __library.get(b"cuDeviceGetMemPool\0").map(|sym| *sym); + let cuDeviceGetDefaultMemPool = __library + .get(b"cuDeviceGetDefaultMemPool\0") + .map(|sym| *sym); + let cuFlushGPUDirectRDMAWrites = __library + .get(b"cuFlushGPUDirectRDMAWrites\0") + .map(|sym| *sym); + let cuDeviceGetProperties = __library.get(b"cuDeviceGetProperties\0").map(|sym| *sym); + let cuDeviceComputeCapability = __library + .get(b"cuDeviceComputeCapability\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxRetain = __library.get(b"cuDevicePrimaryCtxRetain\0").map(|sym| *sym); + let cuDevicePrimaryCtxRelease_v2 = __library + .get(b"cuDevicePrimaryCtxRelease_v2\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxSetFlags_v2 = __library + .get(b"cuDevicePrimaryCtxSetFlags_v2\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxGetState = __library + .get(b"cuDevicePrimaryCtxGetState\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxReset_v2 = __library + .get(b"cuDevicePrimaryCtxReset_v2\0") + .map(|sym| *sym); + let cuDeviceGetExecAffinitySupport = __library + .get(b"cuDeviceGetExecAffinitySupport\0") + .map(|sym| *sym); + let cuCtxCreate_v2 = __library.get(b"cuCtxCreate_v2\0").map(|sym| *sym); + let cuCtxCreate_v3 = __library.get(b"cuCtxCreate_v3\0").map(|sym| *sym); + let cuCtxDestroy_v2 = __library.get(b"cuCtxDestroy_v2\0").map(|sym| *sym); + let cuCtxPushCurrent_v2 = __library.get(b"cuCtxPushCurrent_v2\0").map(|sym| *sym); + let cuCtxPopCurrent_v2 = __library.get(b"cuCtxPopCurrent_v2\0").map(|sym| *sym); + let cuCtxSetCurrent = __library.get(b"cuCtxSetCurrent\0").map(|sym| *sym); + let cuCtxGetCurrent = __library.get(b"cuCtxGetCurrent\0").map(|sym| *sym); + let cuCtxGetDevice = __library.get(b"cuCtxGetDevice\0").map(|sym| *sym); + let cuCtxGetFlags = __library.get(b"cuCtxGetFlags\0").map(|sym| *sym); + let cuCtxSynchronize = __library.get(b"cuCtxSynchronize\0").map(|sym| *sym); + let cuCtxSetLimit = __library.get(b"cuCtxSetLimit\0").map(|sym| *sym); + let cuCtxGetLimit = __library.get(b"cuCtxGetLimit\0").map(|sym| *sym); + let cuCtxGetCacheConfig = __library.get(b"cuCtxGetCacheConfig\0").map(|sym| *sym); + let cuCtxSetCacheConfig = __library.get(b"cuCtxSetCacheConfig\0").map(|sym| *sym); + let cuCtxGetSharedMemConfig = __library.get(b"cuCtxGetSharedMemConfig\0").map(|sym| *sym); + let cuCtxSetSharedMemConfig = __library.get(b"cuCtxSetSharedMemConfig\0").map(|sym| *sym); + let cuCtxGetApiVersion = __library.get(b"cuCtxGetApiVersion\0").map(|sym| *sym); + let cuCtxGetStreamPriorityRange = __library + .get(b"cuCtxGetStreamPriorityRange\0") + .map(|sym| *sym); + let cuCtxResetPersistingL2Cache = __library + .get(b"cuCtxResetPersistingL2Cache\0") + .map(|sym| *sym); + let cuCtxGetExecAffinity = __library.get(b"cuCtxGetExecAffinity\0").map(|sym| *sym); + let cuCtxAttach = __library.get(b"cuCtxAttach\0").map(|sym| *sym); + let cuCtxDetach = __library.get(b"cuCtxDetach\0").map(|sym| *sym); + let cuModuleLoad = __library.get(b"cuModuleLoad\0").map(|sym| *sym); + let cuModuleLoadData = __library.get(b"cuModuleLoadData\0").map(|sym| *sym); + let cuModuleLoadDataEx = __library.get(b"cuModuleLoadDataEx\0").map(|sym| *sym); + let cuModuleLoadFatBinary = __library.get(b"cuModuleLoadFatBinary\0").map(|sym| *sym); + let cuModuleUnload = __library.get(b"cuModuleUnload\0").map(|sym| *sym); + let cuModuleGetFunction = __library.get(b"cuModuleGetFunction\0").map(|sym| *sym); + let cuModuleGetGlobal_v2 = __library.get(b"cuModuleGetGlobal_v2\0").map(|sym| *sym); + let cuModuleGetTexRef = __library.get(b"cuModuleGetTexRef\0").map(|sym| *sym); + let cuModuleGetSurfRef = __library.get(b"cuModuleGetSurfRef\0").map(|sym| *sym); + let cuLinkCreate_v2 = __library.get(b"cuLinkCreate_v2\0").map(|sym| *sym); + let cuLinkAddData_v2 = __library.get(b"cuLinkAddData_v2\0").map(|sym| *sym); + let cuLinkAddFile_v2 = __library.get(b"cuLinkAddFile_v2\0").map(|sym| *sym); + let cuLinkComplete = __library.get(b"cuLinkComplete\0").map(|sym| *sym); + let cuLinkDestroy = __library.get(b"cuLinkDestroy\0").map(|sym| *sym); + let cuMemGetInfo_v2 = __library.get(b"cuMemGetInfo_v2\0").map(|sym| *sym); + let cuMemAlloc_v2 = __library.get(b"cuMemAlloc_v2\0").map(|sym| *sym); + let cuMemAllocPitch_v2 = __library.get(b"cuMemAllocPitch_v2\0").map(|sym| *sym); + let cuMemFree_v2 = __library.get(b"cuMemFree_v2\0").map(|sym| *sym); + let cuMemGetAddressRange_v2 = __library.get(b"cuMemGetAddressRange_v2\0").map(|sym| *sym); + let cuMemAllocHost_v2 = __library.get(b"cuMemAllocHost_v2\0").map(|sym| *sym); + let cuMemFreeHost = __library.get(b"cuMemFreeHost\0").map(|sym| *sym); + let cuMemHostAlloc = __library.get(b"cuMemHostAlloc\0").map(|sym| *sym); + let cuMemHostGetDevicePointer_v2 = __library + .get(b"cuMemHostGetDevicePointer_v2\0") + .map(|sym| *sym); + let cuMemHostGetFlags = __library.get(b"cuMemHostGetFlags\0").map(|sym| *sym); + let cuMemAllocManaged = __library.get(b"cuMemAllocManaged\0").map(|sym| *sym); + let cuDeviceGetByPCIBusId = __library.get(b"cuDeviceGetByPCIBusId\0").map(|sym| *sym); + let cuDeviceGetPCIBusId = __library.get(b"cuDeviceGetPCIBusId\0").map(|sym| *sym); + let cuIpcGetEventHandle = __library.get(b"cuIpcGetEventHandle\0").map(|sym| *sym); + let cuIpcOpenEventHandle = __library.get(b"cuIpcOpenEventHandle\0").map(|sym| *sym); + let cuIpcGetMemHandle = __library.get(b"cuIpcGetMemHandle\0").map(|sym| *sym); + let cuIpcOpenMemHandle_v2 = __library.get(b"cuIpcOpenMemHandle_v2\0").map(|sym| *sym); + let cuIpcCloseMemHandle = __library.get(b"cuIpcCloseMemHandle\0").map(|sym| *sym); + let cuMemHostRegister_v2 = __library.get(b"cuMemHostRegister_v2\0").map(|sym| *sym); + let cuMemHostUnregister = __library.get(b"cuMemHostUnregister\0").map(|sym| *sym); + let cuMemcpy = __library.get(b"cuMemcpy\0").map(|sym| *sym); + let cuMemcpyPeer = __library.get(b"cuMemcpyPeer\0").map(|sym| *sym); + let cuMemcpyHtoD_v2 = __library.get(b"cuMemcpyHtoD_v2\0").map(|sym| *sym); + let cuMemcpyDtoH_v2 = __library.get(b"cuMemcpyDtoH_v2\0").map(|sym| *sym); + let cuMemcpyDtoD_v2 = __library.get(b"cuMemcpyDtoD_v2\0").map(|sym| *sym); + let cuMemcpyDtoA_v2 = __library.get(b"cuMemcpyDtoA_v2\0").map(|sym| *sym); + let cuMemcpyAtoD_v2 = __library.get(b"cuMemcpyAtoD_v2\0").map(|sym| *sym); + let cuMemcpyHtoA_v2 = __library.get(b"cuMemcpyHtoA_v2\0").map(|sym| *sym); + let cuMemcpyAtoH_v2 = __library.get(b"cuMemcpyAtoH_v2\0").map(|sym| *sym); + let cuMemcpyAtoA_v2 = __library.get(b"cuMemcpyAtoA_v2\0").map(|sym| *sym); + let cuMemcpy2D_v2 = __library.get(b"cuMemcpy2D_v2\0").map(|sym| *sym); + let cuMemcpy2DUnaligned_v2 = __library.get(b"cuMemcpy2DUnaligned_v2\0").map(|sym| *sym); + let cuMemcpy3D_v2 = __library.get(b"cuMemcpy3D_v2\0").map(|sym| *sym); + let cuMemcpy3DPeer = __library.get(b"cuMemcpy3DPeer\0").map(|sym| *sym); + let cuMemcpyAsync = __library.get(b"cuMemcpyAsync\0").map(|sym| *sym); + let cuMemcpyPeerAsync = __library.get(b"cuMemcpyPeerAsync\0").map(|sym| *sym); + let cuMemcpyHtoDAsync_v2 = __library.get(b"cuMemcpyHtoDAsync_v2\0").map(|sym| *sym); + let cuMemcpyDtoHAsync_v2 = __library.get(b"cuMemcpyDtoHAsync_v2\0").map(|sym| *sym); + let cuMemcpyDtoDAsync_v2 = __library.get(b"cuMemcpyDtoDAsync_v2\0").map(|sym| *sym); + let cuMemcpyHtoAAsync_v2 = __library.get(b"cuMemcpyHtoAAsync_v2\0").map(|sym| *sym); + let cuMemcpyAtoHAsync_v2 = __library.get(b"cuMemcpyAtoHAsync_v2\0").map(|sym| *sym); + let cuMemcpy2DAsync_v2 = __library.get(b"cuMemcpy2DAsync_v2\0").map(|sym| *sym); + let cuMemcpy3DAsync_v2 = __library.get(b"cuMemcpy3DAsync_v2\0").map(|sym| *sym); + let cuMemcpy3DPeerAsync = __library.get(b"cuMemcpy3DPeerAsync\0").map(|sym| *sym); + let cuMemsetD8_v2 = __library.get(b"cuMemsetD8_v2\0").map(|sym| *sym); + let cuMemsetD16_v2 = __library.get(b"cuMemsetD16_v2\0").map(|sym| *sym); + let cuMemsetD32_v2 = __library.get(b"cuMemsetD32_v2\0").map(|sym| *sym); + let cuMemsetD2D8_v2 = __library.get(b"cuMemsetD2D8_v2\0").map(|sym| *sym); + let cuMemsetD2D16_v2 = __library.get(b"cuMemsetD2D16_v2\0").map(|sym| *sym); + let cuMemsetD2D32_v2 = __library.get(b"cuMemsetD2D32_v2\0").map(|sym| *sym); + let cuMemsetD8Async = __library.get(b"cuMemsetD8Async\0").map(|sym| *sym); + let cuMemsetD16Async = __library.get(b"cuMemsetD16Async\0").map(|sym| *sym); + let cuMemsetD32Async = __library.get(b"cuMemsetD32Async\0").map(|sym| *sym); + let cuMemsetD2D8Async = __library.get(b"cuMemsetD2D8Async\0").map(|sym| *sym); + let cuMemsetD2D16Async = __library.get(b"cuMemsetD2D16Async\0").map(|sym| *sym); + let cuMemsetD2D32Async = __library.get(b"cuMemsetD2D32Async\0").map(|sym| *sym); + let cuArrayCreate_v2 = __library.get(b"cuArrayCreate_v2\0").map(|sym| *sym); + let cuArrayGetDescriptor_v2 = __library.get(b"cuArrayGetDescriptor_v2\0").map(|sym| *sym); + let cuArrayGetSparseProperties = __library + .get(b"cuArrayGetSparseProperties\0") + .map(|sym| *sym); + let cuMipmappedArrayGetSparseProperties = __library + .get(b"cuMipmappedArrayGetSparseProperties\0") + .map(|sym| *sym); + let cuArrayGetPlane = __library.get(b"cuArrayGetPlane\0").map(|sym| *sym); + let cuArrayDestroy = __library.get(b"cuArrayDestroy\0").map(|sym| *sym); + let cuArray3DCreate_v2 = __library.get(b"cuArray3DCreate_v2\0").map(|sym| *sym); + let cuArray3DGetDescriptor_v2 = __library + .get(b"cuArray3DGetDescriptor_v2\0") + .map(|sym| *sym); + let cuMipmappedArrayCreate = __library.get(b"cuMipmappedArrayCreate\0").map(|sym| *sym); + let cuMipmappedArrayGetLevel = __library.get(b"cuMipmappedArrayGetLevel\0").map(|sym| *sym); + let cuMipmappedArrayDestroy = __library.get(b"cuMipmappedArrayDestroy\0").map(|sym| *sym); + let cuMemAddressReserve = __library.get(b"cuMemAddressReserve\0").map(|sym| *sym); + let cuMemAddressFree = __library.get(b"cuMemAddressFree\0").map(|sym| *sym); + let cuMemCreate = __library.get(b"cuMemCreate\0").map(|sym| *sym); + let cuMemRelease = __library.get(b"cuMemRelease\0").map(|sym| *sym); + let cuMemMap = __library.get(b"cuMemMap\0").map(|sym| *sym); + let cuMemMapArrayAsync = __library.get(b"cuMemMapArrayAsync\0").map(|sym| *sym); + let cuMemUnmap = __library.get(b"cuMemUnmap\0").map(|sym| *sym); + let cuMemSetAccess = __library.get(b"cuMemSetAccess\0").map(|sym| *sym); + let cuMemGetAccess = __library.get(b"cuMemGetAccess\0").map(|sym| *sym); + let cuMemExportToShareableHandle = __library + .get(b"cuMemExportToShareableHandle\0") + .map(|sym| *sym); + let cuMemImportFromShareableHandle = __library + .get(b"cuMemImportFromShareableHandle\0") + .map(|sym| *sym); + let cuMemGetAllocationGranularity = __library + .get(b"cuMemGetAllocationGranularity\0") + .map(|sym| *sym); + let cuMemGetAllocationPropertiesFromHandle = __library + .get(b"cuMemGetAllocationPropertiesFromHandle\0") + .map(|sym| *sym); + let cuMemRetainAllocationHandle = __library + .get(b"cuMemRetainAllocationHandle\0") + .map(|sym| *sym); + let cuMemFreeAsync = __library.get(b"cuMemFreeAsync\0").map(|sym| *sym); + let cuMemAllocAsync = __library.get(b"cuMemAllocAsync\0").map(|sym| *sym); + let cuMemPoolTrimTo = __library.get(b"cuMemPoolTrimTo\0").map(|sym| *sym); + let cuMemPoolSetAttribute = __library.get(b"cuMemPoolSetAttribute\0").map(|sym| *sym); + let cuMemPoolGetAttribute = __library.get(b"cuMemPoolGetAttribute\0").map(|sym| *sym); + let cuMemPoolSetAccess = __library.get(b"cuMemPoolSetAccess\0").map(|sym| *sym); + let cuMemPoolGetAccess = __library.get(b"cuMemPoolGetAccess\0").map(|sym| *sym); + let cuMemPoolCreate = __library.get(b"cuMemPoolCreate\0").map(|sym| *sym); + let cuMemPoolDestroy = __library.get(b"cuMemPoolDestroy\0").map(|sym| *sym); + let cuMemAllocFromPoolAsync = __library.get(b"cuMemAllocFromPoolAsync\0").map(|sym| *sym); + let cuMemPoolExportToShareableHandle = __library + .get(b"cuMemPoolExportToShareableHandle\0") + .map(|sym| *sym); + let cuMemPoolImportFromShareableHandle = __library + .get(b"cuMemPoolImportFromShareableHandle\0") + .map(|sym| *sym); + let cuMemPoolExportPointer = __library.get(b"cuMemPoolExportPointer\0").map(|sym| *sym); + let cuMemPoolImportPointer = __library.get(b"cuMemPoolImportPointer\0").map(|sym| *sym); + let cuPointerGetAttribute = __library.get(b"cuPointerGetAttribute\0").map(|sym| *sym); + let cuMemPrefetchAsync = __library.get(b"cuMemPrefetchAsync\0").map(|sym| *sym); + let cuMemAdvise = __library.get(b"cuMemAdvise\0").map(|sym| *sym); + let cuMemRangeGetAttribute = __library.get(b"cuMemRangeGetAttribute\0").map(|sym| *sym); + let cuMemRangeGetAttributes = __library.get(b"cuMemRangeGetAttributes\0").map(|sym| *sym); + let cuPointerSetAttribute = __library.get(b"cuPointerSetAttribute\0").map(|sym| *sym); + let cuPointerGetAttributes = __library.get(b"cuPointerGetAttributes\0").map(|sym| *sym); + let cuStreamCreate = __library.get(b"cuStreamCreate\0").map(|sym| *sym); + let cuStreamCreateWithPriority = __library + .get(b"cuStreamCreateWithPriority\0") + .map(|sym| *sym); + let cuStreamGetPriority = __library.get(b"cuStreamGetPriority\0").map(|sym| *sym); + let cuStreamGetFlags = __library.get(b"cuStreamGetFlags\0").map(|sym| *sym); + let cuStreamGetCtx = __library.get(b"cuStreamGetCtx\0").map(|sym| *sym); + let cuStreamWaitEvent = __library.get(b"cuStreamWaitEvent\0").map(|sym| *sym); + let cuStreamAddCallback = __library.get(b"cuStreamAddCallback\0").map(|sym| *sym); + let cuStreamBeginCapture_v2 = __library.get(b"cuStreamBeginCapture_v2\0").map(|sym| *sym); + let cuThreadExchangeStreamCaptureMode = __library + .get(b"cuThreadExchangeStreamCaptureMode\0") + .map(|sym| *sym); + let cuStreamEndCapture = __library.get(b"cuStreamEndCapture\0").map(|sym| *sym); + let cuStreamIsCapturing = __library.get(b"cuStreamIsCapturing\0").map(|sym| *sym); + let cuStreamGetCaptureInfo = __library.get(b"cuStreamGetCaptureInfo\0").map(|sym| *sym); + let cuStreamGetCaptureInfo_v2 = __library + .get(b"cuStreamGetCaptureInfo_v2\0") + .map(|sym| *sym); + let cuStreamUpdateCaptureDependencies = __library + .get(b"cuStreamUpdateCaptureDependencies\0") + .map(|sym| *sym); + let cuStreamAttachMemAsync = __library.get(b"cuStreamAttachMemAsync\0").map(|sym| *sym); + let cuStreamQuery = __library.get(b"cuStreamQuery\0").map(|sym| *sym); + let cuStreamSynchronize = __library.get(b"cuStreamSynchronize\0").map(|sym| *sym); + let cuStreamDestroy_v2 = __library.get(b"cuStreamDestroy_v2\0").map(|sym| *sym); + let cuStreamCopyAttributes = __library.get(b"cuStreamCopyAttributes\0").map(|sym| *sym); + let cuStreamGetAttribute = __library.get(b"cuStreamGetAttribute\0").map(|sym| *sym); + let cuStreamSetAttribute = __library.get(b"cuStreamSetAttribute\0").map(|sym| *sym); + let cuEventCreate = __library.get(b"cuEventCreate\0").map(|sym| *sym); + let cuEventRecord = __library.get(b"cuEventRecord\0").map(|sym| *sym); + let cuEventRecordWithFlags = __library.get(b"cuEventRecordWithFlags\0").map(|sym| *sym); + let cuEventQuery = __library.get(b"cuEventQuery\0").map(|sym| *sym); + let cuEventSynchronize = __library.get(b"cuEventSynchronize\0").map(|sym| *sym); + let cuEventDestroy_v2 = __library.get(b"cuEventDestroy_v2\0").map(|sym| *sym); + let cuEventElapsedTime = __library.get(b"cuEventElapsedTime\0").map(|sym| *sym); + let cuImportExternalMemory = __library.get(b"cuImportExternalMemory\0").map(|sym| *sym); + let cuExternalMemoryGetMappedBuffer = __library + .get(b"cuExternalMemoryGetMappedBuffer\0") + .map(|sym| *sym); + let cuExternalMemoryGetMappedMipmappedArray = __library + .get(b"cuExternalMemoryGetMappedMipmappedArray\0") + .map(|sym| *sym); + let cuDestroyExternalMemory = __library.get(b"cuDestroyExternalMemory\0").map(|sym| *sym); + let cuImportExternalSemaphore = __library + .get(b"cuImportExternalSemaphore\0") + .map(|sym| *sym); + let cuSignalExternalSemaphoresAsync = __library + .get(b"cuSignalExternalSemaphoresAsync\0") + .map(|sym| *sym); + let cuWaitExternalSemaphoresAsync = __library + .get(b"cuWaitExternalSemaphoresAsync\0") + .map(|sym| *sym); + let cuDestroyExternalSemaphore = __library + .get(b"cuDestroyExternalSemaphore\0") + .map(|sym| *sym); + let cuStreamWaitValue32 = __library.get(b"cuStreamWaitValue32\0").map(|sym| *sym); + let cuStreamWaitValue64 = __library.get(b"cuStreamWaitValue64\0").map(|sym| *sym); + let cuStreamWriteValue32 = __library.get(b"cuStreamWriteValue32\0").map(|sym| *sym); + let cuStreamWriteValue64 = __library.get(b"cuStreamWriteValue64\0").map(|sym| *sym); + let cuStreamBatchMemOp = __library.get(b"cuStreamBatchMemOp\0").map(|sym| *sym); + let cuFuncGetAttribute = __library.get(b"cuFuncGetAttribute\0").map(|sym| *sym); + let cuFuncSetAttribute = __library.get(b"cuFuncSetAttribute\0").map(|sym| *sym); + let cuFuncSetCacheConfig = __library.get(b"cuFuncSetCacheConfig\0").map(|sym| *sym); + let cuFuncSetSharedMemConfig = __library.get(b"cuFuncSetSharedMemConfig\0").map(|sym| *sym); + let cuFuncGetModule = __library.get(b"cuFuncGetModule\0").map(|sym| *sym); + let cuLaunchKernel = __library.get(b"cuLaunchKernel\0").map(|sym| *sym); + let cuLaunchCooperativeKernel = __library + .get(b"cuLaunchCooperativeKernel\0") + .map(|sym| *sym); + let cuLaunchCooperativeKernelMultiDevice = __library + .get(b"cuLaunchCooperativeKernelMultiDevice\0") + .map(|sym| *sym); + let cuLaunchHostFunc = __library.get(b"cuLaunchHostFunc\0").map(|sym| *sym); + let cuFuncSetBlockShape = __library.get(b"cuFuncSetBlockShape\0").map(|sym| *sym); + let cuFuncSetSharedSize = __library.get(b"cuFuncSetSharedSize\0").map(|sym| *sym); + let cuParamSetSize = __library.get(b"cuParamSetSize\0").map(|sym| *sym); + let cuParamSeti = __library.get(b"cuParamSeti\0").map(|sym| *sym); + let cuParamSetf = __library.get(b"cuParamSetf\0").map(|sym| *sym); + let cuParamSetv = __library.get(b"cuParamSetv\0").map(|sym| *sym); + let cuLaunch = __library.get(b"cuLaunch\0").map(|sym| *sym); + let cuLaunchGrid = __library.get(b"cuLaunchGrid\0").map(|sym| *sym); + let cuLaunchGridAsync = __library.get(b"cuLaunchGridAsync\0").map(|sym| *sym); + let cuParamSetTexRef = __library.get(b"cuParamSetTexRef\0").map(|sym| *sym); + let cuGraphCreate = __library.get(b"cuGraphCreate\0").map(|sym| *sym); + let cuGraphAddKernelNode = __library.get(b"cuGraphAddKernelNode\0").map(|sym| *sym); + let cuGraphKernelNodeGetParams = __library + .get(b"cuGraphKernelNodeGetParams\0") + .map(|sym| *sym); + let cuGraphKernelNodeSetParams = __library + .get(b"cuGraphKernelNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemcpyNode = __library.get(b"cuGraphAddMemcpyNode\0").map(|sym| *sym); + let cuGraphMemcpyNodeGetParams = __library + .get(b"cuGraphMemcpyNodeGetParams\0") + .map(|sym| *sym); + let cuGraphMemcpyNodeSetParams = __library + .get(b"cuGraphMemcpyNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemsetNode = __library.get(b"cuGraphAddMemsetNode\0").map(|sym| *sym); + let cuGraphMemsetNodeGetParams = __library + .get(b"cuGraphMemsetNodeGetParams\0") + .map(|sym| *sym); + let cuGraphMemsetNodeSetParams = __library + .get(b"cuGraphMemsetNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddHostNode = __library.get(b"cuGraphAddHostNode\0").map(|sym| *sym); + let cuGraphHostNodeGetParams = __library.get(b"cuGraphHostNodeGetParams\0").map(|sym| *sym); + let cuGraphHostNodeSetParams = __library.get(b"cuGraphHostNodeSetParams\0").map(|sym| *sym); + let cuGraphAddChildGraphNode = __library.get(b"cuGraphAddChildGraphNode\0").map(|sym| *sym); + let cuGraphChildGraphNodeGetGraph = __library + .get(b"cuGraphChildGraphNodeGetGraph\0") + .map(|sym| *sym); + let cuGraphAddEmptyNode = __library.get(b"cuGraphAddEmptyNode\0").map(|sym| *sym); + let cuGraphAddEventRecordNode = __library + .get(b"cuGraphAddEventRecordNode\0") + .map(|sym| *sym); + let cuGraphEventRecordNodeGetEvent = __library + .get(b"cuGraphEventRecordNodeGetEvent\0") + .map(|sym| *sym); + let cuGraphEventRecordNodeSetEvent = __library + .get(b"cuGraphEventRecordNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphAddEventWaitNode = __library.get(b"cuGraphAddEventWaitNode\0").map(|sym| *sym); + let cuGraphEventWaitNodeGetEvent = __library + .get(b"cuGraphEventWaitNodeGetEvent\0") + .map(|sym| *sym); + let cuGraphEventWaitNodeSetEvent = __library + .get(b"cuGraphEventWaitNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphAddExternalSemaphoresSignalNode = __library + .get(b"cuGraphAddExternalSemaphoresSignalNode\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresSignalNodeGetParams = __library + .get(b"cuGraphExternalSemaphoresSignalNodeGetParams\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresSignalNodeSetParams = __library + .get(b"cuGraphExternalSemaphoresSignalNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddExternalSemaphoresWaitNode = __library + .get(b"cuGraphAddExternalSemaphoresWaitNode\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresWaitNodeGetParams = __library + .get(b"cuGraphExternalSemaphoresWaitNodeGetParams\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresWaitNodeSetParams = __library + .get(b"cuGraphExternalSemaphoresWaitNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemAllocNode = __library.get(b"cuGraphAddMemAllocNode\0").map(|sym| *sym); + let cuGraphMemAllocNodeGetParams = __library + .get(b"cuGraphMemAllocNodeGetParams\0") + .map(|sym| *sym); + let cuGraphAddMemFreeNode = __library.get(b"cuGraphAddMemFreeNode\0").map(|sym| *sym); + let cuGraphMemFreeNodeGetParams = __library + .get(b"cuGraphMemFreeNodeGetParams\0") + .map(|sym| *sym); + let cuDeviceGraphMemTrim = __library.get(b"cuDeviceGraphMemTrim\0").map(|sym| *sym); + let cuDeviceGetGraphMemAttribute = __library + .get(b"cuDeviceGetGraphMemAttribute\0") + .map(|sym| *sym); + let cuDeviceSetGraphMemAttribute = __library + .get(b"cuDeviceSetGraphMemAttribute\0") + .map(|sym| *sym); + let cuGraphClone = __library.get(b"cuGraphClone\0").map(|sym| *sym); + let cuGraphNodeFindInClone = __library.get(b"cuGraphNodeFindInClone\0").map(|sym| *sym); + let cuGraphNodeGetType = __library.get(b"cuGraphNodeGetType\0").map(|sym| *sym); + let cuGraphGetNodes = __library.get(b"cuGraphGetNodes\0").map(|sym| *sym); + let cuGraphGetRootNodes = __library.get(b"cuGraphGetRootNodes\0").map(|sym| *sym); + let cuGraphGetEdges = __library.get(b"cuGraphGetEdges\0").map(|sym| *sym); + let cuGraphNodeGetDependencies = __library + .get(b"cuGraphNodeGetDependencies\0") + .map(|sym| *sym); + let cuGraphNodeGetDependentNodes = __library + .get(b"cuGraphNodeGetDependentNodes\0") + .map(|sym| *sym); + let cuGraphAddDependencies = __library.get(b"cuGraphAddDependencies\0").map(|sym| *sym); + let cuGraphRemoveDependencies = __library + .get(b"cuGraphRemoveDependencies\0") + .map(|sym| *sym); + let cuGraphDestroyNode = __library.get(b"cuGraphDestroyNode\0").map(|sym| *sym); + let cuGraphInstantiate_v2 = __library.get(b"cuGraphInstantiate_v2\0").map(|sym| *sym); + let cuGraphInstantiateWithFlags = __library + .get(b"cuGraphInstantiateWithFlags\0") + .map(|sym| *sym); + let cuGraphExecKernelNodeSetParams = __library + .get(b"cuGraphExecKernelNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecMemcpyNodeSetParams = __library + .get(b"cuGraphExecMemcpyNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecMemsetNodeSetParams = __library + .get(b"cuGraphExecMemsetNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecHostNodeSetParams = __library + .get(b"cuGraphExecHostNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecChildGraphNodeSetParams = __library + .get(b"cuGraphExecChildGraphNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecEventRecordNodeSetEvent = __library + .get(b"cuGraphExecEventRecordNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphExecEventWaitNodeSetEvent = __library + .get(b"cuGraphExecEventWaitNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphExecExternalSemaphoresSignalNodeSetParams = __library + .get(b"cuGraphExecExternalSemaphoresSignalNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecExternalSemaphoresWaitNodeSetParams = __library + .get(b"cuGraphExecExternalSemaphoresWaitNodeSetParams\0") + .map(|sym| *sym); + let cuGraphUpload = __library.get(b"cuGraphUpload\0").map(|sym| *sym); + let cuGraphLaunch = __library.get(b"cuGraphLaunch\0").map(|sym| *sym); + let cuGraphExecDestroy = __library.get(b"cuGraphExecDestroy\0").map(|sym| *sym); + let cuGraphDestroy = __library.get(b"cuGraphDestroy\0").map(|sym| *sym); + let cuGraphExecUpdate = __library.get(b"cuGraphExecUpdate\0").map(|sym| *sym); + let cuGraphKernelNodeCopyAttributes = __library + .get(b"cuGraphKernelNodeCopyAttributes\0") + .map(|sym| *sym); + let cuGraphKernelNodeGetAttribute = __library + .get(b"cuGraphKernelNodeGetAttribute\0") + .map(|sym| *sym); + let cuGraphKernelNodeSetAttribute = __library + .get(b"cuGraphKernelNodeSetAttribute\0") + .map(|sym| *sym); + let cuGraphDebugDotPrint = __library.get(b"cuGraphDebugDotPrint\0").map(|sym| *sym); + let cuUserObjectCreate = __library.get(b"cuUserObjectCreate\0").map(|sym| *sym); + let cuUserObjectRetain = __library.get(b"cuUserObjectRetain\0").map(|sym| *sym); + let cuUserObjectRelease = __library.get(b"cuUserObjectRelease\0").map(|sym| *sym); + let cuGraphRetainUserObject = __library.get(b"cuGraphRetainUserObject\0").map(|sym| *sym); + let cuGraphReleaseUserObject = __library.get(b"cuGraphReleaseUserObject\0").map(|sym| *sym); + let cuOccupancyMaxActiveBlocksPerMultiprocessor = __library + .get(b"cuOccupancyMaxActiveBlocksPerMultiprocessor\0") + .map(|sym| *sym); + let cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = __library + .get(b"cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\0") + .map(|sym| *sym); + let cuOccupancyMaxPotentialBlockSize = __library + .get(b"cuOccupancyMaxPotentialBlockSize\0") + .map(|sym| *sym); + let cuOccupancyMaxPotentialBlockSizeWithFlags = __library + .get(b"cuOccupancyMaxPotentialBlockSizeWithFlags\0") + .map(|sym| *sym); + let cuOccupancyAvailableDynamicSMemPerBlock = __library + .get(b"cuOccupancyAvailableDynamicSMemPerBlock\0") + .map(|sym| *sym); + let cuTexRefSetArray = __library.get(b"cuTexRefSetArray\0").map(|sym| *sym); + let cuTexRefSetMipmappedArray = __library + .get(b"cuTexRefSetMipmappedArray\0") + .map(|sym| *sym); + let cuTexRefSetAddress_v2 = __library.get(b"cuTexRefSetAddress_v2\0").map(|sym| *sym); + let cuTexRefSetAddress2D_v3 = __library.get(b"cuTexRefSetAddress2D_v3\0").map(|sym| *sym); + let cuTexRefSetFormat = __library.get(b"cuTexRefSetFormat\0").map(|sym| *sym); + let cuTexRefSetAddressMode = __library.get(b"cuTexRefSetAddressMode\0").map(|sym| *sym); + let cuTexRefSetFilterMode = __library.get(b"cuTexRefSetFilterMode\0").map(|sym| *sym); + let cuTexRefSetMipmapFilterMode = __library + .get(b"cuTexRefSetMipmapFilterMode\0") + .map(|sym| *sym); + let cuTexRefSetMipmapLevelBias = __library + .get(b"cuTexRefSetMipmapLevelBias\0") + .map(|sym| *sym); + let cuTexRefSetMipmapLevelClamp = __library + .get(b"cuTexRefSetMipmapLevelClamp\0") + .map(|sym| *sym); + let cuTexRefSetMaxAnisotropy = __library.get(b"cuTexRefSetMaxAnisotropy\0").map(|sym| *sym); + let cuTexRefSetBorderColor = __library.get(b"cuTexRefSetBorderColor\0").map(|sym| *sym); + let cuTexRefSetFlags = __library.get(b"cuTexRefSetFlags\0").map(|sym| *sym); + let cuTexRefGetAddress_v2 = __library.get(b"cuTexRefGetAddress_v2\0").map(|sym| *sym); + let cuTexRefGetArray = __library.get(b"cuTexRefGetArray\0").map(|sym| *sym); + let cuTexRefGetMipmappedArray = __library + .get(b"cuTexRefGetMipmappedArray\0") + .map(|sym| *sym); + let cuTexRefGetAddressMode = __library.get(b"cuTexRefGetAddressMode\0").map(|sym| *sym); + let cuTexRefGetFilterMode = __library.get(b"cuTexRefGetFilterMode\0").map(|sym| *sym); + let cuTexRefGetFormat = __library.get(b"cuTexRefGetFormat\0").map(|sym| *sym); + let cuTexRefGetMipmapFilterMode = __library + .get(b"cuTexRefGetMipmapFilterMode\0") + .map(|sym| *sym); + let cuTexRefGetMipmapLevelBias = __library + .get(b"cuTexRefGetMipmapLevelBias\0") + .map(|sym| *sym); + let cuTexRefGetMipmapLevelClamp = __library + .get(b"cuTexRefGetMipmapLevelClamp\0") + .map(|sym| *sym); + let cuTexRefGetMaxAnisotropy = __library.get(b"cuTexRefGetMaxAnisotropy\0").map(|sym| *sym); + let cuTexRefGetBorderColor = __library.get(b"cuTexRefGetBorderColor\0").map(|sym| *sym); + let cuTexRefGetFlags = __library.get(b"cuTexRefGetFlags\0").map(|sym| *sym); + let cuTexRefCreate = __library.get(b"cuTexRefCreate\0").map(|sym| *sym); + let cuTexRefDestroy = __library.get(b"cuTexRefDestroy\0").map(|sym| *sym); + let cuSurfRefSetArray = __library.get(b"cuSurfRefSetArray\0").map(|sym| *sym); + let cuSurfRefGetArray = __library.get(b"cuSurfRefGetArray\0").map(|sym| *sym); + let cuTexObjectCreate = __library.get(b"cuTexObjectCreate\0").map(|sym| *sym); + let cuTexObjectDestroy = __library.get(b"cuTexObjectDestroy\0").map(|sym| *sym); + let cuTexObjectGetResourceDesc = __library + .get(b"cuTexObjectGetResourceDesc\0") + .map(|sym| *sym); + let cuTexObjectGetTextureDesc = __library + .get(b"cuTexObjectGetTextureDesc\0") + .map(|sym| *sym); + let cuTexObjectGetResourceViewDesc = __library + .get(b"cuTexObjectGetResourceViewDesc\0") + .map(|sym| *sym); + let cuSurfObjectCreate = __library.get(b"cuSurfObjectCreate\0").map(|sym| *sym); + let cuSurfObjectDestroy = __library.get(b"cuSurfObjectDestroy\0").map(|sym| *sym); + let cuSurfObjectGetResourceDesc = __library + .get(b"cuSurfObjectGetResourceDesc\0") + .map(|sym| *sym); + let cuDeviceCanAccessPeer = __library.get(b"cuDeviceCanAccessPeer\0").map(|sym| *sym); + let cuCtxEnablePeerAccess = __library.get(b"cuCtxEnablePeerAccess\0").map(|sym| *sym); + let cuCtxDisablePeerAccess = __library.get(b"cuCtxDisablePeerAccess\0").map(|sym| *sym); + let cuDeviceGetP2PAttribute = __library.get(b"cuDeviceGetP2PAttribute\0").map(|sym| *sym); + let cuGraphicsUnregisterResource = __library + .get(b"cuGraphicsUnregisterResource\0") + .map(|sym| *sym); + let cuGraphicsSubResourceGetMappedArray = __library + .get(b"cuGraphicsSubResourceGetMappedArray\0") + .map(|sym| *sym); + let cuGraphicsResourceGetMappedMipmappedArray = __library + .get(b"cuGraphicsResourceGetMappedMipmappedArray\0") + .map(|sym| *sym); + let cuGraphicsResourceGetMappedPointer_v2 = __library + .get(b"cuGraphicsResourceGetMappedPointer_v2\0") + .map(|sym| *sym); + let cuGraphicsResourceSetMapFlags_v2 = __library + .get(b"cuGraphicsResourceSetMapFlags_v2\0") + .map(|sym| *sym); + let cuGraphicsMapResources = __library.get(b"cuGraphicsMapResources\0").map(|sym| *sym); + let cuGraphicsUnmapResources = __library.get(b"cuGraphicsUnmapResources\0").map(|sym| *sym); + let cuGetProcAddress = __library.get(b"cuGetProcAddress\0").map(|sym| *sym); + let cuGetExportTable = __library.get(b"cuGetExportTable\0").map(|sym| *sym); + let cuProfilerInitialize = __library.get(b"cuProfilerInitialize\0").map(|sym| *sym); + let cuProfilerStart = __library.get(b"cuProfilerStart\0").map(|sym| *sym); + let cuProfilerStop = __library.get(b"cuProfilerStop\0").map(|sym| *sym); + Ok(Lib { + __library, + cuGetErrorString, + cuGetErrorName, + cuInit, + cuDriverGetVersion, + cuDeviceGet, + cuDeviceGetCount, + cuDeviceGetName, + cuDeviceGetUuid, + cuDeviceGetUuid_v2, + cuDeviceGetLuid, + cuDeviceTotalMem_v2, + cuDeviceGetTexture1DLinearMaxWidth, + cuDeviceGetAttribute, + cuDeviceGetNvSciSyncAttributes, + cuDeviceSetMemPool, + cuDeviceGetMemPool, + cuDeviceGetDefaultMemPool, + cuFlushGPUDirectRDMAWrites, + cuDeviceGetProperties, + cuDeviceComputeCapability, + cuDevicePrimaryCtxRetain, + cuDevicePrimaryCtxRelease_v2, + cuDevicePrimaryCtxSetFlags_v2, + cuDevicePrimaryCtxGetState, + cuDevicePrimaryCtxReset_v2, + cuDeviceGetExecAffinitySupport, + cuCtxCreate_v2, + cuCtxCreate_v3, + cuCtxDestroy_v2, + cuCtxPushCurrent_v2, + cuCtxPopCurrent_v2, + cuCtxSetCurrent, + cuCtxGetCurrent, + cuCtxGetDevice, + cuCtxGetFlags, + cuCtxSynchronize, + cuCtxSetLimit, + cuCtxGetLimit, + cuCtxGetCacheConfig, + cuCtxSetCacheConfig, + cuCtxGetSharedMemConfig, + cuCtxSetSharedMemConfig, + cuCtxGetApiVersion, + cuCtxGetStreamPriorityRange, + cuCtxResetPersistingL2Cache, + cuCtxGetExecAffinity, + cuCtxAttach, + cuCtxDetach, + cuModuleLoad, + cuModuleLoadData, + cuModuleLoadDataEx, + cuModuleLoadFatBinary, + cuModuleUnload, + cuModuleGetFunction, + cuModuleGetGlobal_v2, + cuModuleGetTexRef, + cuModuleGetSurfRef, + cuLinkCreate_v2, + cuLinkAddData_v2, + cuLinkAddFile_v2, + cuLinkComplete, + cuLinkDestroy, + cuMemGetInfo_v2, + cuMemAlloc_v2, + cuMemAllocPitch_v2, + cuMemFree_v2, + cuMemGetAddressRange_v2, + cuMemAllocHost_v2, + cuMemFreeHost, + cuMemHostAlloc, + cuMemHostGetDevicePointer_v2, + cuMemHostGetFlags, + cuMemAllocManaged, + cuDeviceGetByPCIBusId, + cuDeviceGetPCIBusId, + cuIpcGetEventHandle, + cuIpcOpenEventHandle, + cuIpcGetMemHandle, + cuIpcOpenMemHandle_v2, + cuIpcCloseMemHandle, + cuMemHostRegister_v2, + cuMemHostUnregister, + cuMemcpy, + cuMemcpyPeer, + cuMemcpyHtoD_v2, + cuMemcpyDtoH_v2, + cuMemcpyDtoD_v2, + cuMemcpyDtoA_v2, + cuMemcpyAtoD_v2, + cuMemcpyHtoA_v2, + cuMemcpyAtoH_v2, + cuMemcpyAtoA_v2, + cuMemcpy2D_v2, + cuMemcpy2DUnaligned_v2, + cuMemcpy3D_v2, + cuMemcpy3DPeer, + cuMemcpyAsync, + cuMemcpyPeerAsync, + cuMemcpyHtoDAsync_v2, + cuMemcpyDtoHAsync_v2, + cuMemcpyDtoDAsync_v2, + cuMemcpyHtoAAsync_v2, + cuMemcpyAtoHAsync_v2, + cuMemcpy2DAsync_v2, + cuMemcpy3DAsync_v2, + cuMemcpy3DPeerAsync, + cuMemsetD8_v2, + cuMemsetD16_v2, + cuMemsetD32_v2, + cuMemsetD2D8_v2, + cuMemsetD2D16_v2, + cuMemsetD2D32_v2, + cuMemsetD8Async, + cuMemsetD16Async, + cuMemsetD32Async, + cuMemsetD2D8Async, + cuMemsetD2D16Async, + cuMemsetD2D32Async, + cuArrayCreate_v2, + cuArrayGetDescriptor_v2, + cuArrayGetSparseProperties, + cuMipmappedArrayGetSparseProperties, + cuArrayGetPlane, + cuArrayDestroy, + cuArray3DCreate_v2, + cuArray3DGetDescriptor_v2, + cuMipmappedArrayCreate, + cuMipmappedArrayGetLevel, + cuMipmappedArrayDestroy, + cuMemAddressReserve, + cuMemAddressFree, + cuMemCreate, + cuMemRelease, + cuMemMap, + cuMemMapArrayAsync, + cuMemUnmap, + cuMemSetAccess, + cuMemGetAccess, + cuMemExportToShareableHandle, + cuMemImportFromShareableHandle, + cuMemGetAllocationGranularity, + cuMemGetAllocationPropertiesFromHandle, + cuMemRetainAllocationHandle, + cuMemFreeAsync, + cuMemAllocAsync, + cuMemPoolTrimTo, + cuMemPoolSetAttribute, + cuMemPoolGetAttribute, + cuMemPoolSetAccess, + cuMemPoolGetAccess, + cuMemPoolCreate, + cuMemPoolDestroy, + cuMemAllocFromPoolAsync, + cuMemPoolExportToShareableHandle, + cuMemPoolImportFromShareableHandle, + cuMemPoolExportPointer, + cuMemPoolImportPointer, + cuPointerGetAttribute, + cuMemPrefetchAsync, + cuMemAdvise, + cuMemRangeGetAttribute, + cuMemRangeGetAttributes, + cuPointerSetAttribute, + cuPointerGetAttributes, + cuStreamCreate, + cuStreamCreateWithPriority, + cuStreamGetPriority, + cuStreamGetFlags, + cuStreamGetCtx, + cuStreamWaitEvent, + cuStreamAddCallback, + cuStreamBeginCapture_v2, + cuThreadExchangeStreamCaptureMode, + cuStreamEndCapture, + cuStreamIsCapturing, + cuStreamGetCaptureInfo, + cuStreamGetCaptureInfo_v2, + cuStreamUpdateCaptureDependencies, + cuStreamAttachMemAsync, + cuStreamQuery, + cuStreamSynchronize, + cuStreamDestroy_v2, + cuStreamCopyAttributes, + cuStreamGetAttribute, + cuStreamSetAttribute, + cuEventCreate, + cuEventRecord, + cuEventRecordWithFlags, + cuEventQuery, + cuEventSynchronize, + cuEventDestroy_v2, + cuEventElapsedTime, + cuImportExternalMemory, + cuExternalMemoryGetMappedBuffer, + cuExternalMemoryGetMappedMipmappedArray, + cuDestroyExternalMemory, + cuImportExternalSemaphore, + cuSignalExternalSemaphoresAsync, + cuWaitExternalSemaphoresAsync, + cuDestroyExternalSemaphore, + cuStreamWaitValue32, + cuStreamWaitValue64, + cuStreamWriteValue32, + cuStreamWriteValue64, + cuStreamBatchMemOp, + cuFuncGetAttribute, + cuFuncSetAttribute, + cuFuncSetCacheConfig, + cuFuncSetSharedMemConfig, + cuFuncGetModule, + cuLaunchKernel, + cuLaunchCooperativeKernel, + cuLaunchCooperativeKernelMultiDevice, + cuLaunchHostFunc, + cuFuncSetBlockShape, + cuFuncSetSharedSize, + cuParamSetSize, + cuParamSeti, + cuParamSetf, + cuParamSetv, + cuLaunch, + cuLaunchGrid, + cuLaunchGridAsync, + cuParamSetTexRef, + cuGraphCreate, + cuGraphAddKernelNode, + cuGraphKernelNodeGetParams, + cuGraphKernelNodeSetParams, + cuGraphAddMemcpyNode, + cuGraphMemcpyNodeGetParams, + cuGraphMemcpyNodeSetParams, + cuGraphAddMemsetNode, + cuGraphMemsetNodeGetParams, + cuGraphMemsetNodeSetParams, + cuGraphAddHostNode, + cuGraphHostNodeGetParams, + cuGraphHostNodeSetParams, + cuGraphAddChildGraphNode, + cuGraphChildGraphNodeGetGraph, + cuGraphAddEmptyNode, + cuGraphAddEventRecordNode, + cuGraphEventRecordNodeGetEvent, + cuGraphEventRecordNodeSetEvent, + cuGraphAddEventWaitNode, + cuGraphEventWaitNodeGetEvent, + cuGraphEventWaitNodeSetEvent, + cuGraphAddExternalSemaphoresSignalNode, + cuGraphExternalSemaphoresSignalNodeGetParams, + cuGraphExternalSemaphoresSignalNodeSetParams, + cuGraphAddExternalSemaphoresWaitNode, + cuGraphExternalSemaphoresWaitNodeGetParams, + cuGraphExternalSemaphoresWaitNodeSetParams, + cuGraphAddMemAllocNode, + cuGraphMemAllocNodeGetParams, + cuGraphAddMemFreeNode, + cuGraphMemFreeNodeGetParams, + cuDeviceGraphMemTrim, + cuDeviceGetGraphMemAttribute, + cuDeviceSetGraphMemAttribute, + cuGraphClone, + cuGraphNodeFindInClone, + cuGraphNodeGetType, + cuGraphGetNodes, + cuGraphGetRootNodes, + cuGraphGetEdges, + cuGraphNodeGetDependencies, + cuGraphNodeGetDependentNodes, + cuGraphAddDependencies, + cuGraphRemoveDependencies, + cuGraphDestroyNode, + cuGraphInstantiate_v2, + cuGraphInstantiateWithFlags, + cuGraphExecKernelNodeSetParams, + cuGraphExecMemcpyNodeSetParams, + cuGraphExecMemsetNodeSetParams, + cuGraphExecHostNodeSetParams, + cuGraphExecChildGraphNodeSetParams, + cuGraphExecEventRecordNodeSetEvent, + cuGraphExecEventWaitNodeSetEvent, + cuGraphExecExternalSemaphoresSignalNodeSetParams, + cuGraphExecExternalSemaphoresWaitNodeSetParams, + cuGraphUpload, + cuGraphLaunch, + cuGraphExecDestroy, + cuGraphDestroy, + cuGraphExecUpdate, + cuGraphKernelNodeCopyAttributes, + cuGraphKernelNodeGetAttribute, + cuGraphKernelNodeSetAttribute, + cuGraphDebugDotPrint, + cuUserObjectCreate, + cuUserObjectRetain, + cuUserObjectRelease, + cuGraphRetainUserObject, + cuGraphReleaseUserObject, + cuOccupancyMaxActiveBlocksPerMultiprocessor, + cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, + cuOccupancyMaxPotentialBlockSize, + cuOccupancyMaxPotentialBlockSizeWithFlags, + cuOccupancyAvailableDynamicSMemPerBlock, + cuTexRefSetArray, + cuTexRefSetMipmappedArray, + cuTexRefSetAddress_v2, + cuTexRefSetAddress2D_v3, + cuTexRefSetFormat, + cuTexRefSetAddressMode, + cuTexRefSetFilterMode, + cuTexRefSetMipmapFilterMode, + cuTexRefSetMipmapLevelBias, + cuTexRefSetMipmapLevelClamp, + cuTexRefSetMaxAnisotropy, + cuTexRefSetBorderColor, + cuTexRefSetFlags, + cuTexRefGetAddress_v2, + cuTexRefGetArray, + cuTexRefGetMipmappedArray, + cuTexRefGetAddressMode, + cuTexRefGetFilterMode, + cuTexRefGetFormat, + cuTexRefGetMipmapFilterMode, + cuTexRefGetMipmapLevelBias, + cuTexRefGetMipmapLevelClamp, + cuTexRefGetMaxAnisotropy, + cuTexRefGetBorderColor, + cuTexRefGetFlags, + cuTexRefCreate, + cuTexRefDestroy, + cuSurfRefSetArray, + cuSurfRefGetArray, + cuTexObjectCreate, + cuTexObjectDestroy, + cuTexObjectGetResourceDesc, + cuTexObjectGetTextureDesc, + cuTexObjectGetResourceViewDesc, + cuSurfObjectCreate, + cuSurfObjectDestroy, + cuSurfObjectGetResourceDesc, + cuDeviceCanAccessPeer, + cuCtxEnablePeerAccess, + cuCtxDisablePeerAccess, + cuDeviceGetP2PAttribute, + cuGraphicsUnregisterResource, + cuGraphicsSubResourceGetMappedArray, + cuGraphicsResourceGetMappedMipmappedArray, + cuGraphicsResourceGetMappedPointer_v2, + cuGraphicsResourceSetMapFlags_v2, + cuGraphicsMapResources, + cuGraphicsUnmapResources, + cuGetProcAddress, + cuGetExportTable, + cuProfilerInitialize, + cuProfilerStart, + cuProfilerStop, + }) + } + pub unsafe fn cuGetErrorString( + &self, + error: CUresult, + pStr: *mut *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuGetErrorString + .as_ref() + .expect("Expected function, got error."))(error, pStr) + } + pub unsafe fn cuGetErrorName( + &self, + error: CUresult, + pStr: *mut *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuGetErrorName + .as_ref() + .expect("Expected function, got error."))(error, pStr) + } + pub unsafe fn cuInit(&self, Flags: ::core::ffi::c_uint) -> CUresult { + (self.cuInit.as_ref().expect("Expected function, got error."))(Flags) + } + pub unsafe fn cuDriverGetVersion(&self, driverVersion: *mut ::core::ffi::c_int) -> CUresult { + (self + .cuDriverGetVersion + .as_ref() + .expect("Expected function, got error."))(driverVersion) + } + pub unsafe fn cuDeviceGet( + &self, + device: *mut CUdevice, + ordinal: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDeviceGet + .as_ref() + .expect("Expected function, got error."))(device, ordinal) + } + pub unsafe fn cuDeviceGetCount(&self, count: *mut ::core::ffi::c_int) -> CUresult { + (self + .cuDeviceGetCount + .as_ref() + .expect("Expected function, got error."))(count) + } + pub unsafe fn cuDeviceGetName( + &self, + name: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetName + .as_ref() + .expect("Expected function, got error."))(name, len, dev) + } + pub unsafe fn cuDeviceGetUuid(&self, uuid: *mut CUuuid, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetUuid + .as_ref() + .expect("Expected function, got error."))(uuid, dev) + } + pub unsafe fn cuDeviceGetUuid_v2(&self, uuid: *mut CUuuid, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetUuid_v2 + .as_ref() + .expect("Expected function, got error."))(uuid, dev) + } + pub unsafe fn cuDeviceGetLuid( + &self, + luid: *mut ::core::ffi::c_char, + deviceNodeMask: *mut ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetLuid + .as_ref() + .expect("Expected function, got error."))(luid, deviceNodeMask, dev) + } + pub unsafe fn cuDeviceTotalMem_v2(&self, bytes: *mut usize, dev: CUdevice) -> CUresult { + (self + .cuDeviceTotalMem_v2 + .as_ref() + .expect("Expected function, got error."))(bytes, dev) + } + pub unsafe fn cuDeviceGetTexture1DLinearMaxWidth( + &self, + maxWidthInElements: *mut usize, + format: CUarray_format, + numChannels: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetTexture1DLinearMaxWidth + .as_ref() + .expect("Expected function, got error."))( + maxWidthInElements, format, numChannels, dev + ) + } + pub unsafe fn cuDeviceGetAttribute( + &self, + pi: *mut ::core::ffi::c_int, + attrib: CUdevice_attribute, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetAttribute + .as_ref() + .expect("Expected function, got error."))(pi, attrib, dev) + } + pub unsafe fn cuDeviceGetNvSciSyncAttributes( + &self, + nvSciSyncAttrList: *mut ::core::ffi::c_void, + dev: CUdevice, + flags: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDeviceGetNvSciSyncAttributes + .as_ref() + .expect("Expected function, got error."))(nvSciSyncAttrList, dev, flags) + } + pub unsafe fn cuDeviceSetMemPool(&self, dev: CUdevice, pool: CUmemoryPool) -> CUresult { + (self + .cuDeviceSetMemPool + .as_ref() + .expect("Expected function, got error."))(dev, pool) + } + pub unsafe fn cuDeviceGetMemPool(&self, pool: *mut CUmemoryPool, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetMemPool + .as_ref() + .expect("Expected function, got error."))(pool, dev) + } + pub unsafe fn cuDeviceGetDefaultMemPool( + &self, + pool_out: *mut CUmemoryPool, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetDefaultMemPool + .as_ref() + .expect("Expected function, got error."))(pool_out, dev) + } + pub unsafe fn cuFlushGPUDirectRDMAWrites( + &self, + target: CUflushGPUDirectRDMAWritesTarget, + scope: CUflushGPUDirectRDMAWritesScope, + ) -> CUresult { + (self + .cuFlushGPUDirectRDMAWrites + .as_ref() + .expect("Expected function, got error."))(target, scope) + } + pub unsafe fn cuDeviceGetProperties(&self, prop: *mut CUdevprop, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetProperties + .as_ref() + .expect("Expected function, got error."))(prop, dev) + } + pub unsafe fn cuDeviceComputeCapability( + &self, + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceComputeCapability + .as_ref() + .expect("Expected function, got error."))(major, minor, dev) + } + pub unsafe fn cuDevicePrimaryCtxRetain(&self, pctx: *mut CUcontext, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxRetain + .as_ref() + .expect("Expected function, got error."))(pctx, dev) + } + pub unsafe fn cuDevicePrimaryCtxRelease_v2(&self, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxRelease_v2 + .as_ref() + .expect("Expected function, got error."))(dev) + } + pub unsafe fn cuDevicePrimaryCtxSetFlags_v2( + &self, + dev: CUdevice, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuDevicePrimaryCtxSetFlags_v2 + .as_ref() + .expect("Expected function, got error."))(dev, flags) + } + pub unsafe fn cuDevicePrimaryCtxGetState( + &self, + dev: CUdevice, + flags: *mut ::core::ffi::c_uint, + active: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDevicePrimaryCtxGetState + .as_ref() + .expect("Expected function, got error."))(dev, flags, active) + } + pub unsafe fn cuDevicePrimaryCtxReset_v2(&self, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxReset_v2 + .as_ref() + .expect("Expected function, got error."))(dev) + } + pub unsafe fn cuDeviceGetExecAffinitySupport( + &self, + pi: *mut ::core::ffi::c_int, + type_: CUexecAffinityType, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetExecAffinitySupport + .as_ref() + .expect("Expected function, got error."))(pi, type_, dev) + } + pub unsafe fn cuCtxCreate_v2( + &self, + pctx: *mut CUcontext, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuCtxCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pctx, flags, dev) + } + pub unsafe fn cuCtxCreate_v3( + &self, + pctx: *mut CUcontext, + paramsArray: *mut CUexecAffinityParam, + numParams: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuCtxCreate_v3 + .as_ref() + .expect("Expected function, got error."))( + pctx, paramsArray, numParams, flags, dev + ) + } + pub unsafe fn cuCtxDestroy_v2(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxPushCurrent_v2(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxPushCurrent_v2 + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxPopCurrent_v2(&self, pctx: *mut CUcontext) -> CUresult { + (self + .cuCtxPopCurrent_v2 + .as_ref() + .expect("Expected function, got error."))(pctx) + } + pub unsafe fn cuCtxSetCurrent(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxSetCurrent + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxGetCurrent(&self, pctx: *mut CUcontext) -> CUresult { + (self + .cuCtxGetCurrent + .as_ref() + .expect("Expected function, got error."))(pctx) + } + pub unsafe fn cuCtxGetDevice(&self, device: *mut CUdevice) -> CUresult { + (self + .cuCtxGetDevice + .as_ref() + .expect("Expected function, got error."))(device) + } + pub unsafe fn cuCtxGetFlags(&self, flags: *mut ::core::ffi::c_uint) -> CUresult { + (self + .cuCtxGetFlags + .as_ref() + .expect("Expected function, got error."))(flags) + } + pub unsafe fn cuCtxSynchronize(&self) -> CUresult { + (self + .cuCtxSynchronize + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuCtxSetLimit(&self, limit: CUlimit, value: usize) -> CUresult { + (self + .cuCtxSetLimit + .as_ref() + .expect("Expected function, got error."))(limit, value) + } + pub unsafe fn cuCtxGetLimit(&self, pvalue: *mut usize, limit: CUlimit) -> CUresult { + (self + .cuCtxGetLimit + .as_ref() + .expect("Expected function, got error."))(pvalue, limit) + } + pub unsafe fn cuCtxGetCacheConfig(&self, pconfig: *mut CUfunc_cache) -> CUresult { + (self + .cuCtxGetCacheConfig + .as_ref() + .expect("Expected function, got error."))(pconfig) + } + pub unsafe fn cuCtxSetCacheConfig(&self, config: CUfunc_cache) -> CUresult { + (self + .cuCtxSetCacheConfig + .as_ref() + .expect("Expected function, got error."))(config) + } + pub unsafe fn cuCtxGetSharedMemConfig(&self, pConfig: *mut CUsharedconfig) -> CUresult { + (self + .cuCtxGetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(pConfig) + } + pub unsafe fn cuCtxSetSharedMemConfig(&self, config: CUsharedconfig) -> CUresult { + (self + .cuCtxSetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(config) + } + pub unsafe fn cuCtxGetApiVersion( + &self, + ctx: CUcontext, + version: *mut ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuCtxGetApiVersion + .as_ref() + .expect("Expected function, got error."))(ctx, version) + } + pub unsafe fn cuCtxGetStreamPriorityRange( + &self, + leastPriority: *mut ::core::ffi::c_int, + greatestPriority: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuCtxGetStreamPriorityRange + .as_ref() + .expect("Expected function, got error."))(leastPriority, greatestPriority) + } + pub unsafe fn cuCtxResetPersistingL2Cache(&self) -> CUresult { + (self + .cuCtxResetPersistingL2Cache + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuCtxGetExecAffinity( + &self, + pExecAffinity: *mut CUexecAffinityParam, + type_: CUexecAffinityType, + ) -> CUresult { + (self + .cuCtxGetExecAffinity + .as_ref() + .expect("Expected function, got error."))(pExecAffinity, type_) + } + pub unsafe fn cuCtxAttach(&self, pctx: *mut CUcontext, flags: ::core::ffi::c_uint) -> CUresult { + (self + .cuCtxAttach + .as_ref() + .expect("Expected function, got error."))(pctx, flags) + } + pub unsafe fn cuCtxDetach(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxDetach + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuModuleLoad( + &self, + module: *mut CUmodule, + fname: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleLoad + .as_ref() + .expect("Expected function, got error."))(module, fname) + } + pub unsafe fn cuModuleLoadData( + &self, + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadData + .as_ref() + .expect("Expected function, got error."))(module, image) + } + pub unsafe fn cuModuleLoadDataEx( + &self, + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadDataEx + .as_ref() + .expect("Expected function, got error."))( + module, + image, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuModuleLoadFatBinary( + &self, + module: *mut CUmodule, + fatCubin: *const ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadFatBinary + .as_ref() + .expect("Expected function, got error."))(module, fatCubin) + } + pub unsafe fn cuModuleUnload(&self, hmod: CUmodule) -> CUresult { + (self + .cuModuleUnload + .as_ref() + .expect("Expected function, got error."))(hmod) + } + pub unsafe fn cuModuleGetFunction( + &self, + hfunc: *mut CUfunction, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetFunction + .as_ref() + .expect("Expected function, got error."))(hfunc, hmod, name) + } + pub unsafe fn cuModuleGetGlobal_v2( + &self, + dptr: *mut CUdeviceptr, + bytes: *mut usize, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetGlobal_v2 + .as_ref() + .expect("Expected function, got error."))(dptr, bytes, hmod, name) + } + pub unsafe fn cuModuleGetTexRef( + &self, + pTexRef: *mut CUtexref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetTexRef + .as_ref() + .expect("Expected function, got error."))(pTexRef, hmod, name) + } + pub unsafe fn cuModuleGetSurfRef( + &self, + pSurfRef: *mut CUsurfref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetSurfRef + .as_ref() + .expect("Expected function, got error."))(pSurfRef, hmod, name) + } + pub unsafe fn cuLinkCreate_v2( + &self, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + stateOut: *mut CUlinkState, + ) -> CUresult { + (self + .cuLinkCreate_v2 + .as_ref() + .expect("Expected function, got error."))( + numOptions, options, optionValues, stateOut + ) + } + pub unsafe fn cuLinkAddData_v2( + &self, + state: CUlinkState, + type_: CUjitInputType, + data: *mut ::core::ffi::c_void, + size: usize, + name: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLinkAddData_v2 + .as_ref() + .expect("Expected function, got error."))( + state, + type_, + data, + size, + name, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuLinkAddFile_v2( + &self, + state: CUlinkState, + type_: CUjitInputType, + path: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLinkAddFile_v2 + .as_ref() + .expect("Expected function, got error."))( + state, + type_, + path, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuLinkComplete( + &self, + state: CUlinkState, + cubinOut: *mut *mut ::core::ffi::c_void, + sizeOut: *mut usize, + ) -> CUresult { + (self + .cuLinkComplete + .as_ref() + .expect("Expected function, got error."))(state, cubinOut, sizeOut) + } + pub unsafe fn cuLinkDestroy(&self, state: CUlinkState) -> CUresult { + (self + .cuLinkDestroy + .as_ref() + .expect("Expected function, got error."))(state) + } + pub unsafe fn cuMemGetInfo_v2(&self, free: *mut usize, total: *mut usize) -> CUresult { + (self + .cuMemGetInfo_v2 + .as_ref() + .expect("Expected function, got error."))(free, total) + } + pub unsafe fn cuMemAlloc_v2(&self, dptr: *mut CUdeviceptr, bytesize: usize) -> CUresult { + (self + .cuMemAlloc_v2 + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize) + } + pub unsafe fn cuMemAllocPitch_v2( + &self, + dptr: *mut CUdeviceptr, + pPitch: *mut usize, + WidthInBytes: usize, + Height: usize, + ElementSizeBytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemAllocPitch_v2 + .as_ref() + .expect("Expected function, got error."))( + dptr, + pPitch, + WidthInBytes, + Height, + ElementSizeBytes, + ) + } + pub unsafe fn cuMemFree_v2(&self, dptr: CUdeviceptr) -> CUresult { + (self + .cuMemFree_v2 + .as_ref() + .expect("Expected function, got error."))(dptr) + } + pub unsafe fn cuMemGetAddressRange_v2( + &self, + pbase: *mut CUdeviceptr, + psize: *mut usize, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemGetAddressRange_v2 + .as_ref() + .expect("Expected function, got error."))(pbase, psize, dptr) + } + pub unsafe fn cuMemAllocHost_v2( + &self, + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + ) -> CUresult { + (self + .cuMemAllocHost_v2 + .as_ref() + .expect("Expected function, got error."))(pp, bytesize) + } + pub unsafe fn cuMemFreeHost(&self, p: *mut ::core::ffi::c_void) -> CUresult { + (self + .cuMemFreeHost + .as_ref() + .expect("Expected function, got error."))(p) + } + pub unsafe fn cuMemHostAlloc( + &self, + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostAlloc + .as_ref() + .expect("Expected function, got error."))(pp, bytesize, Flags) + } + pub unsafe fn cuMemHostGetDevicePointer_v2( + &self, + pdptr: *mut CUdeviceptr, + p: *mut ::core::ffi::c_void, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostGetDevicePointer_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, p, Flags) + } + pub unsafe fn cuMemHostGetFlags( + &self, + pFlags: *mut ::core::ffi::c_uint, + p: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemHostGetFlags + .as_ref() + .expect("Expected function, got error."))(pFlags, p) + } + pub unsafe fn cuMemAllocManaged( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemAllocManaged + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, flags) + } + pub unsafe fn cuDeviceGetByPCIBusId( + &self, + dev: *mut CUdevice, + pciBusId: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuDeviceGetByPCIBusId + .as_ref() + .expect("Expected function, got error."))(dev, pciBusId) + } + pub unsafe fn cuDeviceGetPCIBusId( + &self, + pciBusId: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetPCIBusId + .as_ref() + .expect("Expected function, got error."))(pciBusId, len, dev) + } + pub unsafe fn cuIpcGetEventHandle( + &self, + pHandle: *mut CUipcEventHandle, + event: CUevent, + ) -> CUresult { + (self + .cuIpcGetEventHandle + .as_ref() + .expect("Expected function, got error."))(pHandle, event) + } + pub unsafe fn cuIpcOpenEventHandle( + &self, + phEvent: *mut CUevent, + handle: CUipcEventHandle, + ) -> CUresult { + (self + .cuIpcOpenEventHandle + .as_ref() + .expect("Expected function, got error."))(phEvent, handle) + } + pub unsafe fn cuIpcGetMemHandle( + &self, + pHandle: *mut CUipcMemHandle, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuIpcGetMemHandle + .as_ref() + .expect("Expected function, got error."))(pHandle, dptr) + } + pub unsafe fn cuIpcOpenMemHandle_v2( + &self, + pdptr: *mut CUdeviceptr, + handle: CUipcMemHandle, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuIpcOpenMemHandle_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, handle, Flags) + } + pub unsafe fn cuIpcCloseMemHandle(&self, dptr: CUdeviceptr) -> CUresult { + (self + .cuIpcCloseMemHandle + .as_ref() + .expect("Expected function, got error."))(dptr) + } + pub unsafe fn cuMemHostRegister_v2( + &self, + p: *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostRegister_v2 + .as_ref() + .expect("Expected function, got error."))(p, bytesize, Flags) + } + pub unsafe fn cuMemHostUnregister(&self, p: *mut ::core::ffi::c_void) -> CUresult { + (self + .cuMemHostUnregister + .as_ref() + .expect("Expected function, got error."))(p) + } + pub unsafe fn cuMemcpy( + &self, + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpy + .as_ref() + .expect("Expected function, got error."))(dst, src, ByteCount) + } + pub unsafe fn cuMemcpyPeer( + &self, + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyPeer + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstContext, srcDevice, srcContext, ByteCount, + ) + } + pub unsafe fn cuMemcpyHtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyHtoD_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcHost, ByteCount) + } + pub unsafe fn cuMemcpyDtoH_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoH_v2 + .as_ref() + .expect("Expected function, got error."))(dstHost, srcDevice, ByteCount) + } + pub unsafe fn cuMemcpyDtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoD_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcDevice, ByteCount) + } + pub unsafe fn cuMemcpyDtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcDevice, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoD_v2 + .as_ref() + .expect("Expected function, got error."))( + dstDevice, srcArray, srcOffset, ByteCount + ) + } + pub unsafe fn cuMemcpyHtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyHtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcHost, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoH_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoH_v2 + .as_ref() + .expect("Expected function, got error."))( + dstHost, srcArray, srcOffset, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcArray, srcOffset, ByteCount, + ) + } + pub unsafe fn cuMemcpy2D_v2(&self, pCopy: *const CUDA_MEMCPY2D) -> CUresult { + (self + .cuMemcpy2D_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy2DUnaligned_v2(&self, pCopy: *const CUDA_MEMCPY2D) -> CUresult { + (self + .cuMemcpy2DUnaligned_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy3D_v2(&self, pCopy: *const CUDA_MEMCPY3D) -> CUresult { + (self + .cuMemcpy3D_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy3DPeer(&self, pCopy: *const CUDA_MEMCPY3D_PEER) -> CUresult { + (self + .cuMemcpy3DPeer + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpyAsync( + &self, + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyAsync + .as_ref() + .expect("Expected function, got error."))(dst, src, ByteCount, hStream) + } + pub unsafe fn cuMemcpyPeerAsync( + &self, + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyPeerAsync + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstContext, srcDevice, srcContext, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpyHtoDAsync_v2( + &self, + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyHtoDAsync_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcHost, ByteCount, hStream) + } + pub unsafe fn cuMemcpyDtoHAsync_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyDtoHAsync_v2 + .as_ref() + .expect("Expected function, got error."))(dstHost, srcDevice, ByteCount, hStream) + } + pub unsafe fn cuMemcpyDtoDAsync_v2( + &self, + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyDtoDAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstDevice, srcDevice, ByteCount, hStream + ) + } + pub unsafe fn cuMemcpyHtoAAsync_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyHtoAAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcHost, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpyAtoHAsync_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyAtoHAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstHost, srcArray, srcOffset, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpy2DAsync_v2( + &self, + pCopy: *const CUDA_MEMCPY2D, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy2DAsync_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemcpy3DAsync_v2( + &self, + pCopy: *const CUDA_MEMCPY3D, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy3DAsync_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemcpy3DPeerAsync( + &self, + pCopy: *const CUDA_MEMCPY3D_PEER, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy3DPeerAsync + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemsetD8_v2( + &self, + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + ) -> CUresult { + (self + .cuMemsetD8_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, uc, N) + } + pub unsafe fn cuMemsetD16_v2( + &self, + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + ) -> CUresult { + (self + .cuMemsetD16_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, us, N) + } + pub unsafe fn cuMemsetD32_v2( + &self, + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + ) -> CUresult { + (self + .cuMemsetD32_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, ui, N) + } + pub unsafe fn cuMemsetD2D8_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D8_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, uc, Width, Height) + } + pub unsafe fn cuMemsetD2D16_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D16_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, us, Width, Height) + } + pub unsafe fn cuMemsetD2D32_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D32_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, ui, Width, Height) + } + pub unsafe fn cuMemsetD8Async( + &self, + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD8Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, uc, N, hStream) + } + pub unsafe fn cuMemsetD16Async( + &self, + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD16Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, us, N, hStream) + } + pub unsafe fn cuMemsetD32Async( + &self, + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD32Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, ui, N, hStream) + } + pub unsafe fn cuMemsetD2D8Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D8Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, uc, Width, Height, hStream, + ) + } + pub unsafe fn cuMemsetD2D16Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D16Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, us, Width, Height, hStream, + ) + } + pub unsafe fn cuMemsetD2D32Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D32Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, ui, Width, Height, hStream, + ) + } + pub unsafe fn cuArrayCreate_v2( + &self, + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY_DESCRIPTOR, + ) -> CUresult { + (self + .cuArrayCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pHandle, pAllocateArray) + } + pub unsafe fn cuArrayGetDescriptor_v2( + &self, + pArrayDescriptor: *mut CUDA_ARRAY_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult { + (self + .cuArrayGetDescriptor_v2 + .as_ref() + .expect("Expected function, got error."))(pArrayDescriptor, hArray) + } + pub unsafe fn cuArrayGetSparseProperties( + &self, + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + array: CUarray, + ) -> CUresult { + (self + .cuArrayGetSparseProperties + .as_ref() + .expect("Expected function, got error."))(sparseProperties, array) + } + pub unsafe fn cuMipmappedArrayGetSparseProperties( + &self, + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + mipmap: CUmipmappedArray, + ) -> CUresult { + (self + .cuMipmappedArrayGetSparseProperties + .as_ref() + .expect("Expected function, got error."))(sparseProperties, mipmap) + } + pub unsafe fn cuArrayGetPlane( + &self, + pPlaneArray: *mut CUarray, + hArray: CUarray, + planeIdx: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuArrayGetPlane + .as_ref() + .expect("Expected function, got error."))(pPlaneArray, hArray, planeIdx) + } + pub unsafe fn cuArrayDestroy(&self, hArray: CUarray) -> CUresult { + (self + .cuArrayDestroy + .as_ref() + .expect("Expected function, got error."))(hArray) + } + pub unsafe fn cuArray3DCreate_v2( + &self, + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY3D_DESCRIPTOR, + ) -> CUresult { + (self + .cuArray3DCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pHandle, pAllocateArray) + } + pub unsafe fn cuArray3DGetDescriptor_v2( + &self, + pArrayDescriptor: *mut CUDA_ARRAY3D_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult { + (self + .cuArray3DGetDescriptor_v2 + .as_ref() + .expect("Expected function, got error."))(pArrayDescriptor, hArray) + } + pub unsafe fn cuMipmappedArrayCreate( + &self, + pHandle: *mut CUmipmappedArray, + pMipmappedArrayDesc: *const CUDA_ARRAY3D_DESCRIPTOR, + numMipmapLevels: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMipmappedArrayCreate + .as_ref() + .expect("Expected function, got error."))( + pHandle, pMipmappedArrayDesc, numMipmapLevels + ) + } + pub unsafe fn cuMipmappedArrayGetLevel( + &self, + pLevelArray: *mut CUarray, + hMipmappedArray: CUmipmappedArray, + level: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMipmappedArrayGetLevel + .as_ref() + .expect("Expected function, got error."))(pLevelArray, hMipmappedArray, level) + } + pub unsafe fn cuMipmappedArrayDestroy(&self, hMipmappedArray: CUmipmappedArray) -> CUresult { + (self + .cuMipmappedArrayDestroy + .as_ref() + .expect("Expected function, got error."))(hMipmappedArray) + } + pub unsafe fn cuMemAddressReserve( + &self, + ptr: *mut CUdeviceptr, + size: usize, + alignment: usize, + addr: CUdeviceptr, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemAddressReserve + .as_ref() + .expect("Expected function, got error."))(ptr, size, alignment, addr, flags) + } + pub unsafe fn cuMemAddressFree(&self, ptr: CUdeviceptr, size: usize) -> CUresult { + (self + .cuMemAddressFree + .as_ref() + .expect("Expected function, got error."))(ptr, size) + } + pub unsafe fn cuMemCreate( + &self, + handle: *mut CUmemGenericAllocationHandle, + size: usize, + prop: *const CUmemAllocationProp, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemCreate + .as_ref() + .expect("Expected function, got error."))(handle, size, prop, flags) + } + pub unsafe fn cuMemRelease(&self, handle: CUmemGenericAllocationHandle) -> CUresult { + (self + .cuMemRelease + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cuMemMap( + &self, + ptr: CUdeviceptr, + size: usize, + offset: usize, + handle: CUmemGenericAllocationHandle, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemMap + .as_ref() + .expect("Expected function, got error."))(ptr, size, offset, handle, flags) + } + pub unsafe fn cuMemMapArrayAsync( + &self, + mapInfoList: *mut CUarrayMapInfo, + count: ::core::ffi::c_uint, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemMapArrayAsync + .as_ref() + .expect("Expected function, got error."))(mapInfoList, count, hStream) + } + pub unsafe fn cuMemUnmap(&self, ptr: CUdeviceptr, size: usize) -> CUresult { + (self + .cuMemUnmap + .as_ref() + .expect("Expected function, got error."))(ptr, size) + } + pub unsafe fn cuMemSetAccess( + &self, + ptr: CUdeviceptr, + size: usize, + desc: *const CUmemAccessDesc, + count: usize, + ) -> CUresult { + (self + .cuMemSetAccess + .as_ref() + .expect("Expected function, got error."))(ptr, size, desc, count) + } + pub unsafe fn cuMemGetAccess( + &self, + flags: *mut ::core::ffi::c_ulonglong, + location: *const CUmemLocation, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemGetAccess + .as_ref() + .expect("Expected function, got error."))(flags, location, ptr) + } + pub unsafe fn cuMemExportToShareableHandle( + &self, + shareableHandle: *mut ::core::ffi::c_void, + handle: CUmemGenericAllocationHandle, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemExportToShareableHandle + .as_ref() + .expect("Expected function, got error."))( + shareableHandle, handle, handleType, flags + ) + } + pub unsafe fn cuMemImportFromShareableHandle( + &self, + handle: *mut CUmemGenericAllocationHandle, + osHandle: *mut ::core::ffi::c_void, + shHandleType: CUmemAllocationHandleType, + ) -> CUresult { + (self + .cuMemImportFromShareableHandle + .as_ref() + .expect("Expected function, got error."))(handle, osHandle, shHandleType) + } + pub unsafe fn cuMemGetAllocationGranularity( + &self, + granularity: *mut usize, + prop: *const CUmemAllocationProp, + option: CUmemAllocationGranularity_flags, + ) -> CUresult { + (self + .cuMemGetAllocationGranularity + .as_ref() + .expect("Expected function, got error."))(granularity, prop, option) + } + pub unsafe fn cuMemGetAllocationPropertiesFromHandle( + &self, + prop: *mut CUmemAllocationProp, + handle: CUmemGenericAllocationHandle, + ) -> CUresult { + (self + .cuMemGetAllocationPropertiesFromHandle + .as_ref() + .expect("Expected function, got error."))(prop, handle) + } + pub unsafe fn cuMemRetainAllocationHandle( + &self, + handle: *mut CUmemGenericAllocationHandle, + addr: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemRetainAllocationHandle + .as_ref() + .expect("Expected function, got error."))(handle, addr) + } + pub unsafe fn cuMemFreeAsync(&self, dptr: CUdeviceptr, hStream: CUstream) -> CUresult { + (self + .cuMemFreeAsync + .as_ref() + .expect("Expected function, got error."))(dptr, hStream) + } + pub unsafe fn cuMemAllocAsync( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemAllocAsync + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, hStream) + } + pub unsafe fn cuMemPoolTrimTo(&self, pool: CUmemoryPool, minBytesToKeep: usize) -> CUresult { + (self + .cuMemPoolTrimTo + .as_ref() + .expect("Expected function, got error."))(pool, minBytesToKeep) + } + pub unsafe fn cuMemPoolSetAttribute( + &self, + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemPoolSetAttribute + .as_ref() + .expect("Expected function, got error."))(pool, attr, value) + } + pub unsafe fn cuMemPoolGetAttribute( + &self, + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemPoolGetAttribute + .as_ref() + .expect("Expected function, got error."))(pool, attr, value) + } + pub unsafe fn cuMemPoolSetAccess( + &self, + pool: CUmemoryPool, + map: *const CUmemAccessDesc, + count: usize, + ) -> CUresult { + (self + .cuMemPoolSetAccess + .as_ref() + .expect("Expected function, got error."))(pool, map, count) + } + pub unsafe fn cuMemPoolGetAccess( + &self, + flags: *mut CUmemAccess_flags, + memPool: CUmemoryPool, + location: *mut CUmemLocation, + ) -> CUresult { + (self + .cuMemPoolGetAccess + .as_ref() + .expect("Expected function, got error."))(flags, memPool, location) + } + pub unsafe fn cuMemPoolCreate( + &self, + pool: *mut CUmemoryPool, + poolProps: *const CUmemPoolProps, + ) -> CUresult { + (self + .cuMemPoolCreate + .as_ref() + .expect("Expected function, got error."))(pool, poolProps) + } + pub unsafe fn cuMemPoolDestroy(&self, pool: CUmemoryPool) -> CUresult { + (self + .cuMemPoolDestroy + .as_ref() + .expect("Expected function, got error."))(pool) + } + pub unsafe fn cuMemAllocFromPoolAsync( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + pool: CUmemoryPool, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemAllocFromPoolAsync + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, pool, hStream) + } + pub unsafe fn cuMemPoolExportToShareableHandle( + &self, + handle_out: *mut ::core::ffi::c_void, + pool: CUmemoryPool, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemPoolExportToShareableHandle + .as_ref() + .expect("Expected function, got error."))(handle_out, pool, handleType, flags) + } + pub unsafe fn cuMemPoolImportFromShareableHandle( + &self, + pool_out: *mut CUmemoryPool, + handle: *mut ::core::ffi::c_void, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemPoolImportFromShareableHandle + .as_ref() + .expect("Expected function, got error."))(pool_out, handle, handleType, flags) + } + pub unsafe fn cuMemPoolExportPointer( + &self, + shareData_out: *mut CUmemPoolPtrExportData, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemPoolExportPointer + .as_ref() + .expect("Expected function, got error."))(shareData_out, ptr) + } + pub unsafe fn cuMemPoolImportPointer( + &self, + ptr_out: *mut CUdeviceptr, + pool: CUmemoryPool, + shareData: *mut CUmemPoolPtrExportData, + ) -> CUresult { + (self + .cuMemPoolImportPointer + .as_ref() + .expect("Expected function, got error."))(ptr_out, pool, shareData) + } + pub unsafe fn cuPointerGetAttribute( + &self, + data: *mut ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerGetAttribute + .as_ref() + .expect("Expected function, got error."))(data, attribute, ptr) + } + pub unsafe fn cuMemPrefetchAsync( + &self, + devPtr: CUdeviceptr, + count: usize, + dstDevice: CUdevice, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemPrefetchAsync + .as_ref() + .expect("Expected function, got error."))(devPtr, count, dstDevice, hStream) + } + pub unsafe fn cuMemAdvise( + &self, + devPtr: CUdeviceptr, + count: usize, + advice: CUmem_advise, + device: CUdevice, + ) -> CUresult { + (self + .cuMemAdvise + .as_ref() + .expect("Expected function, got error."))(devPtr, count, advice, device) + } + pub unsafe fn cuMemRangeGetAttribute( + &self, + data: *mut ::core::ffi::c_void, + dataSize: usize, + attribute: CUmem_range_attribute, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult { + (self + .cuMemRangeGetAttribute + .as_ref() + .expect("Expected function, got error."))( + data, dataSize, attribute, devPtr, count + ) + } + pub unsafe fn cuMemRangeGetAttributes( + &self, + data: *mut *mut ::core::ffi::c_void, + dataSizes: *mut usize, + attributes: *mut CUmem_range_attribute, + numAttributes: usize, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult { + (self + .cuMemRangeGetAttributes + .as_ref() + .expect("Expected function, got error."))( + data, + dataSizes, + attributes, + numAttributes, + devPtr, + count, + ) + } + pub unsafe fn cuPointerSetAttribute( + &self, + value: *const ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerSetAttribute + .as_ref() + .expect("Expected function, got error."))(value, attribute, ptr) + } + pub unsafe fn cuPointerGetAttributes( + &self, + numAttributes: ::core::ffi::c_uint, + attributes: *mut CUpointer_attribute, + data: *mut *mut ::core::ffi::c_void, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerGetAttributes + .as_ref() + .expect("Expected function, got error."))(numAttributes, attributes, data, ptr) + } + pub unsafe fn cuStreamCreate( + &self, + phStream: *mut CUstream, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamCreate + .as_ref() + .expect("Expected function, got error."))(phStream, Flags) + } + pub unsafe fn cuStreamCreateWithPriority( + &self, + phStream: *mut CUstream, + flags: ::core::ffi::c_uint, + priority: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuStreamCreateWithPriority + .as_ref() + .expect("Expected function, got error."))(phStream, flags, priority) + } + pub unsafe fn cuStreamGetPriority( + &self, + hStream: CUstream, + priority: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuStreamGetPriority + .as_ref() + .expect("Expected function, got error."))(hStream, priority) + } + pub unsafe fn cuStreamGetFlags( + &self, + hStream: CUstream, + flags: *mut ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamGetFlags + .as_ref() + .expect("Expected function, got error."))(hStream, flags) + } + pub unsafe fn cuStreamGetCtx(&self, hStream: CUstream, pctx: *mut CUcontext) -> CUresult { + (self + .cuStreamGetCtx + .as_ref() + .expect("Expected function, got error."))(hStream, pctx) + } + pub unsafe fn cuStreamWaitEvent( + &self, + hStream: CUstream, + hEvent: CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitEvent + .as_ref() + .expect("Expected function, got error."))(hStream, hEvent, Flags) + } + pub unsafe fn cuStreamAddCallback( + &self, + hStream: CUstream, + callback: CUstreamCallback, + userData: *mut ::core::ffi::c_void, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamAddCallback + .as_ref() + .expect("Expected function, got error."))(hStream, callback, userData, flags) + } + pub unsafe fn cuStreamBeginCapture_v2( + &self, + hStream: CUstream, + mode: CUstreamCaptureMode, + ) -> CUresult { + (self + .cuStreamBeginCapture_v2 + .as_ref() + .expect("Expected function, got error."))(hStream, mode) + } + pub unsafe fn cuThreadExchangeStreamCaptureMode( + &self, + mode: *mut CUstreamCaptureMode, + ) -> CUresult { + (self + .cuThreadExchangeStreamCaptureMode + .as_ref() + .expect("Expected function, got error."))(mode) + } + pub unsafe fn cuStreamEndCapture(&self, hStream: CUstream, phGraph: *mut CUgraph) -> CUresult { + (self + .cuStreamEndCapture + .as_ref() + .expect("Expected function, got error."))(hStream, phGraph) + } + pub unsafe fn cuStreamIsCapturing( + &self, + hStream: CUstream, + captureStatus: *mut CUstreamCaptureStatus, + ) -> CUresult { + (self + .cuStreamIsCapturing + .as_ref() + .expect("Expected function, got error."))(hStream, captureStatus) + } + pub unsafe fn cuStreamGetCaptureInfo( + &self, + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + ) -> CUresult { + (self + .cuStreamGetCaptureInfo + .as_ref() + .expect("Expected function, got error."))(hStream, captureStatus_out, id_out) + } + pub unsafe fn cuStreamGetCaptureInfo_v2( + &self, + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + graph_out: *mut CUgraph, + dependencies_out: *mut *const CUgraphNode, + numDependencies_out: *mut usize, + ) -> CUresult { + (self + .cuStreamGetCaptureInfo_v2 + .as_ref() + .expect("Expected function, got error."))( + hStream, + captureStatus_out, + id_out, + graph_out, + dependencies_out, + numDependencies_out, + ) + } + pub unsafe fn cuStreamUpdateCaptureDependencies( + &self, + hStream: CUstream, + dependencies: *mut CUgraphNode, + numDependencies: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamUpdateCaptureDependencies + .as_ref() + .expect("Expected function, got error."))( + hStream, dependencies, numDependencies, flags + ) + } + pub unsafe fn cuStreamAttachMemAsync( + &self, + hStream: CUstream, + dptr: CUdeviceptr, + length: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamAttachMemAsync + .as_ref() + .expect("Expected function, got error."))(hStream, dptr, length, flags) + } + pub unsafe fn cuStreamQuery(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamQuery + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamSynchronize(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamSynchronize + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamDestroy_v2(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamCopyAttributes(&self, dst: CUstream, src: CUstream) -> CUresult { + (self + .cuStreamCopyAttributes + .as_ref() + .expect("Expected function, got error."))(dst, src) + } + pub unsafe fn cuStreamGetAttribute( + &self, + hStream: CUstream, + attr: CUstreamAttrID, + value_out: *mut CUstreamAttrValue, + ) -> CUresult { + (self + .cuStreamGetAttribute + .as_ref() + .expect("Expected function, got error."))(hStream, attr, value_out) + } + pub unsafe fn cuStreamSetAttribute( + &self, + hStream: CUstream, + attr: CUstreamAttrID, + value: *const CUstreamAttrValue, + ) -> CUresult { + (self + .cuStreamSetAttribute + .as_ref() + .expect("Expected function, got error."))(hStream, attr, value) + } + pub unsafe fn cuEventCreate( + &self, + phEvent: *mut CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuEventCreate + .as_ref() + .expect("Expected function, got error."))(phEvent, Flags) + } + pub unsafe fn cuEventRecord(&self, hEvent: CUevent, hStream: CUstream) -> CUresult { + (self + .cuEventRecord + .as_ref() + .expect("Expected function, got error."))(hEvent, hStream) + } + pub unsafe fn cuEventRecordWithFlags( + &self, + hEvent: CUevent, + hStream: CUstream, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuEventRecordWithFlags + .as_ref() + .expect("Expected function, got error."))(hEvent, hStream, flags) + } + pub unsafe fn cuEventQuery(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventQuery + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventSynchronize(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventSynchronize + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventDestroy_v2(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventElapsedTime( + &self, + pMilliseconds: *mut f32, + hStart: CUevent, + hEnd: CUevent, + ) -> CUresult { + (self + .cuEventElapsedTime + .as_ref() + .expect("Expected function, got error."))(pMilliseconds, hStart, hEnd) + } + pub unsafe fn cuImportExternalMemory( + &self, + extMem_out: *mut CUexternalMemory, + memHandleDesc: *const CUDA_EXTERNAL_MEMORY_HANDLE_DESC, + ) -> CUresult { + (self + .cuImportExternalMemory + .as_ref() + .expect("Expected function, got error."))(extMem_out, memHandleDesc) + } + pub unsafe fn cuExternalMemoryGetMappedBuffer( + &self, + devPtr: *mut CUdeviceptr, + extMem: CUexternalMemory, + bufferDesc: *const CUDA_EXTERNAL_MEMORY_BUFFER_DESC, + ) -> CUresult { + (self + .cuExternalMemoryGetMappedBuffer + .as_ref() + .expect("Expected function, got error."))(devPtr, extMem, bufferDesc) + } + pub unsafe fn cuExternalMemoryGetMappedMipmappedArray( + &self, + mipmap: *mut CUmipmappedArray, + extMem: CUexternalMemory, + mipmapDesc: *const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, + ) -> CUresult { + (self + .cuExternalMemoryGetMappedMipmappedArray + .as_ref() + .expect("Expected function, got error."))(mipmap, extMem, mipmapDesc) + } + pub unsafe fn cuDestroyExternalMemory(&self, extMem: CUexternalMemory) -> CUresult { + (self + .cuDestroyExternalMemory + .as_ref() + .expect("Expected function, got error."))(extMem) + } + pub unsafe fn cuImportExternalSemaphore( + &self, + extSem_out: *mut CUexternalSemaphore, + semHandleDesc: *const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, + ) -> CUresult { + (self + .cuImportExternalSemaphore + .as_ref() + .expect("Expected function, got error."))(extSem_out, semHandleDesc) + } + pub unsafe fn cuSignalExternalSemaphoresAsync( + &self, + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult { + (self + .cuSignalExternalSemaphoresAsync + .as_ref() + .expect("Expected function, got error."))( + extSemArray, paramsArray, numExtSems, stream + ) + } + pub unsafe fn cuWaitExternalSemaphoresAsync( + &self, + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult { + (self + .cuWaitExternalSemaphoresAsync + .as_ref() + .expect("Expected function, got error."))( + extSemArray, paramsArray, numExtSems, stream + ) + } + pub unsafe fn cuDestroyExternalSemaphore(&self, extSem: CUexternalSemaphore) -> CUresult { + (self + .cuDestroyExternalSemaphore + .as_ref() + .expect("Expected function, got error."))(extSem) + } + pub unsafe fn cuStreamWaitValue32( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitValue32 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWaitValue64( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitValue64 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWriteValue32( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWriteValue32 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWriteValue64( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWriteValue64 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamBatchMemOp( + &self, + stream: CUstream, + count: ::core::ffi::c_uint, + paramArray: *mut CUstreamBatchMemOpParams, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamBatchMemOp + .as_ref() + .expect("Expected function, got error."))(stream, count, paramArray, flags) + } + pub unsafe fn cuFuncGetAttribute( + &self, + pi: *mut ::core::ffi::c_int, + attrib: CUfunction_attribute, + hfunc: CUfunction, + ) -> CUresult { + (self + .cuFuncGetAttribute + .as_ref() + .expect("Expected function, got error."))(pi, attrib, hfunc) + } + pub unsafe fn cuFuncSetAttribute( + &self, + hfunc: CUfunction, + attrib: CUfunction_attribute, + value: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuFuncSetAttribute + .as_ref() + .expect("Expected function, got error."))(hfunc, attrib, value) + } + pub unsafe fn cuFuncSetCacheConfig(&self, hfunc: CUfunction, config: CUfunc_cache) -> CUresult { + (self + .cuFuncSetCacheConfig + .as_ref() + .expect("Expected function, got error."))(hfunc, config) + } + pub unsafe fn cuFuncSetSharedMemConfig( + &self, + hfunc: CUfunction, + config: CUsharedconfig, + ) -> CUresult { + (self + .cuFuncSetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(hfunc, config) + } + pub unsafe fn cuFuncGetModule(&self, hmod: *mut CUmodule, hfunc: CUfunction) -> CUresult { + (self + .cuFuncGetModule + .as_ref() + .expect("Expected function, got error."))(hmod, hfunc) + } + pub unsafe fn cuLaunchKernel( + &self, + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + extra: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchKernel + .as_ref() + .expect("Expected function, got error."))( + f, + gridDimX, + gridDimY, + gridDimZ, + blockDimX, + blockDimY, + blockDimZ, + sharedMemBytes, + hStream, + kernelParams, + extra, + ) + } + pub unsafe fn cuLaunchCooperativeKernel( + &self, + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchCooperativeKernel + .as_ref() + .expect("Expected function, got error."))( + f, + gridDimX, + gridDimY, + gridDimZ, + blockDimX, + blockDimY, + blockDimZ, + sharedMemBytes, + hStream, + kernelParams, + ) + } + pub unsafe fn cuLaunchCooperativeKernelMultiDevice( + &self, + launchParamsList: *mut CUDA_LAUNCH_PARAMS, + numDevices: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuLaunchCooperativeKernelMultiDevice + .as_ref() + .expect("Expected function, got error."))(launchParamsList, numDevices, flags) + } + pub unsafe fn cuLaunchHostFunc( + &self, + hStream: CUstream, + fn_: CUhostFn, + userData: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchHostFunc + .as_ref() + .expect("Expected function, got error."))(hStream, fn_, userData) + } + pub unsafe fn cuFuncSetBlockShape( + &self, + hfunc: CUfunction, + x: ::core::ffi::c_int, + y: ::core::ffi::c_int, + z: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuFuncSetBlockShape + .as_ref() + .expect("Expected function, got error."))(hfunc, x, y, z) + } + pub unsafe fn cuFuncSetSharedSize( + &self, + hfunc: CUfunction, + bytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuFuncSetSharedSize + .as_ref() + .expect("Expected function, got error."))(hfunc, bytes) + } + pub unsafe fn cuParamSetSize( + &self, + hfunc: CUfunction, + numbytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSetSize + .as_ref() + .expect("Expected function, got error."))(hfunc, numbytes) + } + pub unsafe fn cuParamSeti( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSeti + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, value) + } + pub unsafe fn cuParamSetf( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: f32, + ) -> CUresult { + (self + .cuParamSetf + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, value) + } + pub unsafe fn cuParamSetv( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + ptr: *mut ::core::ffi::c_void, + numbytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSetv + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, ptr, numbytes) + } + pub unsafe fn cuLaunch(&self, f: CUfunction) -> CUresult { + (self + .cuLaunch + .as_ref() + .expect("Expected function, got error."))(f) + } + pub unsafe fn cuLaunchGrid( + &self, + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuLaunchGrid + .as_ref() + .expect("Expected function, got error."))(f, grid_width, grid_height) + } + pub unsafe fn cuLaunchGridAsync( + &self, + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + hStream: CUstream, + ) -> CUresult { + (self + .cuLaunchGridAsync + .as_ref() + .expect("Expected function, got error."))(f, grid_width, grid_height, hStream) + } + pub unsafe fn cuParamSetTexRef( + &self, + hfunc: CUfunction, + texunit: ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuParamSetTexRef + .as_ref() + .expect("Expected function, got error."))(hfunc, texunit, hTexRef) + } + pub unsafe fn cuGraphCreate( + &self, + phGraph: *mut CUgraph, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphCreate + .as_ref() + .expect("Expected function, got error."))(phGraph, flags) + } + pub unsafe fn cuGraphAddKernelNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddKernelNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphKernelNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphKernelNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphKernelNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphKernelNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemcpyNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphAddMemcpyNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + copyParams, + ctx, + ) + } + pub unsafe fn cuGraphMemcpyNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMCPY3D, + ) -> CUresult { + (self + .cuGraphMemcpyNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphMemcpyNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMCPY3D, + ) -> CUresult { + (self + .cuGraphMemcpyNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemsetNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphAddMemsetNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + memsetParams, + ctx, + ) + } + pub unsafe fn cuGraphMemsetNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemsetNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphMemsetNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemsetNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddHostNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddHostNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphHostNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphHostNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphHostNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphHostNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddChildGraphNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + childGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphAddChildGraphNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + childGraph, + ) + } + pub unsafe fn cuGraphChildGraphNodeGetGraph( + &self, + hNode: CUgraphNode, + phGraph: *mut CUgraph, + ) -> CUresult { + (self + .cuGraphChildGraphNodeGetGraph + .as_ref() + .expect("Expected function, got error."))(hNode, phGraph) + } + pub unsafe fn cuGraphAddEmptyNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphAddEmptyNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + ) + } + pub unsafe fn cuGraphAddEventRecordNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult { + (self + .cuGraphAddEventRecordNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + event, + ) + } + pub unsafe fn cuGraphEventRecordNodeGetEvent( + &self, + hNode: CUgraphNode, + event_out: *mut CUevent, + ) -> CUresult { + (self + .cuGraphEventRecordNodeGetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event_out) + } + pub unsafe fn cuGraphEventRecordNodeSetEvent( + &self, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphEventRecordNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event) + } + pub unsafe fn cuGraphAddEventWaitNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult { + (self + .cuGraphAddEventWaitNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + event, + ) + } + pub unsafe fn cuGraphEventWaitNodeGetEvent( + &self, + hNode: CUgraphNode, + event_out: *mut CUevent, + ) -> CUresult { + (self + .cuGraphEventWaitNodeGetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event_out) + } + pub unsafe fn cuGraphEventWaitNodeSetEvent( + &self, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphEventWaitNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event) + } + pub unsafe fn cuGraphAddExternalSemaphoresSignalNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddExternalSemaphoresSignalNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphExternalSemaphoresSignalNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresSignalNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphExternalSemaphoresSignalNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresSignalNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddExternalSemaphoresWaitNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddExternalSemaphoresWaitNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphExternalSemaphoresWaitNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresWaitNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphExternalSemaphoresWaitNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresWaitNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemAllocNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddMemAllocNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphMemAllocNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemAllocNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphAddMemFreeNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuGraphAddMemFreeNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + dptr, + ) + } + pub unsafe fn cuGraphMemFreeNodeGetParams( + &self, + hNode: CUgraphNode, + dptr_out: *mut CUdeviceptr, + ) -> CUresult { + (self + .cuGraphMemFreeNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, dptr_out) + } + pub unsafe fn cuDeviceGraphMemTrim(&self, device: CUdevice) -> CUresult { + (self + .cuDeviceGraphMemTrim + .as_ref() + .expect("Expected function, got error."))(device) + } + pub unsafe fn cuDeviceGetGraphMemAttribute( + &self, + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuDeviceGetGraphMemAttribute + .as_ref() + .expect("Expected function, got error."))(device, attr, value) + } + pub unsafe fn cuDeviceSetGraphMemAttribute( + &self, + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuDeviceSetGraphMemAttribute + .as_ref() + .expect("Expected function, got error."))(device, attr, value) + } + pub unsafe fn cuGraphClone( + &self, + phGraphClone: *mut CUgraph, + originalGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphClone + .as_ref() + .expect("Expected function, got error."))(phGraphClone, originalGraph) + } + pub unsafe fn cuGraphNodeFindInClone( + &self, + phNode: *mut CUgraphNode, + hOriginalNode: CUgraphNode, + hClonedGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphNodeFindInClone + .as_ref() + .expect("Expected function, got error."))(phNode, hOriginalNode, hClonedGraph) + } + pub unsafe fn cuGraphNodeGetType( + &self, + hNode: CUgraphNode, + type_: *mut CUgraphNodeType, + ) -> CUresult { + (self + .cuGraphNodeGetType + .as_ref() + .expect("Expected function, got error."))(hNode, type_) + } + pub unsafe fn cuGraphGetNodes( + &self, + hGraph: CUgraph, + nodes: *mut CUgraphNode, + numNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphGetNodes + .as_ref() + .expect("Expected function, got error."))(hGraph, nodes, numNodes) + } + pub unsafe fn cuGraphGetRootNodes( + &self, + hGraph: CUgraph, + rootNodes: *mut CUgraphNode, + numRootNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphGetRootNodes + .as_ref() + .expect("Expected function, got error."))(hGraph, rootNodes, numRootNodes) + } + pub unsafe fn cuGraphGetEdges( + &self, + hGraph: CUgraph, + from: *mut CUgraphNode, + to: *mut CUgraphNode, + numEdges: *mut usize, + ) -> CUresult { + (self + .cuGraphGetEdges + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numEdges) + } + pub unsafe fn cuGraphNodeGetDependencies( + &self, + hNode: CUgraphNode, + dependencies: *mut CUgraphNode, + numDependencies: *mut usize, + ) -> CUresult { + (self + .cuGraphNodeGetDependencies + .as_ref() + .expect("Expected function, got error."))(hNode, dependencies, numDependencies) + } + pub unsafe fn cuGraphNodeGetDependentNodes( + &self, + hNode: CUgraphNode, + dependentNodes: *mut CUgraphNode, + numDependentNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphNodeGetDependentNodes + .as_ref() + .expect("Expected function, got error."))( + hNode, dependentNodes, numDependentNodes + ) + } + pub unsafe fn cuGraphAddDependencies( + &self, + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphAddDependencies + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numDependencies) + } + pub unsafe fn cuGraphRemoveDependencies( + &self, + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphRemoveDependencies + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numDependencies) + } + pub unsafe fn cuGraphDestroyNode(&self, hNode: CUgraphNode) -> CUresult { + (self + .cuGraphDestroyNode + .as_ref() + .expect("Expected function, got error."))(hNode) + } + pub unsafe fn cuGraphInstantiate_v2( + &self, + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + phErrorNode: *mut CUgraphNode, + logBuffer: *mut ::core::ffi::c_char, + bufferSize: usize, + ) -> CUresult { + (self + .cuGraphInstantiate_v2 + .as_ref() + .expect("Expected function, got error."))( + phGraphExec, + hGraph, + phErrorNode, + logBuffer, + bufferSize, + ) + } + pub unsafe fn cuGraphInstantiateWithFlags( + &self, + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuGraphInstantiateWithFlags + .as_ref() + .expect("Expected function, got error."))(phGraphExec, hGraph, flags) + } + pub unsafe fn cuGraphExecKernelNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecKernelNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecMemcpyNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphExecMemcpyNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, copyParams, ctx) + } + pub unsafe fn cuGraphExecMemsetNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphExecMemsetNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, memsetParams, ctx) + } + pub unsafe fn cuGraphExecHostNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecHostNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecChildGraphNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + childGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphExecChildGraphNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, childGraph) + } + pub unsafe fn cuGraphExecEventRecordNodeSetEvent( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphExecEventRecordNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, event) + } + pub unsafe fn cuGraphExecEventWaitNodeSetEvent( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphExecEventWaitNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, event) + } + pub unsafe fn cuGraphExecExternalSemaphoresSignalNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecExternalSemaphoresSignalNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecExternalSemaphoresWaitNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecExternalSemaphoresWaitNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphUpload(&self, hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult { + (self + .cuGraphUpload + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hStream) + } + pub unsafe fn cuGraphLaunch(&self, hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult { + (self + .cuGraphLaunch + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hStream) + } + pub unsafe fn cuGraphExecDestroy(&self, hGraphExec: CUgraphExec) -> CUresult { + (self + .cuGraphExecDestroy + .as_ref() + .expect("Expected function, got error."))(hGraphExec) + } + pub unsafe fn cuGraphDestroy(&self, hGraph: CUgraph) -> CUresult { + (self + .cuGraphDestroy + .as_ref() + .expect("Expected function, got error."))(hGraph) + } + pub unsafe fn cuGraphExecUpdate( + &self, + hGraphExec: CUgraphExec, + hGraph: CUgraph, + hErrorNode_out: *mut CUgraphNode, + updateResult_out: *mut CUgraphExecUpdateResult, + ) -> CUresult { + (self + .cuGraphExecUpdate + .as_ref() + .expect("Expected function, got error."))( + hGraphExec, + hGraph, + hErrorNode_out, + updateResult_out, + ) + } + pub unsafe fn cuGraphKernelNodeCopyAttributes( + &self, + dst: CUgraphNode, + src: CUgraphNode, + ) -> CUresult { + (self + .cuGraphKernelNodeCopyAttributes + .as_ref() + .expect("Expected function, got error."))(dst, src) + } + pub unsafe fn cuGraphKernelNodeGetAttribute( + &self, + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value_out: *mut CUkernelNodeAttrValue, + ) -> CUresult { + (self + .cuGraphKernelNodeGetAttribute + .as_ref() + .expect("Expected function, got error."))(hNode, attr, value_out) + } + pub unsafe fn cuGraphKernelNodeSetAttribute( + &self, + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value: *const CUkernelNodeAttrValue, + ) -> CUresult { + (self + .cuGraphKernelNodeSetAttribute + .as_ref() + .expect("Expected function, got error."))(hNode, attr, value) + } + pub unsafe fn cuGraphDebugDotPrint( + &self, + hGraph: CUgraph, + path: *const ::core::ffi::c_char, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphDebugDotPrint + .as_ref() + .expect("Expected function, got error."))(hGraph, path, flags) + } + pub unsafe fn cuUserObjectCreate( + &self, + object_out: *mut CUuserObject, + ptr: *mut ::core::ffi::c_void, + destroy: CUhostFn, + initialRefcount: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectCreate + .as_ref() + .expect("Expected function, got error."))( + object_out, + ptr, + destroy, + initialRefcount, + flags, + ) + } + pub unsafe fn cuUserObjectRetain( + &self, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectRetain + .as_ref() + .expect("Expected function, got error."))(object, count) + } + pub unsafe fn cuUserObjectRelease( + &self, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectRelease + .as_ref() + .expect("Expected function, got error."))(object, count) + } + pub unsafe fn cuGraphRetainUserObject( + &self, + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphRetainUserObject + .as_ref() + .expect("Expected function, got error."))(graph, object, count, flags) + } + pub unsafe fn cuGraphReleaseUserObject( + &self, + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphReleaseUserObject + .as_ref() + .expect("Expected function, got error."))(graph, object, count) + } + pub unsafe fn cuOccupancyMaxActiveBlocksPerMultiprocessor( + &self, + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + ) -> CUresult { + (self + .cuOccupancyMaxActiveBlocksPerMultiprocessor + .as_ref() + .expect("Expected function, got error."))( + numBlocks, func, blockSize, dynamicSMemSize + ) + } + pub unsafe fn cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &self, + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags + .as_ref() + .expect("Expected function, got error."))( + numBlocks, + func, + blockSize, + dynamicSMemSize, + flags, + ) + } + pub unsafe fn cuOccupancyMaxPotentialBlockSize( + &self, + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuOccupancyMaxPotentialBlockSize + .as_ref() + .expect("Expected function, got error."))( + minGridSize, + blockSize, + func, + blockSizeToDynamicSMemSize, + dynamicSMemSize, + blockSizeLimit, + ) + } + pub unsafe fn cuOccupancyMaxPotentialBlockSizeWithFlags( + &self, + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuOccupancyMaxPotentialBlockSizeWithFlags + .as_ref() + .expect("Expected function, got error."))( + minGridSize, + blockSize, + func, + blockSizeToDynamicSMemSize, + dynamicSMemSize, + blockSizeLimit, + flags, + ) + } + pub unsafe fn cuOccupancyAvailableDynamicSMemPerBlock( + &self, + dynamicSmemSize: *mut usize, + func: CUfunction, + numBlocks: ::core::ffi::c_int, + blockSize: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuOccupancyAvailableDynamicSMemPerBlock + .as_ref() + .expect("Expected function, got error."))( + dynamicSmemSize, func, numBlocks, blockSize + ) + } + pub unsafe fn cuTexRefSetArray( + &self, + hTexRef: CUtexref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetArray + .as_ref() + .expect("Expected function, got error."))(hTexRef, hArray, Flags) + } + pub unsafe fn cuTexRefSetMipmappedArray( + &self, + hTexRef: CUtexref, + hMipmappedArray: CUmipmappedArray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetMipmappedArray + .as_ref() + .expect("Expected function, got error."))(hTexRef, hMipmappedArray, Flags) + } + pub unsafe fn cuTexRefSetAddress_v2( + &self, + ByteOffset: *mut usize, + hTexRef: CUtexref, + dptr: CUdeviceptr, + bytes: usize, + ) -> CUresult { + (self + .cuTexRefSetAddress_v2 + .as_ref() + .expect("Expected function, got error."))(ByteOffset, hTexRef, dptr, bytes) + } + pub unsafe fn cuTexRefSetAddress2D_v3( + &self, + hTexRef: CUtexref, + desc: *const CUDA_ARRAY_DESCRIPTOR, + dptr: CUdeviceptr, + Pitch: usize, + ) -> CUresult { + (self + .cuTexRefSetAddress2D_v3 + .as_ref() + .expect("Expected function, got error."))(hTexRef, desc, dptr, Pitch) + } + pub unsafe fn cuTexRefSetFormat( + &self, + hTexRef: CUtexref, + fmt: CUarray_format, + NumPackedComponents: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuTexRefSetFormat + .as_ref() + .expect("Expected function, got error."))(hTexRef, fmt, NumPackedComponents) + } + pub unsafe fn cuTexRefSetAddressMode( + &self, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + am: CUaddress_mode, + ) -> CUresult { + (self + .cuTexRefSetAddressMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, dim, am) + } + pub unsafe fn cuTexRefSetFilterMode(&self, hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult { + (self + .cuTexRefSetFilterMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, fm) + } + pub unsafe fn cuTexRefSetMipmapFilterMode( + &self, + hTexRef: CUtexref, + fm: CUfilter_mode, + ) -> CUresult { + (self + .cuTexRefSetMipmapFilterMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, fm) + } + pub unsafe fn cuTexRefSetMipmapLevelBias(&self, hTexRef: CUtexref, bias: f32) -> CUresult { + (self + .cuTexRefSetMipmapLevelBias + .as_ref() + .expect("Expected function, got error."))(hTexRef, bias) + } + pub unsafe fn cuTexRefSetMipmapLevelClamp( + &self, + hTexRef: CUtexref, + minMipmapLevelClamp: f32, + maxMipmapLevelClamp: f32, + ) -> CUresult { + (self + .cuTexRefSetMipmapLevelClamp + .as_ref() + .expect("Expected function, got error."))( + hTexRef, + minMipmapLevelClamp, + maxMipmapLevelClamp, + ) + } + pub unsafe fn cuTexRefSetMaxAnisotropy( + &self, + hTexRef: CUtexref, + maxAniso: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetMaxAnisotropy + .as_ref() + .expect("Expected function, got error."))(hTexRef, maxAniso) + } + pub unsafe fn cuTexRefSetBorderColor( + &self, + hTexRef: CUtexref, + pBorderColor: *mut f32, + ) -> CUresult { + (self + .cuTexRefSetBorderColor + .as_ref() + .expect("Expected function, got error."))(hTexRef, pBorderColor) + } + pub unsafe fn cuTexRefSetFlags( + &self, + hTexRef: CUtexref, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetFlags + .as_ref() + .expect("Expected function, got error."))(hTexRef, Flags) + } + pub unsafe fn cuTexRefGetAddress_v2( + &self, + pdptr: *mut CUdeviceptr, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetAddress_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, hTexRef) + } + pub unsafe fn cuTexRefGetArray(&self, phArray: *mut CUarray, hTexRef: CUtexref) -> CUresult { + (self + .cuTexRefGetArray + .as_ref() + .expect("Expected function, got error."))(phArray, hTexRef) + } + pub unsafe fn cuTexRefGetMipmappedArray( + &self, + phMipmappedArray: *mut CUmipmappedArray, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmappedArray + .as_ref() + .expect("Expected function, got error."))(phMipmappedArray, hTexRef) + } + pub unsafe fn cuTexRefGetAddressMode( + &self, + pam: *mut CUaddress_mode, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuTexRefGetAddressMode + .as_ref() + .expect("Expected function, got error."))(pam, hTexRef, dim) + } + pub unsafe fn cuTexRefGetFilterMode( + &self, + pfm: *mut CUfilter_mode, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFilterMode + .as_ref() + .expect("Expected function, got error."))(pfm, hTexRef) + } + pub unsafe fn cuTexRefGetFormat( + &self, + pFormat: *mut CUarray_format, + pNumChannels: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFormat + .as_ref() + .expect("Expected function, got error."))(pFormat, pNumChannels, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapFilterMode( + &self, + pfm: *mut CUfilter_mode, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapFilterMode + .as_ref() + .expect("Expected function, got error."))(pfm, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapLevelBias( + &self, + pbias: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapLevelBias + .as_ref() + .expect("Expected function, got error."))(pbias, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapLevelClamp( + &self, + pminMipmapLevelClamp: *mut f32, + pmaxMipmapLevelClamp: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapLevelClamp + .as_ref() + .expect("Expected function, got error."))( + pminMipmapLevelClamp, + pmaxMipmapLevelClamp, + hTexRef, + ) + } + pub unsafe fn cuTexRefGetMaxAnisotropy( + &self, + pmaxAniso: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMaxAnisotropy + .as_ref() + .expect("Expected function, got error."))(pmaxAniso, hTexRef) + } + pub unsafe fn cuTexRefGetBorderColor( + &self, + pBorderColor: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetBorderColor + .as_ref() + .expect("Expected function, got error."))(pBorderColor, hTexRef) + } + pub unsafe fn cuTexRefGetFlags( + &self, + pFlags: *mut ::core::ffi::c_uint, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFlags + .as_ref() + .expect("Expected function, got error."))(pFlags, hTexRef) + } + pub unsafe fn cuTexRefCreate(&self, pTexRef: *mut CUtexref) -> CUresult { + (self + .cuTexRefCreate + .as_ref() + .expect("Expected function, got error."))(pTexRef) + } + pub unsafe fn cuTexRefDestroy(&self, hTexRef: CUtexref) -> CUresult { + (self + .cuTexRefDestroy + .as_ref() + .expect("Expected function, got error."))(hTexRef) + } + pub unsafe fn cuSurfRefSetArray( + &self, + hSurfRef: CUsurfref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuSurfRefSetArray + .as_ref() + .expect("Expected function, got error."))(hSurfRef, hArray, Flags) + } + pub unsafe fn cuSurfRefGetArray(&self, phArray: *mut CUarray, hSurfRef: CUsurfref) -> CUresult { + (self + .cuSurfRefGetArray + .as_ref() + .expect("Expected function, got error."))(phArray, hSurfRef) + } + pub unsafe fn cuTexObjectCreate( + &self, + pTexObject: *mut CUtexObject, + pResDesc: *const CUDA_RESOURCE_DESC, + pTexDesc: *const CUDA_TEXTURE_DESC, + pResViewDesc: *const CUDA_RESOURCE_VIEW_DESC, + ) -> CUresult { + (self + .cuTexObjectCreate + .as_ref() + .expect("Expected function, got error."))( + pTexObject, pResDesc, pTexDesc, pResViewDesc + ) + } + pub unsafe fn cuTexObjectDestroy(&self, texObject: CUtexObject) -> CUresult { + (self + .cuTexObjectDestroy + .as_ref() + .expect("Expected function, got error."))(texObject) + } + pub unsafe fn cuTexObjectGetResourceDesc( + &self, + pResDesc: *mut CUDA_RESOURCE_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetResourceDesc + .as_ref() + .expect("Expected function, got error."))(pResDesc, texObject) + } + pub unsafe fn cuTexObjectGetTextureDesc( + &self, + pTexDesc: *mut CUDA_TEXTURE_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetTextureDesc + .as_ref() + .expect("Expected function, got error."))(pTexDesc, texObject) + } + pub unsafe fn cuTexObjectGetResourceViewDesc( + &self, + pResViewDesc: *mut CUDA_RESOURCE_VIEW_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetResourceViewDesc + .as_ref() + .expect("Expected function, got error."))(pResViewDesc, texObject) + } + pub unsafe fn cuSurfObjectCreate( + &self, + pSurfObject: *mut CUsurfObject, + pResDesc: *const CUDA_RESOURCE_DESC, + ) -> CUresult { + (self + .cuSurfObjectCreate + .as_ref() + .expect("Expected function, got error."))(pSurfObject, pResDesc) + } + pub unsafe fn cuSurfObjectDestroy(&self, surfObject: CUsurfObject) -> CUresult { + (self + .cuSurfObjectDestroy + .as_ref() + .expect("Expected function, got error."))(surfObject) + } + pub unsafe fn cuSurfObjectGetResourceDesc( + &self, + pResDesc: *mut CUDA_RESOURCE_DESC, + surfObject: CUsurfObject, + ) -> CUresult { + (self + .cuSurfObjectGetResourceDesc + .as_ref() + .expect("Expected function, got error."))(pResDesc, surfObject) + } + pub unsafe fn cuDeviceCanAccessPeer( + &self, + canAccessPeer: *mut ::core::ffi::c_int, + dev: CUdevice, + peerDev: CUdevice, + ) -> CUresult { + (self + .cuDeviceCanAccessPeer + .as_ref() + .expect("Expected function, got error."))(canAccessPeer, dev, peerDev) + } + pub unsafe fn cuCtxEnablePeerAccess( + &self, + peerContext: CUcontext, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuCtxEnablePeerAccess + .as_ref() + .expect("Expected function, got error."))(peerContext, Flags) + } + pub unsafe fn cuCtxDisablePeerAccess(&self, peerContext: CUcontext) -> CUresult { + (self + .cuCtxDisablePeerAccess + .as_ref() + .expect("Expected function, got error."))(peerContext) + } + pub unsafe fn cuDeviceGetP2PAttribute( + &self, + value: *mut ::core::ffi::c_int, + attrib: CUdevice_P2PAttribute, + srcDevice: CUdevice, + dstDevice: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetP2PAttribute + .as_ref() + .expect("Expected function, got error."))(value, attrib, srcDevice, dstDevice) + } + pub unsafe fn cuGraphicsUnregisterResource(&self, resource: CUgraphicsResource) -> CUresult { + (self + .cuGraphicsUnregisterResource + .as_ref() + .expect("Expected function, got error."))(resource) + } + pub unsafe fn cuGraphicsSubResourceGetMappedArray( + &self, + pArray: *mut CUarray, + resource: CUgraphicsResource, + arrayIndex: ::core::ffi::c_uint, + mipLevel: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphicsSubResourceGetMappedArray + .as_ref() + .expect("Expected function, got error."))(pArray, resource, arrayIndex, mipLevel) + } + pub unsafe fn cuGraphicsResourceGetMappedMipmappedArray( + &self, + pMipmappedArray: *mut CUmipmappedArray, + resource: CUgraphicsResource, + ) -> CUresult { + (self + .cuGraphicsResourceGetMappedMipmappedArray + .as_ref() + .expect("Expected function, got error."))(pMipmappedArray, resource) + } + pub unsafe fn cuGraphicsResourceGetMappedPointer_v2( + &self, + pDevPtr: *mut CUdeviceptr, + pSize: *mut usize, + resource: CUgraphicsResource, + ) -> CUresult { + (self + .cuGraphicsResourceGetMappedPointer_v2 + .as_ref() + .expect("Expected function, got error."))(pDevPtr, pSize, resource) + } + pub unsafe fn cuGraphicsResourceSetMapFlags_v2( + &self, + resource: CUgraphicsResource, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphicsResourceSetMapFlags_v2 + .as_ref() + .expect("Expected function, got error."))(resource, flags) + } + pub unsafe fn cuGraphicsMapResources( + &self, + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult { + (self + .cuGraphicsMapResources + .as_ref() + .expect("Expected function, got error."))(count, resources, hStream) + } + pub unsafe fn cuGraphicsUnmapResources( + &self, + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult { + (self + .cuGraphicsUnmapResources + .as_ref() + .expect("Expected function, got error."))(count, resources, hStream) + } + pub unsafe fn cuGetProcAddress( + &self, + symbol: *const ::core::ffi::c_char, + pfn: *mut *mut ::core::ffi::c_void, + cudaVersion: ::core::ffi::c_int, + flags: cuuint64_t, + ) -> CUresult { + (self + .cuGetProcAddress + .as_ref() + .expect("Expected function, got error."))(symbol, pfn, cudaVersion, flags) + } + pub unsafe fn cuGetExportTable( + &self, + ppExportTable: *mut *const ::core::ffi::c_void, + pExportTableId: *const CUuuid, + ) -> CUresult { + (self + .cuGetExportTable + .as_ref() + .expect("Expected function, got error."))(ppExportTable, pExportTableId) + } + pub unsafe fn cuProfilerInitialize( + &self, + configFile: *const ::core::ffi::c_char, + outputFile: *const ::core::ffi::c_char, + outputMode: CUoutput_mode, + ) -> CUresult { + (self + .cuProfilerInitialize + .as_ref() + .expect("Expected function, got error."))(configFile, outputFile, outputMode) + } + pub unsafe fn cuProfilerStart(&self) -> CUresult { + (self + .cuProfilerStart + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuProfilerStop(&self) -> CUresult { + (self + .cuProfilerStop + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/driver/sys/sys_11060.rs b/src/driver/sys/sys_11060.rs new file mode 100644 index 00000000..7421b2c5 --- /dev/null +++ b/src/driver/sys/sys_11060.rs @@ -0,0 +1,13836 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +pub const CU_IPC_HANDLE_SIZE: u32 = 64; +pub const CU_MEMHOSTALLOC_PORTABLE: u32 = 1; +pub const CU_MEMHOSTALLOC_DEVICEMAP: u32 = 2; +pub const CU_MEMHOSTALLOC_WRITECOMBINED: u32 = 4; +pub const CU_MEMHOSTREGISTER_PORTABLE: u32 = 1; +pub const CU_MEMHOSTREGISTER_DEVICEMAP: u32 = 2; +pub const CU_MEMHOSTREGISTER_IOMEMORY: u32 = 4; +pub const CU_MEMHOSTREGISTER_READ_ONLY: u32 = 8; +pub const CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL: u32 = 1; +pub const CUDA_EXTERNAL_MEMORY_DEDICATED: u32 = 1; +pub const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC: u32 = 1; +pub const CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC: u32 = 2; +pub const CUDA_NVSCISYNC_ATTR_SIGNAL: u32 = 1; +pub const CUDA_NVSCISYNC_ATTR_WAIT: u32 = 2; +pub const CU_MEM_CREATE_USAGE_TILE_POOL: u32 = 1; +pub const CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC: u32 = 1; +pub const CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC: u32 = 2; +pub const CUDA_ARRAY3D_LAYERED: u32 = 1; +pub const CUDA_ARRAY3D_2DARRAY: u32 = 1; +pub const CUDA_ARRAY3D_SURFACE_LDST: u32 = 2; +pub const CUDA_ARRAY3D_CUBEMAP: u32 = 4; +pub const CUDA_ARRAY3D_TEXTURE_GATHER: u32 = 8; +pub const CUDA_ARRAY3D_DEPTH_TEXTURE: u32 = 16; +pub const CUDA_ARRAY3D_COLOR_ATTACHMENT: u32 = 32; +pub const CUDA_ARRAY3D_SPARSE: u32 = 64; +pub const CUDA_ARRAY3D_DEFERRED_MAPPING: u32 = 128; +pub const CU_TRSA_OVERRIDE_FORMAT: u32 = 1; +pub const CU_TRSF_READ_AS_INTEGER: u32 = 1; +pub const CU_TRSF_NORMALIZED_COORDINATES: u32 = 2; +pub const CU_TRSF_SRGB: u32 = 16; +pub const CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION: u32 = 32; +pub const CU_TRSF_SEAMLESS_CUBEMAP: u32 = 64; +pub const CU_PARAM_TR_DEFAULT: i32 = -1; +pub type cuuint32_t = u32; +pub type cuuint64_t = u64; +pub type CUdeviceptr_v2 = ::core::ffi::c_ulonglong; +pub type CUdeviceptr = CUdeviceptr_v2; +pub type CUdevice_v1 = ::core::ffi::c_int; +pub type CUdevice = CUdevice_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUctx_st { + _unused: [u8; 0], +} +pub type CUcontext = *mut CUctx_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmod_st { + _unused: [u8; 0], +} +pub type CUmodule = *mut CUmod_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUfunc_st { + _unused: [u8; 0], +} +pub type CUfunction = *mut CUfunc_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUarray_st { + _unused: [u8; 0], +} +pub type CUarray = *mut CUarray_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmipmappedArray_st { + _unused: [u8; 0], +} +pub type CUmipmappedArray = *mut CUmipmappedArray_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUtexref_st { + _unused: [u8; 0], +} +pub type CUtexref = *mut CUtexref_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUsurfref_st { + _unused: [u8; 0], +} +pub type CUsurfref = *mut CUsurfref_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUevent_st { + _unused: [u8; 0], +} +pub type CUevent = *mut CUevent_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type CUstream = *mut CUstream_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphicsResource_st { + _unused: [u8; 0], +} +pub type CUgraphicsResource = *mut CUgraphicsResource_st; +pub type CUtexObject_v1 = ::core::ffi::c_ulonglong; +pub type CUtexObject = CUtexObject_v1; +pub type CUsurfObject_v1 = ::core::ffi::c_ulonglong; +pub type CUsurfObject = CUsurfObject_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUextMemory_st { + _unused: [u8; 0], +} +pub type CUexternalMemory = *mut CUextMemory_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUextSemaphore_st { + _unused: [u8; 0], +} +pub type CUexternalSemaphore = *mut CUextSemaphore_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraph_st { + _unused: [u8; 0], +} +pub type CUgraph = *mut CUgraph_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphNode_st { + _unused: [u8; 0], +} +pub type CUgraphNode = *mut CUgraphNode_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUgraphExec_st { + _unused: [u8; 0], +} +pub type CUgraphExec = *mut CUgraphExec_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUmemPoolHandle_st { + _unused: [u8; 0], +} +pub type CUmemoryPool = *mut CUmemPoolHandle_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUuserObject_st { + _unused: [u8; 0], +} +pub type CUuserObject = *mut CUuserObject_st; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUuuid_st { + pub bytes: [::core::ffi::c_char; 16usize], +} +#[test] +fn bindgen_test_layout_CUuuid_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(CUuuid_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUuuid_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUuuid_st), + "::", + stringify!(bytes) + ) + ); +} +pub type CUuuid = CUuuid_st; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUipcEventHandle_st { + pub reserved: [::core::ffi::c_char; 64usize], +} +#[test] +fn bindgen_test_layout_CUipcEventHandle_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUipcEventHandle_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUipcEventHandle_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUipcEventHandle_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUipcEventHandle_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUipcEventHandle_v1 = CUipcEventHandle_st; +pub type CUipcEventHandle = CUipcEventHandle_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUipcMemHandle_st { + pub reserved: [::core::ffi::c_char; 64usize], +} +#[test] +fn bindgen_test_layout_CUipcMemHandle_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUipcMemHandle_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUipcMemHandle_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUipcMemHandle_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUipcMemHandle_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUipcMemHandle_v1 = CUipcMemHandle_st; +pub type CUipcMemHandle = CUipcMemHandle_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUipcMem_flags_enum { + CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS = 1, +} +pub use self::CUipcMem_flags_enum as CUipcMem_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAttach_flags_enum { + CU_MEM_ATTACH_GLOBAL = 1, + CU_MEM_ATTACH_HOST = 2, + CU_MEM_ATTACH_SINGLE = 4, +} +pub use self::CUmemAttach_flags_enum as CUmemAttach_flags; +impl CUctx_flags_enum { + pub const CU_CTX_BLOCKING_SYNC: CUctx_flags_enum = CUctx_flags_enum::CU_CTX_SCHED_BLOCKING_SYNC; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUctx_flags_enum { + CU_CTX_SCHED_AUTO = 0, + CU_CTX_SCHED_SPIN = 1, + CU_CTX_SCHED_YIELD = 2, + CU_CTX_SCHED_BLOCKING_SYNC = 4, + CU_CTX_SCHED_MASK = 7, + CU_CTX_MAP_HOST = 8, + CU_CTX_LMEM_RESIZE_TO_MAX = 16, + CU_CTX_FLAGS_MASK = 31, +} +pub use self::CUctx_flags_enum as CUctx_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstream_flags_enum { + CU_STREAM_DEFAULT = 0, + CU_STREAM_NON_BLOCKING = 1, +} +pub use self::CUstream_flags_enum as CUstream_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_flags_enum { + CU_EVENT_DEFAULT = 0, + CU_EVENT_BLOCKING_SYNC = 1, + CU_EVENT_DISABLE_TIMING = 2, + CU_EVENT_INTERPROCESS = 4, +} +pub use self::CUevent_flags_enum as CUevent_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_record_flags_enum { + CU_EVENT_RECORD_DEFAULT = 0, + CU_EVENT_RECORD_EXTERNAL = 1, +} +pub use self::CUevent_record_flags_enum as CUevent_record_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUevent_wait_flags_enum { + CU_EVENT_WAIT_DEFAULT = 0, + CU_EVENT_WAIT_EXTERNAL = 1, +} +pub use self::CUevent_wait_flags_enum as CUevent_wait_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamWaitValue_flags_enum { + CU_STREAM_WAIT_VALUE_GEQ = 0, + CU_STREAM_WAIT_VALUE_EQ = 1, + CU_STREAM_WAIT_VALUE_AND = 2, + CU_STREAM_WAIT_VALUE_NOR = 3, + CU_STREAM_WAIT_VALUE_FLUSH = 1073741824, +} +pub use self::CUstreamWaitValue_flags_enum as CUstreamWaitValue_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamWriteValue_flags_enum { + CU_STREAM_WRITE_VALUE_DEFAULT = 0, + CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER = 1, +} +pub use self::CUstreamWriteValue_flags_enum as CUstreamWriteValue_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamBatchMemOpType_enum { + CU_STREAM_MEM_OP_WAIT_VALUE_32 = 1, + CU_STREAM_MEM_OP_WRITE_VALUE_32 = 2, + CU_STREAM_MEM_OP_WAIT_VALUE_64 = 4, + CU_STREAM_MEM_OP_WRITE_VALUE_64 = 5, + CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES = 3, +} +pub use self::CUstreamBatchMemOpType_enum as CUstreamBatchMemOpType; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union { + pub operation: CUstreamBatchMemOpType, + pub waitValue: CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st, + pub writeValue: CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st, + pub flushRemoteWrites: CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + pub pad: [cuuint64_t; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st { + pub operation: CUstreamBatchMemOpType, + pub address: CUdeviceptr, + pub __bindgen_anon_1: + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub alias: CUdeviceptr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 { + pub value: cuuint32_t, + pub value64: cuuint64_t, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1( +) { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Size of: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Alignment of ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value64) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value64) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(address) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).alias) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st), + "::", + stringify!(alias) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWaitValueParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st { + pub operation: CUstreamBatchMemOpType, + pub address: CUdeviceptr, + pub __bindgen_anon_1: + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub alias: CUdeviceptr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 { + pub value: cuuint32_t, + pub value64: cuuint64_t, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1( +) { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Size of: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1, + >(), + 8usize, + concat!( + "Alignment of ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value64) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!( + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 + ), + "::", + stringify!(value64) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(address) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).alias) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st), + "::", + stringify!(alias) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpWriteValueParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st { + pub operation: CUstreamBatchMemOpType, + pub flags: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st() { + const UNINIT: ::core::mem::MaybeUninit< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + >(), + 8usize, + concat!( + "Size of: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st) + ) + ); + assert_eq!( + ::core::mem::align_of::< + CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st, + >(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union_CUstreamMemOpFlushRemoteWritesParams_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUstreamBatchMemOpParams_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(CUstreamBatchMemOpParams_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUstreamBatchMemOpParams_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).waitValue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(waitValue) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).writeValue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(writeValue) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flushRemoteWrites) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(flushRemoteWrites) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamBatchMemOpParams_union), + "::", + stringify!(pad) + ) + ); +} +impl Default for CUstreamBatchMemOpParams_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUstreamBatchMemOpParams_v1 = CUstreamBatchMemOpParams_union; +pub type CUstreamBatchMemOpParams = CUstreamBatchMemOpParams_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUoccupancy_flags_enum { + CU_OCCUPANCY_DEFAULT = 0, + CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE = 1, +} +pub use self::CUoccupancy_flags_enum as CUoccupancy_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamUpdateCaptureDependencies_flags_enum { + CU_STREAM_ADD_CAPTURE_DEPENDENCIES = 0, + CU_STREAM_SET_CAPTURE_DEPENDENCIES = 1, +} +pub use self::CUstreamUpdateCaptureDependencies_flags_enum as CUstreamUpdateCaptureDependencies_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarray_format_enum { + CU_AD_FORMAT_UNSIGNED_INT8 = 1, + CU_AD_FORMAT_UNSIGNED_INT16 = 2, + CU_AD_FORMAT_UNSIGNED_INT32 = 3, + CU_AD_FORMAT_SIGNED_INT8 = 8, + CU_AD_FORMAT_SIGNED_INT16 = 9, + CU_AD_FORMAT_SIGNED_INT32 = 10, + CU_AD_FORMAT_HALF = 16, + CU_AD_FORMAT_FLOAT = 32, + CU_AD_FORMAT_NV12 = 176, + CU_AD_FORMAT_UNORM_INT8X1 = 192, + CU_AD_FORMAT_UNORM_INT8X2 = 193, + CU_AD_FORMAT_UNORM_INT8X4 = 194, + CU_AD_FORMAT_UNORM_INT16X1 = 195, + CU_AD_FORMAT_UNORM_INT16X2 = 196, + CU_AD_FORMAT_UNORM_INT16X4 = 197, + CU_AD_FORMAT_SNORM_INT8X1 = 198, + CU_AD_FORMAT_SNORM_INT8X2 = 199, + CU_AD_FORMAT_SNORM_INT8X4 = 200, + CU_AD_FORMAT_SNORM_INT16X1 = 201, + CU_AD_FORMAT_SNORM_INT16X2 = 202, + CU_AD_FORMAT_SNORM_INT16X4 = 203, + CU_AD_FORMAT_BC1_UNORM = 145, + CU_AD_FORMAT_BC1_UNORM_SRGB = 146, + CU_AD_FORMAT_BC2_UNORM = 147, + CU_AD_FORMAT_BC2_UNORM_SRGB = 148, + CU_AD_FORMAT_BC3_UNORM = 149, + CU_AD_FORMAT_BC3_UNORM_SRGB = 150, + CU_AD_FORMAT_BC4_UNORM = 151, + CU_AD_FORMAT_BC4_SNORM = 152, + CU_AD_FORMAT_BC5_UNORM = 153, + CU_AD_FORMAT_BC5_SNORM = 154, + CU_AD_FORMAT_BC6H_UF16 = 155, + CU_AD_FORMAT_BC6H_SF16 = 156, + CU_AD_FORMAT_BC7_UNORM = 157, + CU_AD_FORMAT_BC7_UNORM_SRGB = 158, +} +pub use self::CUarray_format_enum as CUarray_format; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUaddress_mode_enum { + CU_TR_ADDRESS_MODE_WRAP = 0, + CU_TR_ADDRESS_MODE_CLAMP = 1, + CU_TR_ADDRESS_MODE_MIRROR = 2, + CU_TR_ADDRESS_MODE_BORDER = 3, +} +pub use self::CUaddress_mode_enum as CUaddress_mode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfilter_mode_enum { + CU_TR_FILTER_MODE_POINT = 0, + CU_TR_FILTER_MODE_LINEAR = 1, +} +pub use self::CUfilter_mode_enum as CUfilter_mode; +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS; +} +impl CUdevice_attribute_enum { + pub const CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED: CUdevice_attribute_enum = + CUdevice_attribute_enum::CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdevice_attribute_enum { + CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = 3, + CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = 4, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = 5, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = 6, + CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = 7, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = 8, + CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9, + CU_DEVICE_ATTRIBUTE_WARP_SIZE = 10, + CU_DEVICE_ATTRIBUTE_MAX_PITCH = 11, + CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = 12, + CU_DEVICE_ATTRIBUTE_CLOCK_RATE = 13, + CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = 14, + CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = 15, + CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = 16, + CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = 17, + CU_DEVICE_ATTRIBUTE_INTEGRATED = 18, + CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = 19, + CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = 20, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = 21, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = 22, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = 23, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = 24, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = 25, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = 26, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = 27, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = 28, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = 29, + CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = 30, + CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31, + CU_DEVICE_ATTRIBUTE_ECC_ENABLED = 32, + CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = 33, + CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = 34, + CU_DEVICE_ATTRIBUTE_TCC_DRIVER = 35, + CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = 36, + CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = 37, + CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = 38, + CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39, + CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40, + CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = 41, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = 42, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = 43, + CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = 44, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = 45, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = 46, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = 47, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = 48, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = 49, + CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = 50, + CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = 51, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = 52, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = 53, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = 54, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = 55, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = 56, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = 57, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = 58, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = 59, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = 60, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = 61, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = 62, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = 63, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = 64, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = 65, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = 66, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = 67, + CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = 68, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = 69, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = 70, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = 71, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = 72, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = 73, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = 74, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = 75, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = 76, + CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = 77, + CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = 78, + CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = 79, + CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = 80, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = 81, + CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = 82, + CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = 83, + CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = 84, + CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = 85, + CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = 86, + CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = 87, + CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = 88, + CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = 89, + CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = 90, + CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = 91, + CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = 92, + CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = 93, + CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = 94, + CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = 95, + CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = 96, + CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = 97, + CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = 98, + CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = 99, + CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = 100, + CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = 101, + CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = 102, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = 103, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = 104, + CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = 105, + CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = 106, + CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = 107, + CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = 108, + CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = 109, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = 110, + CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = 111, + CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = 112, + CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = 113, + CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = 114, + CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = 115, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = 116, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = 117, + CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = 118, + CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = 119, + CU_DEVICE_ATTRIBUTE_DEFERRED_MAPPING_CUDA_ARRAY_SUPPORTED = 121, + CU_DEVICE_ATTRIBUTE_MAX = 122, +} +pub use self::CUdevice_attribute_enum as CUdevice_attribute; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUdevprop_st { + pub maxThreadsPerBlock: ::core::ffi::c_int, + pub maxThreadsDim: [::core::ffi::c_int; 3usize], + pub maxGridSize: [::core::ffi::c_int; 3usize], + pub sharedMemPerBlock: ::core::ffi::c_int, + pub totalConstantMemory: ::core::ffi::c_int, + pub SIMDWidth: ::core::ffi::c_int, + pub memPitch: ::core::ffi::c_int, + pub regsPerBlock: ::core::ffi::c_int, + pub clockRate: ::core::ffi::c_int, + pub textureAlign: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUdevprop_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUdevprop_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUdevprop_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxThreadsPerBlock) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxThreadsPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxThreadsDim) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxThreadsDim) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxGridSize) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(maxGridSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemPerBlock) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(sharedMemPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).totalConstantMemory) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(totalConstantMemory) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).SIMDWidth) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(SIMDWidth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memPitch) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(memPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).regsPerBlock) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(regsPerBlock) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).clockRate) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(clockRate) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).textureAlign) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(CUdevprop_st), + "::", + stringify!(textureAlign) + ) + ); +} +pub type CUdevprop_v1 = CUdevprop_st; +pub type CUdevprop = CUdevprop_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUpointer_attribute_enum { + CU_POINTER_ATTRIBUTE_CONTEXT = 1, + CU_POINTER_ATTRIBUTE_MEMORY_TYPE = 2, + CU_POINTER_ATTRIBUTE_DEVICE_POINTER = 3, + CU_POINTER_ATTRIBUTE_HOST_POINTER = 4, + CU_POINTER_ATTRIBUTE_P2P_TOKENS = 5, + CU_POINTER_ATTRIBUTE_SYNC_MEMOPS = 6, + CU_POINTER_ATTRIBUTE_BUFFER_ID = 7, + CU_POINTER_ATTRIBUTE_IS_MANAGED = 8, + CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL = 9, + CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE = 10, + CU_POINTER_ATTRIBUTE_RANGE_START_ADDR = 11, + CU_POINTER_ATTRIBUTE_RANGE_SIZE = 12, + CU_POINTER_ATTRIBUTE_MAPPED = 13, + CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = 14, + CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = 15, + CU_POINTER_ATTRIBUTE_ACCESS_FLAGS = 16, + CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17, +} +pub use self::CUpointer_attribute_enum as CUpointer_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfunction_attribute_enum { + CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0, + CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1, + CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2, + CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3, + CU_FUNC_ATTRIBUTE_NUM_REGS = 4, + CU_FUNC_ATTRIBUTE_PTX_VERSION = 5, + CU_FUNC_ATTRIBUTE_BINARY_VERSION = 6, + CU_FUNC_ATTRIBUTE_CACHE_MODE_CA = 7, + CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = 8, + CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 9, + CU_FUNC_ATTRIBUTE_MAX = 10, +} +pub use self::CUfunction_attribute_enum as CUfunction_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUfunc_cache_enum { + CU_FUNC_CACHE_PREFER_NONE = 0, + CU_FUNC_CACHE_PREFER_SHARED = 1, + CU_FUNC_CACHE_PREFER_L1 = 2, + CU_FUNC_CACHE_PREFER_EQUAL = 3, +} +pub use self::CUfunc_cache_enum as CUfunc_cache; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUsharedconfig_enum { + CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE = 0, + CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE = 1, + CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE = 2, +} +pub use self::CUsharedconfig_enum as CUsharedconfig; +#[repr(i32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUshared_carveout_enum { + CU_SHAREDMEM_CARVEOUT_DEFAULT = -1, + CU_SHAREDMEM_CARVEOUT_MAX_SHARED = 100, + CU_SHAREDMEM_CARVEOUT_MAX_L1 = 0, +} +pub use self::CUshared_carveout_enum as CUshared_carveout; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemorytype_enum { + CU_MEMORYTYPE_HOST = 1, + CU_MEMORYTYPE_DEVICE = 2, + CU_MEMORYTYPE_ARRAY = 3, + CU_MEMORYTYPE_UNIFIED = 4, +} +pub use self::CUmemorytype_enum as CUmemorytype; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUcomputemode_enum { + CU_COMPUTEMODE_DEFAULT = 0, + CU_COMPUTEMODE_PROHIBITED = 2, + CU_COMPUTEMODE_EXCLUSIVE_PROCESS = 3, +} +pub use self::CUcomputemode_enum as CUcomputemode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmem_advise_enum { + CU_MEM_ADVISE_SET_READ_MOSTLY = 1, + CU_MEM_ADVISE_UNSET_READ_MOSTLY = 2, + CU_MEM_ADVISE_SET_PREFERRED_LOCATION = 3, + CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION = 4, + CU_MEM_ADVISE_SET_ACCESSED_BY = 5, + CU_MEM_ADVISE_UNSET_ACCESSED_BY = 6, +} +pub use self::CUmem_advise_enum as CUmem_advise; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmem_range_attribute_enum { + CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY = 1, + CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION = 2, + CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY = 3, + CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION = 4, +} +pub use self::CUmem_range_attribute_enum as CUmem_range_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_option_enum { + CU_JIT_MAX_REGISTERS = 0, + CU_JIT_THREADS_PER_BLOCK = 1, + CU_JIT_WALL_TIME = 2, + CU_JIT_INFO_LOG_BUFFER = 3, + CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = 4, + CU_JIT_ERROR_LOG_BUFFER = 5, + CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = 6, + CU_JIT_OPTIMIZATION_LEVEL = 7, + CU_JIT_TARGET_FROM_CUCONTEXT = 8, + CU_JIT_TARGET = 9, + CU_JIT_FALLBACK_STRATEGY = 10, + CU_JIT_GENERATE_DEBUG_INFO = 11, + CU_JIT_LOG_VERBOSE = 12, + CU_JIT_GENERATE_LINE_INFO = 13, + CU_JIT_CACHE_MODE = 14, + CU_JIT_NEW_SM3X_OPT = 15, + CU_JIT_FAST_COMPILE = 16, + CU_JIT_GLOBAL_SYMBOL_NAMES = 17, + CU_JIT_GLOBAL_SYMBOL_ADDRESSES = 18, + CU_JIT_GLOBAL_SYMBOL_COUNT = 19, + CU_JIT_LTO = 20, + CU_JIT_FTZ = 21, + CU_JIT_PREC_DIV = 22, + CU_JIT_PREC_SQRT = 23, + CU_JIT_FMA = 24, + CU_JIT_NUM_OPTIONS = 25, +} +pub use self::CUjit_option_enum as CUjit_option; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_target_enum { + CU_TARGET_COMPUTE_20 = 20, + CU_TARGET_COMPUTE_21 = 21, + CU_TARGET_COMPUTE_30 = 30, + CU_TARGET_COMPUTE_32 = 32, + CU_TARGET_COMPUTE_35 = 35, + CU_TARGET_COMPUTE_37 = 37, + CU_TARGET_COMPUTE_50 = 50, + CU_TARGET_COMPUTE_52 = 52, + CU_TARGET_COMPUTE_53 = 53, + CU_TARGET_COMPUTE_60 = 60, + CU_TARGET_COMPUTE_61 = 61, + CU_TARGET_COMPUTE_62 = 62, + CU_TARGET_COMPUTE_70 = 70, + CU_TARGET_COMPUTE_72 = 72, + CU_TARGET_COMPUTE_75 = 75, + CU_TARGET_COMPUTE_80 = 80, + CU_TARGET_COMPUTE_86 = 86, +} +pub use self::CUjit_target_enum as CUjit_target; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_fallback_enum { + CU_PREFER_PTX = 0, + CU_PREFER_BINARY = 1, +} +pub use self::CUjit_fallback_enum as CUjit_fallback; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjit_cacheMode_enum { + CU_JIT_CACHE_OPTION_NONE = 0, + CU_JIT_CACHE_OPTION_CG = 1, + CU_JIT_CACHE_OPTION_CA = 2, +} +pub use self::CUjit_cacheMode_enum as CUjit_cacheMode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUjitInputType_enum { + CU_JIT_INPUT_CUBIN = 0, + CU_JIT_INPUT_PTX = 1, + CU_JIT_INPUT_FATBINARY = 2, + CU_JIT_INPUT_OBJECT = 3, + CU_JIT_INPUT_LIBRARY = 4, + CU_JIT_INPUT_NVVM = 5, + CU_JIT_NUM_INPUT_TYPES = 6, +} +pub use self::CUjitInputType_enum as CUjitInputType; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUlinkState_st { + _unused: [u8; 0], +} +pub type CUlinkState = *mut CUlinkState_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphicsRegisterFlags_enum { + CU_GRAPHICS_REGISTER_FLAGS_NONE = 0, + CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = 1, + CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD = 2, + CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST = 4, + CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER = 8, +} +pub use self::CUgraphicsRegisterFlags_enum as CUgraphicsRegisterFlags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphicsMapResourceFlags_enum { + CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE = 0, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY = 1, + CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD = 2, +} +pub use self::CUgraphicsMapResourceFlags_enum as CUgraphicsMapResourceFlags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarray_cubemap_face_enum { + CU_CUBEMAP_FACE_POSITIVE_X = 0, + CU_CUBEMAP_FACE_NEGATIVE_X = 1, + CU_CUBEMAP_FACE_POSITIVE_Y = 2, + CU_CUBEMAP_FACE_NEGATIVE_Y = 3, + CU_CUBEMAP_FACE_POSITIVE_Z = 4, + CU_CUBEMAP_FACE_NEGATIVE_Z = 5, +} +pub use self::CUarray_cubemap_face_enum as CUarray_cubemap_face; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUlimit_enum { + CU_LIMIT_STACK_SIZE = 0, + CU_LIMIT_PRINTF_FIFO_SIZE = 1, + CU_LIMIT_MALLOC_HEAP_SIZE = 2, + CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH = 3, + CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = 4, + CU_LIMIT_MAX_L2_FETCH_GRANULARITY = 5, + CU_LIMIT_PERSISTING_L2_CACHE_SIZE = 6, + CU_LIMIT_MAX = 7, +} +pub use self::CUlimit_enum as CUlimit; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUresourcetype_enum { + CU_RESOURCE_TYPE_ARRAY = 0, + CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = 1, + CU_RESOURCE_TYPE_LINEAR = 2, + CU_RESOURCE_TYPE_PITCH2D = 3, +} +pub use self::CUresourcetype_enum as CUresourcetype; +pub type CUhostFn = + ::core::option::Option; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUaccessProperty_enum { + CU_ACCESS_PROPERTY_NORMAL = 0, + CU_ACCESS_PROPERTY_STREAMING = 1, + CU_ACCESS_PROPERTY_PERSISTING = 2, +} +pub use self::CUaccessProperty_enum as CUaccessProperty; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct CUaccessPolicyWindow_st { + pub base_ptr: *mut ::core::ffi::c_void, + pub num_bytes: usize, + pub hitRatio: f32, + pub hitProp: CUaccessProperty, + pub missProp: CUaccessProperty, +} +#[test] +fn bindgen_test_layout_CUaccessPolicyWindow_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUaccessPolicyWindow_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUaccessPolicyWindow_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).base_ptr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(base_ptr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).num_bytes) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(num_bytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hitRatio) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(hitRatio) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hitProp) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(hitProp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).missProp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUaccessPolicyWindow_st), + "::", + stringify!(missProp) + ) + ); +} +impl Default for CUaccessPolicyWindow_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUaccessPolicyWindow_v1 = CUaccessPolicyWindow_st; +pub type CUaccessPolicyWindow = CUaccessPolicyWindow_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_KERNEL_NODE_PARAMS_st { + pub func: CUfunction, + pub gridDimX: ::core::ffi::c_uint, + pub gridDimY: ::core::ffi::c_uint, + pub gridDimZ: ::core::ffi::c_uint, + pub blockDimX: ::core::ffi::c_uint, + pub blockDimY: ::core::ffi::c_uint, + pub blockDimZ: ::core::ffi::c_uint, + pub sharedMemBytes: ::core::ffi::c_uint, + pub kernelParams: *mut *mut ::core::ffi::c_void, + pub extra: *mut *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_KERNEL_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUDA_KERNEL_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_KERNEL_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(gridDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimX) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimY) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimZ) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(blockDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(sharedMemBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).kernelParams) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(kernelParams) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extra) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_KERNEL_NODE_PARAMS_st), + "::", + stringify!(extra) + ) + ); +} +impl Default for CUDA_KERNEL_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_KERNEL_NODE_PARAMS_v1 = CUDA_KERNEL_NODE_PARAMS_st; +pub type CUDA_KERNEL_NODE_PARAMS = CUDA_KERNEL_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMSET_NODE_PARAMS_st { + pub dst: CUdeviceptr, + pub pitch: usize, + pub value: ::core::ffi::c_uint, + pub elementSize: ::core::ffi::c_uint, + pub width: usize, + pub height: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMSET_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(CUDA_MEMSET_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMSET_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dst) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(dst) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(pitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).elementSize) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(elementSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMSET_NODE_PARAMS_st), + "::", + stringify!(height) + ) + ); +} +pub type CUDA_MEMSET_NODE_PARAMS_v1 = CUDA_MEMSET_NODE_PARAMS_st; +pub type CUDA_MEMSET_NODE_PARAMS = CUDA_MEMSET_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_HOST_NODE_PARAMS_st { + pub fn_: CUhostFn, + pub userData: *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_HOST_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(CUDA_HOST_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_HOST_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fn_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_HOST_NODE_PARAMS_st), + "::", + stringify!(fn_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).userData) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_HOST_NODE_PARAMS_st), + "::", + stringify!(userData) + ) + ); +} +impl Default for CUDA_HOST_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_HOST_NODE_PARAMS_v1 = CUDA_HOST_NODE_PARAMS_st; +pub type CUDA_HOST_NODE_PARAMS = CUDA_HOST_NODE_PARAMS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphNodeType_enum { + CU_GRAPH_NODE_TYPE_KERNEL = 0, + CU_GRAPH_NODE_TYPE_MEMCPY = 1, + CU_GRAPH_NODE_TYPE_MEMSET = 2, + CU_GRAPH_NODE_TYPE_HOST = 3, + CU_GRAPH_NODE_TYPE_GRAPH = 4, + CU_GRAPH_NODE_TYPE_EMPTY = 5, + CU_GRAPH_NODE_TYPE_WAIT_EVENT = 6, + CU_GRAPH_NODE_TYPE_EVENT_RECORD = 7, + CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL = 8, + CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT = 9, + CU_GRAPH_NODE_TYPE_MEM_ALLOC = 10, + CU_GRAPH_NODE_TYPE_MEM_FREE = 11, +} +pub use self::CUgraphNodeType_enum as CUgraphNodeType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUsynchronizationPolicy_enum { + CU_SYNC_POLICY_AUTO = 1, + CU_SYNC_POLICY_SPIN = 2, + CU_SYNC_POLICY_YIELD = 3, + CU_SYNC_POLICY_BLOCKING_SYNC = 4, +} +pub use self::CUsynchronizationPolicy_enum as CUsynchronizationPolicy; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUkernelNodeAttrID_enum { + CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1, + CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2, +} +pub use self::CUkernelNodeAttrID_enum as CUkernelNodeAttrID; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUkernelNodeAttrValue_union { + pub accessPolicyWindow: CUaccessPolicyWindow, + pub cooperative: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUkernelNodeAttrValue_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUkernelNodeAttrValue_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUkernelNodeAttrValue_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessPolicyWindow) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUkernelNodeAttrValue_union), + "::", + stringify!(accessPolicyWindow) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).cooperative) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUkernelNodeAttrValue_union), + "::", + stringify!(cooperative) + ) + ); +} +impl Default for CUkernelNodeAttrValue_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUkernelNodeAttrValue_v1 = CUkernelNodeAttrValue_union; +pub type CUkernelNodeAttrValue = CUkernelNodeAttrValue_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamCaptureStatus_enum { + CU_STREAM_CAPTURE_STATUS_NONE = 0, + CU_STREAM_CAPTURE_STATUS_ACTIVE = 1, + CU_STREAM_CAPTURE_STATUS_INVALIDATED = 2, +} +pub use self::CUstreamCaptureStatus_enum as CUstreamCaptureStatus; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamCaptureMode_enum { + CU_STREAM_CAPTURE_MODE_GLOBAL = 0, + CU_STREAM_CAPTURE_MODE_THREAD_LOCAL = 1, + CU_STREAM_CAPTURE_MODE_RELAXED = 2, +} +pub use self::CUstreamCaptureMode_enum as CUstreamCaptureMode; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUstreamAttrID_enum { + CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1, + CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3, +} +pub use self::CUstreamAttrID_enum as CUstreamAttrID; +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUstreamAttrValue_union { + pub accessPolicyWindow: CUaccessPolicyWindow, + pub syncPolicy: CUsynchronizationPolicy, +} +#[test] +fn bindgen_test_layout_CUstreamAttrValue_union() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUstreamAttrValue_union)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUstreamAttrValue_union)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessPolicyWindow) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamAttrValue_union), + "::", + stringify!(accessPolicyWindow) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).syncPolicy) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUstreamAttrValue_union), + "::", + stringify!(syncPolicy) + ) + ); +} +impl Default for CUstreamAttrValue_union { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUstreamAttrValue_v1 = CUstreamAttrValue_union; +pub type CUstreamAttrValue = CUstreamAttrValue_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdriverProcAddress_flags_enum { + CU_GET_PROC_ADDRESS_DEFAULT = 0, + CU_GET_PROC_ADDRESS_LEGACY_STREAM = 1, + CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM = 2, +} +pub use self::CUdriverProcAddress_flags_enum as CUdriverProcAddress_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexecAffinityType_enum { + CU_EXEC_AFFINITY_TYPE_SM_COUNT = 0, + CU_EXEC_AFFINITY_TYPE_MAX = 1, +} +pub use self::CUexecAffinityType_enum as CUexecAffinityType; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUexecAffinitySmCount_st { + pub val: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUexecAffinitySmCount_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(CUexecAffinitySmCount_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUexecAffinitySmCount_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinitySmCount_st), + "::", + stringify!(val) + ) + ); +} +pub type CUexecAffinitySmCount_v1 = CUexecAffinitySmCount_st; +pub type CUexecAffinitySmCount = CUexecAffinitySmCount_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUexecAffinityParam_st { + pub type_: CUexecAffinityType, + pub param: CUexecAffinityParam_st__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUexecAffinityParam_st__bindgen_ty_1 { + pub smCount: CUexecAffinitySmCount, +} +#[test] +fn bindgen_test_layout_CUexecAffinityParam_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).smCount) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st__bindgen_ty_1), + "::", + stringify!(smCount) + ) + ); +} +impl Default for CUexecAffinityParam_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUexecAffinityParam_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUexecAffinityParam_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUexecAffinityParam_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).param) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUexecAffinityParam_st), + "::", + stringify!(param) + ) + ); +} +impl Default for CUexecAffinityParam_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUexecAffinityParam_v1 = CUexecAffinityParam_st; +pub type CUexecAffinityParam = CUexecAffinityParam_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum cudaError_enum { + CUDA_SUCCESS = 0, + CUDA_ERROR_INVALID_VALUE = 1, + CUDA_ERROR_OUT_OF_MEMORY = 2, + CUDA_ERROR_NOT_INITIALIZED = 3, + CUDA_ERROR_DEINITIALIZED = 4, + CUDA_ERROR_PROFILER_DISABLED = 5, + CUDA_ERROR_PROFILER_NOT_INITIALIZED = 6, + CUDA_ERROR_PROFILER_ALREADY_STARTED = 7, + CUDA_ERROR_PROFILER_ALREADY_STOPPED = 8, + CUDA_ERROR_STUB_LIBRARY = 34, + CUDA_ERROR_NO_DEVICE = 100, + CUDA_ERROR_INVALID_DEVICE = 101, + CUDA_ERROR_DEVICE_NOT_LICENSED = 102, + CUDA_ERROR_INVALID_IMAGE = 200, + CUDA_ERROR_INVALID_CONTEXT = 201, + CUDA_ERROR_CONTEXT_ALREADY_CURRENT = 202, + CUDA_ERROR_MAP_FAILED = 205, + CUDA_ERROR_UNMAP_FAILED = 206, + CUDA_ERROR_ARRAY_IS_MAPPED = 207, + CUDA_ERROR_ALREADY_MAPPED = 208, + CUDA_ERROR_NO_BINARY_FOR_GPU = 209, + CUDA_ERROR_ALREADY_ACQUIRED = 210, + CUDA_ERROR_NOT_MAPPED = 211, + CUDA_ERROR_NOT_MAPPED_AS_ARRAY = 212, + CUDA_ERROR_NOT_MAPPED_AS_POINTER = 213, + CUDA_ERROR_ECC_UNCORRECTABLE = 214, + CUDA_ERROR_UNSUPPORTED_LIMIT = 215, + CUDA_ERROR_CONTEXT_ALREADY_IN_USE = 216, + CUDA_ERROR_PEER_ACCESS_UNSUPPORTED = 217, + CUDA_ERROR_INVALID_PTX = 218, + CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = 219, + CUDA_ERROR_NVLINK_UNCORRECTABLE = 220, + CUDA_ERROR_JIT_COMPILER_NOT_FOUND = 221, + CUDA_ERROR_UNSUPPORTED_PTX_VERSION = 222, + CUDA_ERROR_JIT_COMPILATION_DISABLED = 223, + CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY = 224, + CUDA_ERROR_INVALID_SOURCE = 300, + CUDA_ERROR_FILE_NOT_FOUND = 301, + CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = 302, + CUDA_ERROR_SHARED_OBJECT_INIT_FAILED = 303, + CUDA_ERROR_OPERATING_SYSTEM = 304, + CUDA_ERROR_INVALID_HANDLE = 400, + CUDA_ERROR_ILLEGAL_STATE = 401, + CUDA_ERROR_NOT_FOUND = 500, + CUDA_ERROR_NOT_READY = 600, + CUDA_ERROR_ILLEGAL_ADDRESS = 700, + CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES = 701, + CUDA_ERROR_LAUNCH_TIMEOUT = 702, + CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING = 703, + CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED = 704, + CUDA_ERROR_PEER_ACCESS_NOT_ENABLED = 705, + CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE = 708, + CUDA_ERROR_CONTEXT_IS_DESTROYED = 709, + CUDA_ERROR_ASSERT = 710, + CUDA_ERROR_TOO_MANY_PEERS = 711, + CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED = 712, + CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED = 713, + CUDA_ERROR_HARDWARE_STACK_ERROR = 714, + CUDA_ERROR_ILLEGAL_INSTRUCTION = 715, + CUDA_ERROR_MISALIGNED_ADDRESS = 716, + CUDA_ERROR_INVALID_ADDRESS_SPACE = 717, + CUDA_ERROR_INVALID_PC = 718, + CUDA_ERROR_LAUNCH_FAILED = 719, + CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE = 720, + CUDA_ERROR_NOT_PERMITTED = 800, + CUDA_ERROR_NOT_SUPPORTED = 801, + CUDA_ERROR_SYSTEM_NOT_READY = 802, + CUDA_ERROR_SYSTEM_DRIVER_MISMATCH = 803, + CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE = 804, + CUDA_ERROR_MPS_CONNECTION_FAILED = 805, + CUDA_ERROR_MPS_RPC_FAILURE = 806, + CUDA_ERROR_MPS_SERVER_NOT_READY = 807, + CUDA_ERROR_MPS_MAX_CLIENTS_REACHED = 808, + CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED = 809, + CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED = 900, + CUDA_ERROR_STREAM_CAPTURE_INVALIDATED = 901, + CUDA_ERROR_STREAM_CAPTURE_MERGE = 902, + CUDA_ERROR_STREAM_CAPTURE_UNMATCHED = 903, + CUDA_ERROR_STREAM_CAPTURE_UNJOINED = 904, + CUDA_ERROR_STREAM_CAPTURE_ISOLATION = 905, + CUDA_ERROR_STREAM_CAPTURE_IMPLICIT = 906, + CUDA_ERROR_CAPTURED_EVENT = 907, + CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD = 908, + CUDA_ERROR_TIMEOUT = 909, + CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE = 910, + CUDA_ERROR_EXTERNAL_DEVICE = 911, + CUDA_ERROR_UNKNOWN = 999, +} +pub use self::cudaError_enum as CUresult; +impl CUdevice_P2PAttribute_enum { + pub const CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED: CUdevice_P2PAttribute_enum = + CUdevice_P2PAttribute_enum::CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUdevice_P2PAttribute_enum { + CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK = 1, + CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED = 2, + CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED = 3, + CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED = 4, +} +pub use self::CUdevice_P2PAttribute_enum as CUdevice_P2PAttribute; +pub type CUstreamCallback = ::core::option::Option< + unsafe extern "C" fn(hStream: CUstream, status: CUresult, userData: *mut ::core::ffi::c_void), +>; +pub type CUoccupancyB2DSize = + ::core::option::Option usize>; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY2D_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub srcPitch: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub dstPitch: usize, + pub WidthInBytes: usize, + pub Height: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY2D_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY2D_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY2D_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY2D_st), + "::", + stringify!(Height) + ) + ); +} +impl Default for CUDA_MEMCPY2D_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY2D_v2 = CUDA_MEMCPY2D_st; +pub type CUDA_MEMCPY2D = CUDA_MEMCPY2D_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY3D_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcZ: usize, + pub srcLOD: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub reserved0: *mut ::core::ffi::c_void, + pub srcPitch: usize, + pub srcHeight: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstZ: usize, + pub dstLOD: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub reserved1: *mut ::core::ffi::c_void, + pub dstPitch: usize, + pub dstHeight: usize, + pub WidthInBytes: usize, + pub Height: usize, + pub Depth: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY3D_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY3D_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY3D_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcLOD) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved0) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(reserved0) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHeight) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(srcHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstZ) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstLOD) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHeight) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(dstHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_st), + "::", + stringify!(Depth) + ) + ); +} +impl Default for CUDA_MEMCPY3D_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY3D_v2 = CUDA_MEMCPY3D_st; +pub type CUDA_MEMCPY3D = CUDA_MEMCPY3D_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEMCPY3D_PEER_st { + pub srcXInBytes: usize, + pub srcY: usize, + pub srcZ: usize, + pub srcLOD: usize, + pub srcMemoryType: CUmemorytype, + pub srcHost: *const ::core::ffi::c_void, + pub srcDevice: CUdeviceptr, + pub srcArray: CUarray, + pub srcContext: CUcontext, + pub srcPitch: usize, + pub srcHeight: usize, + pub dstXInBytes: usize, + pub dstY: usize, + pub dstZ: usize, + pub dstLOD: usize, + pub dstMemoryType: CUmemorytype, + pub dstHost: *mut ::core::ffi::c_void, + pub dstDevice: CUdeviceptr, + pub dstArray: CUarray, + pub dstContext: CUcontext, + pub dstPitch: usize, + pub dstHeight: usize, + pub WidthInBytes: usize, + pub Height: usize, + pub Depth: usize, +} +#[test] +fn bindgen_test_layout_CUDA_MEMCPY3D_PEER_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(CUDA_MEMCPY3D_PEER_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEMCPY3D_PEER_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcXInBytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcY) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcLOD) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcMemoryType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHost) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcDevice) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcArray) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcContext) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcContext) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcPitch) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).srcHeight) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(srcHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstXInBytes) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstXInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstY) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstZ) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstLOD) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstLOD) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstMemoryType) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstMemoryType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHost) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstHost) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstDevice) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstDevice) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstArray) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstContext) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstContext) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstPitch) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstPitch) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dstHeight) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(dstHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).WidthInBytes) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(WidthInBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEMCPY3D_PEER_st), + "::", + stringify!(Depth) + ) + ); +} +impl Default for CUDA_MEMCPY3D_PEER_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEMCPY3D_PEER_v1 = CUDA_MEMCPY3D_PEER_st; +pub type CUDA_MEMCPY3D_PEER = CUDA_MEMCPY3D_PEER_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_DESCRIPTOR_st { + pub Width: usize, + pub Height: usize, + pub Format: CUarray_format, + pub NumChannels: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_DESCRIPTOR_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_ARRAY_DESCRIPTOR_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY_DESCRIPTOR_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Format) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(Format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).NumChannels) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_DESCRIPTOR_st), + "::", + stringify!(NumChannels) + ) + ); +} +impl Default for CUDA_ARRAY_DESCRIPTOR_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_ARRAY_DESCRIPTOR_v2 = CUDA_ARRAY_DESCRIPTOR_st; +pub type CUDA_ARRAY_DESCRIPTOR = CUDA_ARRAY_DESCRIPTOR_v2; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY3D_DESCRIPTOR_st { + pub Width: usize, + pub Height: usize, + pub Depth: usize, + pub Format: CUarray_format, + pub NumChannels: ::core::ffi::c_uint, + pub Flags: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY3D_DESCRIPTOR_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(CUDA_ARRAY3D_DESCRIPTOR_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY3D_DESCRIPTOR_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Height) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Depth) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Depth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Format) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).NumChannels) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(NumChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY3D_DESCRIPTOR_st), + "::", + stringify!(Flags) + ) + ); +} +impl Default for CUDA_ARRAY3D_DESCRIPTOR_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_ARRAY3D_DESCRIPTOR_v2 = CUDA_ARRAY3D_DESCRIPTOR_st; +pub type CUDA_ARRAY3D_DESCRIPTOR = CUDA_ARRAY3D_DESCRIPTOR_v2; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_SPARSE_PROPERTIES_st { + pub tileExtent: CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1, + pub miptailFirstLevel: ::core::ffi::c_uint, + pub miptailSize: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 4usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1 { + pub width: ::core::ffi::c_uint, + pub height: ::core::ffi::c_uint, + pub depth: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!( + "Size of: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st__bindgen_ty_1), + "::", + stringify!(depth) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_SPARSE_PROPERTIES_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).tileExtent) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(tileExtent) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptailFirstLevel) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(miptailFirstLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptailSize) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(miptailSize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_SPARSE_PROPERTIES_st), + "::", + stringify!(reserved) + ) + ); +} +pub type CUDA_ARRAY_SPARSE_PROPERTIES_v1 = CUDA_ARRAY_SPARSE_PROPERTIES_st; +pub type CUDA_ARRAY_SPARSE_PROPERTIES = CUDA_ARRAY_SPARSE_PROPERTIES_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_ARRAY_MEMORY_REQUIREMENTS_st { + pub size: usize, + pub alignment: usize, + pub reserved: [::core::ffi::c_uint; 4usize], +} +#[test] +fn bindgen_test_layout_CUDA_ARRAY_MEMORY_REQUIREMENTS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUDA_ARRAY_MEMORY_REQUIREMENTS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_ARRAY_MEMORY_REQUIREMENTS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_MEMORY_REQUIREMENTS_st), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_MEMORY_REQUIREMENTS_st), + "::", + stringify!(alignment) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_ARRAY_MEMORY_REQUIREMENTS_st), + "::", + stringify!(reserved) + ) + ); +} +pub type CUDA_ARRAY_MEMORY_REQUIREMENTS_v1 = CUDA_ARRAY_MEMORY_REQUIREMENTS_st; +pub type CUDA_ARRAY_MEMORY_REQUIREMENTS = CUDA_ARRAY_MEMORY_REQUIREMENTS_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_RESOURCE_DESC_st { + pub resType: CUresourcetype, + pub res: CUDA_RESOURCE_DESC_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_RESOURCE_DESC_st__bindgen_ty_1 { + pub array: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub mipmap: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2, + pub linear: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3, + pub pitch2D: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4, + pub reserved: CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub hArray: CUarray, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hArray) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2 { + pub hMipmappedArray: CUmipmappedArray, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hMipmappedArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(hMipmappedArray) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3 { + pub devPtr: CUdeviceptr, + pub format: CUarray_format, + pub numChannels: ::core::ffi::c_uint, + pub sizeInBytes: usize, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).devPtr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(devPtr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numChannels) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(numChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sizeInBytes) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(sizeInBytes) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4 { + pub devPtr: CUdeviceptr, + pub format: CUarray_format, + pub numChannels: ::core::ffi::c_uint, + pub width: usize, + pub height: usize, + pub pitchInBytes: usize, +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).devPtr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(devPtr) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numChannels) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(numChannels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitchInBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(pitchInBytes) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5 { + pub reserved: [::core::ffi::c_int; 32usize], +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!( + "Size of: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5), + "::", + stringify!(reserved) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).array) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(array) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(mipmap) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).linear) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(linear) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).pitch2D) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(pitch2D) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_RESOURCE_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(resType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).res) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(res) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_DESC_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUDA_RESOURCE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_RESOURCE_DESC_v1 = CUDA_RESOURCE_DESC_st; +pub type CUDA_RESOURCE_DESC = CUDA_RESOURCE_DESC_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] +pub struct CUDA_TEXTURE_DESC_st { + pub addressMode: [CUaddress_mode; 3usize], + pub filterMode: CUfilter_mode, + pub flags: ::core::ffi::c_uint, + pub maxAnisotropy: ::core::ffi::c_uint, + pub mipmapFilterMode: CUfilter_mode, + pub mipmapLevelBias: f32, + pub minMipmapLevelClamp: f32, + pub maxMipmapLevelClamp: f32, + pub borderColor: [f32; 4usize], + pub reserved: [::core::ffi::c_int; 12usize], +} +#[test] +fn bindgen_test_layout_CUDA_TEXTURE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(CUDA_TEXTURE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUDA_TEXTURE_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).addressMode) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(addressMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).filterMode) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(filterMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxAnisotropy) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(maxAnisotropy) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmapFilterMode) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(mipmapFilterMode) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmapLevelBias) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(mipmapLevelBias) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).minMipmapLevelClamp) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(minMipmapLevelClamp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).maxMipmapLevelClamp) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(maxMipmapLevelClamp) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).borderColor) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(borderColor) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUDA_TEXTURE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_TEXTURE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_TEXTURE_DESC_v1 = CUDA_TEXTURE_DESC_st; +pub type CUDA_TEXTURE_DESC = CUDA_TEXTURE_DESC_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUresourceViewFormat_enum { + CU_RES_VIEW_FORMAT_NONE = 0, + CU_RES_VIEW_FORMAT_UINT_1X8 = 1, + CU_RES_VIEW_FORMAT_UINT_2X8 = 2, + CU_RES_VIEW_FORMAT_UINT_4X8 = 3, + CU_RES_VIEW_FORMAT_SINT_1X8 = 4, + CU_RES_VIEW_FORMAT_SINT_2X8 = 5, + CU_RES_VIEW_FORMAT_SINT_4X8 = 6, + CU_RES_VIEW_FORMAT_UINT_1X16 = 7, + CU_RES_VIEW_FORMAT_UINT_2X16 = 8, + CU_RES_VIEW_FORMAT_UINT_4X16 = 9, + CU_RES_VIEW_FORMAT_SINT_1X16 = 10, + CU_RES_VIEW_FORMAT_SINT_2X16 = 11, + CU_RES_VIEW_FORMAT_SINT_4X16 = 12, + CU_RES_VIEW_FORMAT_UINT_1X32 = 13, + CU_RES_VIEW_FORMAT_UINT_2X32 = 14, + CU_RES_VIEW_FORMAT_UINT_4X32 = 15, + CU_RES_VIEW_FORMAT_SINT_1X32 = 16, + CU_RES_VIEW_FORMAT_SINT_2X32 = 17, + CU_RES_VIEW_FORMAT_SINT_4X32 = 18, + CU_RES_VIEW_FORMAT_FLOAT_1X16 = 19, + CU_RES_VIEW_FORMAT_FLOAT_2X16 = 20, + CU_RES_VIEW_FORMAT_FLOAT_4X16 = 21, + CU_RES_VIEW_FORMAT_FLOAT_1X32 = 22, + CU_RES_VIEW_FORMAT_FLOAT_2X32 = 23, + CU_RES_VIEW_FORMAT_FLOAT_4X32 = 24, + CU_RES_VIEW_FORMAT_UNSIGNED_BC1 = 25, + CU_RES_VIEW_FORMAT_UNSIGNED_BC2 = 26, + CU_RES_VIEW_FORMAT_UNSIGNED_BC3 = 27, + CU_RES_VIEW_FORMAT_UNSIGNED_BC4 = 28, + CU_RES_VIEW_FORMAT_SIGNED_BC4 = 29, + CU_RES_VIEW_FORMAT_UNSIGNED_BC5 = 30, + CU_RES_VIEW_FORMAT_SIGNED_BC5 = 31, + CU_RES_VIEW_FORMAT_UNSIGNED_BC6H = 32, + CU_RES_VIEW_FORMAT_SIGNED_BC6H = 33, + CU_RES_VIEW_FORMAT_UNSIGNED_BC7 = 34, +} +pub use self::CUresourceViewFormat_enum as CUresourceViewFormat; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_RESOURCE_VIEW_DESC_st { + pub format: CUresourceViewFormat, + pub width: usize, + pub height: usize, + pub depth: usize, + pub firstMipmapLevel: ::core::ffi::c_uint, + pub lastMipmapLevel: ::core::ffi::c_uint, + pub firstLayer: ::core::ffi::c_uint, + pub lastLayer: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_RESOURCE_VIEW_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(CUDA_RESOURCE_VIEW_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_RESOURCE_VIEW_DESC_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).firstMipmapLevel) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(firstMipmapLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).lastMipmapLevel) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(lastMipmapLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).firstLayer) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(firstLayer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).lastLayer) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(lastLayer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_RESOURCE_VIEW_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_RESOURCE_VIEW_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_RESOURCE_VIEW_DESC_v1 = CUDA_RESOURCE_VIEW_DESC_st; +pub type CUDA_RESOURCE_VIEW_DESC = CUDA_RESOURCE_VIEW_DESC_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st { + pub p2pToken: ::core::ffi::c_ulonglong, + pub vaSpaceToken: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).p2pToken) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), + "::", + stringify!(p2pToken) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).vaSpaceToken) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st), + "::", + stringify!(vaSpaceToken) + ) + ); +} +pub type CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 = CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st; +pub type CUDA_POINTER_ATTRIBUTE_P2P_TOKENS = CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum { + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE = 0, + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ = 1, + CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE = 3, +} +pub use self::CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum as CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_LAUNCH_PARAMS_st { + pub function: CUfunction, + pub gridDimX: ::core::ffi::c_uint, + pub gridDimY: ::core::ffi::c_uint, + pub gridDimZ: ::core::ffi::c_uint, + pub blockDimX: ::core::ffi::c_uint, + pub blockDimY: ::core::ffi::c_uint, + pub blockDimZ: ::core::ffi::c_uint, + pub sharedMemBytes: ::core::ffi::c_uint, + pub hStream: CUstream, + pub kernelParams: *mut *mut ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_LAUNCH_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(CUDA_LAUNCH_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_LAUNCH_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gridDimZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(gridDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimX) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimY) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).blockDimZ) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(blockDimZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sharedMemBytes) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(sharedMemBytes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).hStream) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(hStream) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).kernelParams) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_LAUNCH_PARAMS_st), + "::", + stringify!(kernelParams) + ) + ); +} +impl Default for CUDA_LAUNCH_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_LAUNCH_PARAMS_v1 = CUDA_LAUNCH_PARAMS_st; +pub type CUDA_LAUNCH_PARAMS = CUDA_LAUNCH_PARAMS_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexternalMemoryHandleType_enum { + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 1, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = 2, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = 4, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = 5, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = 6, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = 7, + CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = 8, +} +pub use self::CUexternalMemoryHandleType_enum as CUexternalMemoryHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st { + pub type_: CUexternalMemoryHandleType, + pub handle: CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1, + pub size: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1 { + pub fd: ::core::ffi::c_int, + pub win32: CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciBufObject: *const ::core::ffi::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub handle: *mut ::core::ffi::c_void, + pub name: *const ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(name) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(win32) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciBufObject) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(nvSciBufObject) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 = CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_HANDLE_DESC = CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st { + pub offset: ::core::ffi::c_ulonglong, + pub size: ::core::ffi::c_ulonglong, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +pub type CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 = CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_BUFFER_DESC = CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st { + pub offset: ::core::ffi::c_ulonglong, + pub arrayDesc: CUDA_ARRAY3D_DESCRIPTOR, + pub numLevels: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).arrayDesc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(arrayDesc) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numLevels) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(numLevels) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 = + CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st; +pub type CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC = CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUexternalSemaphoreHandleType_enum { + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 1, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = 2, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = 4, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE = 5, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC = 6, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX = 7, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT = 8, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD = 9, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32 = 10, +} +pub use self::CUexternalSemaphoreHandleType_enum as CUexternalSemaphoreHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st { + pub type_: CUexternalSemaphoreHandleType, + pub handle: CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1 { + pub fd: ::core::ffi::c_int, + pub win32: CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSyncObj: *const ::core::ffi::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + pub handle: *mut ::core::ffi::c_void, + pub name: *const ::core::ffi::c_void, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(name) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(win32) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSyncObj) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1), + "::", + stringify!(nvSciSyncObj) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(handle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 = CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st; +pub type CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC = CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st { + pub params: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1 { + pub fence: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSync: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + pub keyedMutex: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + pub reserved: [::core::ffi::c_uint; 12usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1 { + pub value: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + pub fence: *mut ::core::ffi::c_void, + pub reserved: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3 { + pub key: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(key) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSync) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(nvSciSync) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).keyedMutex) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(keyedMutex) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).params) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(params) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 = CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st; +pub type CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS = CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st { + pub params: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1 { + pub fence: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + pub nvSciSync: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + pub keyedMutex: CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + pub reserved: [::core::ffi::c_uint; 10usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1 { + pub value: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + pub fence: *mut ::core::ffi::c_void, + pub reserved: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 8usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3 { + pub key: ::core::ffi::c_ulonglong, + pub timeoutMs: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit< + CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3, + > = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::( + ), + 16usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::core::mem::align_of::( + ), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).timeoutMs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(timeoutMs) + ) + ); +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).fence) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(fence) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).nvSciSync) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(nvSciSync) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).keyedMutex) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(keyedMutex) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 144usize, + concat!( + "Size of: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).params) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(params) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 = CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st; +pub type CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS = CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st { + pub extSemArray: *mut CUexternalSemaphore, + pub paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + pub numExtSems: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extSemArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(extSemArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).paramsArray) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(paramsArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numExtSems) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st), + "::", + stringify!(numExtSems) + ) + ); +} +impl Default for CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st; +pub type CUDA_EXT_SEM_SIGNAL_NODE_PARAMS = CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_st { + pub extSemArray: *mut CUexternalSemaphore, + pub paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + pub numExtSems: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUDA_EXT_SEM_WAIT_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extSemArray) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(extSemArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).paramsArray) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(paramsArray) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).numExtSems) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUDA_EXT_SEM_WAIT_NODE_PARAMS_st), + "::", + stringify!(numExtSems) + ) + ); +} +impl Default for CUDA_EXT_SEM_WAIT_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 = CUDA_EXT_SEM_WAIT_NODE_PARAMS_st; +pub type CUDA_EXT_SEM_WAIT_NODE_PARAMS = CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1; +pub type CUmemGenericAllocationHandle_v1 = ::core::ffi::c_ulonglong; +pub type CUmemGenericAllocationHandle = CUmemGenericAllocationHandle_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationHandleType_enum { + CU_MEM_HANDLE_TYPE_NONE = 0, + CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR = 1, + CU_MEM_HANDLE_TYPE_WIN32 = 2, + CU_MEM_HANDLE_TYPE_WIN32_KMT = 4, + CU_MEM_HANDLE_TYPE_MAX = 2147483647, +} +pub use self::CUmemAllocationHandleType_enum as CUmemAllocationHandleType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAccess_flags_enum { + CU_MEM_ACCESS_FLAGS_PROT_NONE = 0, + CU_MEM_ACCESS_FLAGS_PROT_READ = 1, + CU_MEM_ACCESS_FLAGS_PROT_READWRITE = 3, + CU_MEM_ACCESS_FLAGS_PROT_MAX = 2147483647, +} +pub use self::CUmemAccess_flags_enum as CUmemAccess_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemLocationType_enum { + CU_MEM_LOCATION_TYPE_INVALID = 0, + CU_MEM_LOCATION_TYPE_DEVICE = 1, + CU_MEM_LOCATION_TYPE_MAX = 2147483647, +} +pub use self::CUmemLocationType_enum as CUmemLocationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationType_enum { + CU_MEM_ALLOCATION_TYPE_INVALID = 0, + CU_MEM_ALLOCATION_TYPE_PINNED = 1, + CU_MEM_ALLOCATION_TYPE_MAX = 2147483647, +} +pub use self::CUmemAllocationType_enum as CUmemAllocationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationGranularity_flags_enum { + CU_MEM_ALLOC_GRANULARITY_MINIMUM = 0, + CU_MEM_ALLOC_GRANULARITY_RECOMMENDED = 1, +} +pub use self::CUmemAllocationGranularity_flags_enum as CUmemAllocationGranularity_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUarraySparseSubresourceType_enum { + CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL = 0, + CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL = 1, +} +pub use self::CUarraySparseSubresourceType_enum as CUarraySparseSubresourceType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemOperationType_enum { + CU_MEM_OPERATION_TYPE_MAP = 1, + CU_MEM_OPERATION_TYPE_UNMAP = 2, +} +pub use self::CUmemOperationType_enum as CUmemOperationType; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemHandleType_enum { + CU_MEM_HANDLE_TYPE_GENERIC = 0, +} +pub use self::CUmemHandleType_enum as CUmemHandleType; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CUarrayMapInfo_st { + pub resourceType: CUresourcetype, + pub resource: CUarrayMapInfo_st__bindgen_ty_1, + pub subresourceType: CUarraySparseSubresourceType, + pub subresource: CUarrayMapInfo_st__bindgen_ty_2, + pub memOperationType: CUmemOperationType, + pub memHandleType: CUmemHandleType, + pub memHandle: CUarrayMapInfo_st__bindgen_ty_3, + pub offset: ::core::ffi::c_ulonglong, + pub deviceBitMask: ::core::ffi::c_uint, + pub flags: ::core::ffi::c_uint, + pub reserved: [::core::ffi::c_uint; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_1 { + pub mipmap: CUmipmappedArray, + pub array: CUarray, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).mipmap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_1), + "::", + stringify!(mipmap) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).array) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_1), + "::", + stringify!(array) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_2 { + pub sparseLevel: CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1, + pub miptail: CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1 { + pub level: ::core::ffi::c_uint, + pub layer: ::core::ffi::c_uint, + pub offsetX: ::core::ffi::c_uint, + pub offsetY: ::core::ffi::c_uint, + pub offsetZ: ::core::ffi::c_uint, + pub extentWidth: ::core::ffi::c_uint, + pub extentHeight: ::core::ffi::c_uint, + pub extentDepth: ::core::ffi::c_uint, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!( + "Size of: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(level) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).layer) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(layer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetX) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetX) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetY) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetY) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offsetZ) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(offsetZ) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentWidth) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentWidth) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentHeight) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentHeight) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).extentDepth) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(extentDepth) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2 { + pub layer: ::core::ffi::c_uint, + pub offset: ::core::ffi::c_ulonglong, + pub size: ::core::ffi::c_ulonglong, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).layer) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(layer) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2__bindgen_ty_2), + "::", + stringify!(size) + ) + ); +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_2() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_2)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_2)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).sparseLevel) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2), + "::", + stringify!(sparseLevel) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).miptail) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_2), + "::", + stringify!(miptail) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CUarrayMapInfo_st__bindgen_ty_3 { + pub memHandle: CUmemGenericAllocationHandle, +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st__bindgen_ty_3() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st__bindgen_ty_3)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st__bindgen_ty_3)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandle) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st__bindgen_ty_3), + "::", + stringify!(memHandle) + ) + ); +} +impl Default for CUarrayMapInfo_st__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[test] +fn bindgen_test_layout_CUarrayMapInfo_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(CUarrayMapInfo_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUarrayMapInfo_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resourceType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(resourceType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).resource) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(resource) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).subresourceType) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(subresourceType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).subresource) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(subresource) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memOperationType) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memOperationType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandleType) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memHandleType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).memHandle) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(memHandle) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).deviceBitMask) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(deviceBitMask) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUarrayMapInfo_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUarrayMapInfo_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUarrayMapInfo_v1 = CUarrayMapInfo_st; +pub type CUarrayMapInfo = CUarrayMapInfo_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemLocation_st { + pub type_: CUmemLocationType, + pub id: ::core::ffi::c_int, +} +#[test] +fn bindgen_test_layout_CUmemLocation_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(CUmemLocation_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUmemLocation_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemLocation_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemLocation_st), + "::", + stringify!(id) + ) + ); +} +impl Default for CUmemLocation_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemLocation_v1 = CUmemLocation_st; +pub type CUmemLocation = CUmemLocation_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemAllocationCompType_enum { + CU_MEM_ALLOCATION_COMP_NONE = 0, + CU_MEM_ALLOCATION_COMP_GENERIC = 1, +} +pub use self::CUmemAllocationCompType_enum as CUmemAllocationCompType; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAllocationProp_st { + pub type_: CUmemAllocationType, + pub requestedHandleTypes: CUmemAllocationHandleType, + pub location: CUmemLocation, + pub win32HandleMetaData: *mut ::core::ffi::c_void, + pub allocFlags: CUmemAllocationProp_st__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAllocationProp_st__bindgen_ty_1 { + pub compressionType: ::core::ffi::c_uchar, + pub gpuDirectRDMACapable: ::core::ffi::c_uchar, + pub usage: ::core::ffi::c_ushort, + pub reserved: [::core::ffi::c_uchar; 4usize], +} +#[test] +fn bindgen_test_layout_CUmemAllocationProp_st__bindgen_ty_1() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!( + "Alignment of ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).compressionType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(compressionType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).gpuDirectRDMACapable) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(gpuDirectRDMACapable) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).usage) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(usage) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); +} +#[test] +fn bindgen_test_layout_CUmemAllocationProp_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(CUmemAllocationProp_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUmemAllocationProp_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).requestedHandleTypes) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(requestedHandleTypes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32HandleMetaData) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(win32HandleMetaData) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).allocFlags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUmemAllocationProp_st), + "::", + stringify!(allocFlags) + ) + ); +} +impl Default for CUmemAllocationProp_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemAllocationProp_v1 = CUmemAllocationProp_st; +pub type CUmemAllocationProp = CUmemAllocationProp_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemAccessDesc_st { + pub location: CUmemLocation, + pub flags: CUmemAccess_flags, +} +#[test] +fn bindgen_test_layout_CUmemAccessDesc_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(CUmemAccessDesc_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(CUmemAccessDesc_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemAccessDesc_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemAccessDesc_st), + "::", + stringify!(flags) + ) + ); +} +impl Default for CUmemAccessDesc_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemAccessDesc_v1 = CUmemAccessDesc_st; +pub type CUmemAccessDesc = CUmemAccessDesc_v1; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphExecUpdateResult_enum { + CU_GRAPH_EXEC_UPDATE_SUCCESS = 0, + CU_GRAPH_EXEC_UPDATE_ERROR = 1, + CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED = 2, + CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED = 3, + CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED = 4, + CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED = 5, + CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED = 6, + CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE = 7, + CU_GRAPH_EXEC_UPDATE_ERROR_ATTRIBUTES_CHANGED = 8, +} +pub use self::CUgraphExecUpdateResult_enum as CUgraphExecUpdateResult; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUmemPool_attribute_enum { + CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES = 1, + CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC = 2, + CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES = 3, + CU_MEMPOOL_ATTR_RELEASE_THRESHOLD = 4, + CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT = 5, + CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH = 6, + CU_MEMPOOL_ATTR_USED_MEM_CURRENT = 7, + CU_MEMPOOL_ATTR_USED_MEM_HIGH = 8, +} +pub use self::CUmemPool_attribute_enum as CUmemPool_attribute; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemPoolProps_st { + pub allocType: CUmemAllocationType, + pub handleTypes: CUmemAllocationHandleType, + pub location: CUmemLocation, + pub win32SecurityAttributes: *mut ::core::ffi::c_void, + pub reserved: [::core::ffi::c_uchar; 64usize], +} +#[test] +fn bindgen_test_layout_CUmemPoolProps_st() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(CUmemPoolProps_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUmemPoolProps_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).allocType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(allocType) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).handleTypes) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(handleTypes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).location) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(location) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).win32SecurityAttributes) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(win32SecurityAttributes) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolProps_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUmemPoolProps_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemPoolProps_v1 = CUmemPoolProps_st; +pub type CUmemPoolProps = CUmemPoolProps_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUmemPoolPtrExportData_st { + pub reserved: [::core::ffi::c_uchar; 64usize], +} +#[test] +fn bindgen_test_layout_CUmemPoolPtrExportData_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(CUmemPoolPtrExportData_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(CUmemPoolPtrExportData_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUmemPoolPtrExportData_st), + "::", + stringify!(reserved) + ) + ); +} +impl Default for CUmemPoolPtrExportData_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUmemPoolPtrExportData_v1 = CUmemPoolPtrExportData_st; +pub type CUmemPoolPtrExportData = CUmemPoolPtrExportData_v1; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct CUDA_MEM_ALLOC_NODE_PARAMS_st { + pub poolProps: CUmemPoolProps, + pub accessDescs: *const CUmemAccessDesc, + pub accessDescCount: usize, + pub bytesize: usize, + pub dptr: CUdeviceptr, +} +#[test] +fn bindgen_test_layout_CUDA_MEM_ALLOC_NODE_PARAMS_st() { + const UNINIT: ::core::mem::MaybeUninit = + ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 120usize, + concat!("Size of: ", stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).poolProps) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(poolProps) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessDescs) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(accessDescs) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).accessDescCount) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(accessDescCount) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).bytesize) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(bytesize) + ) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).dptr) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(CUDA_MEM_ALLOC_NODE_PARAMS_st), + "::", + stringify!(dptr) + ) + ); +} +impl Default for CUDA_MEM_ALLOC_NODE_PARAMS_st { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type CUDA_MEM_ALLOC_NODE_PARAMS = CUDA_MEM_ALLOC_NODE_PARAMS_st; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphMem_attribute_enum { + CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT = 0, + CU_GRAPH_MEM_ATTR_USED_MEM_HIGH = 1, + CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT = 2, + CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH = 3, +} +pub use self::CUgraphMem_attribute_enum as CUgraphMem_attribute; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesOptions_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST = 1, + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS = 2, +} +pub use self::CUflushGPUDirectRDMAWritesOptions_enum as CUflushGPUDirectRDMAWritesOptions; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUGPUDirectRDMAWritesOrdering_enum { + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE = 0, + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER = 100, + CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES = 200, +} +pub use self::CUGPUDirectRDMAWritesOrdering_enum as CUGPUDirectRDMAWritesOrdering; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesScope_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER = 100, + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES = 200, +} +pub use self::CUflushGPUDirectRDMAWritesScope_enum as CUflushGPUDirectRDMAWritesScope; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUflushGPUDirectRDMAWritesTarget_enum { + CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX = 0, +} +pub use self::CUflushGPUDirectRDMAWritesTarget_enum as CUflushGPUDirectRDMAWritesTarget; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphDebugDot_flags_enum { + CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE = 1, + CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES = 2, + CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS = 4, + CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS = 8, + CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS = 16, + CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS = 32, + CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS = 64, + CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS = 128, + CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS = 256, + CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES = 512, + CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES = 1024, + CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS = 2048, + CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS = 4096, +} +pub use self::CUgraphDebugDot_flags_enum as CUgraphDebugDot_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUuserObject_flags_enum { + CU_USER_OBJECT_NO_DESTRUCTOR_SYNC = 1, +} +pub use self::CUuserObject_flags_enum as CUuserObject_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUuserObjectRetain_flags_enum { + CU_GRAPH_USER_OBJECT_MOVE = 1, +} +pub use self::CUuserObjectRetain_flags_enum as CUuserObjectRetain_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUgraphInstantiate_flags_enum { + CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH = 1, +} +pub use self::CUgraphInstantiate_flags_enum as CUgraphInstantiate_flags; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum CUoutput_mode_enum { + CU_OUT_KEY_VALUE_PAIR = 0, + CU_OUT_CSV = 1, +} +pub use self::CUoutput_mode_enum as CUoutput_mode; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub cuGetErrorString: Result< + unsafe extern "C" fn(error: CUresult, pStr: *mut *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuGetErrorName: Result< + unsafe extern "C" fn(error: CUresult, pStr: *mut *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuInit: + Result CUresult, ::libloading::Error>, + pub cuDriverGetVersion: Result< + unsafe extern "C" fn(driverVersion: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGet: Result< + unsafe extern "C" fn(device: *mut CUdevice, ordinal: ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetCount: Result< + unsafe extern "C" fn(count: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetName: Result< + unsafe extern "C" fn( + name: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetUuid: Result< + unsafe extern "C" fn(uuid: *mut CUuuid, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetUuid_v2: Result< + unsafe extern "C" fn(uuid: *mut CUuuid, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetLuid: Result< + unsafe extern "C" fn( + luid: *mut ::core::ffi::c_char, + deviceNodeMask: *mut ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceTotalMem_v2: Result< + unsafe extern "C" fn(bytes: *mut usize, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetTexture1DLinearMaxWidth: Result< + unsafe extern "C" fn( + maxWidthInElements: *mut usize, + format: CUarray_format, + numChannels: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetAttribute: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + attrib: CUdevice_attribute, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetNvSciSyncAttributes: Result< + unsafe extern "C" fn( + nvSciSyncAttrList: *mut ::core::ffi::c_void, + dev: CUdevice, + flags: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceSetMemPool: Result< + unsafe extern "C" fn(dev: CUdevice, pool: CUmemoryPool) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetMemPool: Result< + unsafe extern "C" fn(pool: *mut CUmemoryPool, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetDefaultMemPool: Result< + unsafe extern "C" fn(pool_out: *mut CUmemoryPool, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuFlushGPUDirectRDMAWrites: Result< + unsafe extern "C" fn( + target: CUflushGPUDirectRDMAWritesTarget, + scope: CUflushGPUDirectRDMAWritesScope, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetProperties: Result< + unsafe extern "C" fn(prop: *mut CUdevprop, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceComputeCapability: Result< + unsafe extern "C" fn( + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxRetain: Result< + unsafe extern "C" fn(pctx: *mut CUcontext, dev: CUdevice) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxRelease_v2: + Result CUresult, ::libloading::Error>, + pub cuDevicePrimaryCtxSetFlags_v2: Result< + unsafe extern "C" fn(dev: CUdevice, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxGetState: Result< + unsafe extern "C" fn( + dev: CUdevice, + flags: *mut ::core::ffi::c_uint, + active: *mut ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDevicePrimaryCtxReset_v2: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetExecAffinitySupport: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + type_: CUexecAffinityType, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxCreate_v2: Result< + unsafe extern "C" fn( + pctx: *mut CUcontext, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxCreate_v3: Result< + unsafe extern "C" fn( + pctx: *mut CUcontext, + paramsArray: *mut CUexecAffinityParam, + numParams: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxPushCurrent_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxPopCurrent_v2: + Result CUresult, ::libloading::Error>, + pub cuCtxSetCurrent: + Result CUresult, ::libloading::Error>, + pub cuCtxGetCurrent: + Result CUresult, ::libloading::Error>, + pub cuCtxGetDevice: + Result CUresult, ::libloading::Error>, + pub cuCtxGetFlags: Result< + unsafe extern "C" fn(flags: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxSynchronize: Result CUresult, ::libloading::Error>, + pub cuCtxSetLimit: + Result CUresult, ::libloading::Error>, + pub cuCtxGetLimit: Result< + unsafe extern "C" fn(pvalue: *mut usize, limit: CUlimit) -> CUresult, + ::libloading::Error, + >, + pub cuCtxGetCacheConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxSetCacheConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxGetSharedMemConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxSetSharedMemConfig: + Result CUresult, ::libloading::Error>, + pub cuCtxGetApiVersion: Result< + unsafe extern "C" fn(ctx: CUcontext, version: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxGetStreamPriorityRange: Result< + unsafe extern "C" fn( + leastPriority: *mut ::core::ffi::c_int, + greatestPriority: *mut ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxResetPersistingL2Cache: + Result CUresult, ::libloading::Error>, + pub cuCtxGetExecAffinity: Result< + unsafe extern "C" fn( + pExecAffinity: *mut CUexecAffinityParam, + type_: CUexecAffinityType, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxAttach: Result< + unsafe extern "C" fn(pctx: *mut CUcontext, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDetach: Result CUresult, ::libloading::Error>, + pub cuModuleLoad: Result< + unsafe extern "C" fn(module: *mut CUmodule, fname: *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadData: Result< + unsafe extern "C" fn(module: *mut CUmodule, image: *const ::core::ffi::c_void) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadDataEx: Result< + unsafe extern "C" fn( + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleLoadFatBinary: Result< + unsafe extern "C" fn( + module: *mut CUmodule, + fatCubin: *const ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleUnload: + Result CUresult, ::libloading::Error>, + pub cuModuleGetFunction: Result< + unsafe extern "C" fn( + hfunc: *mut CUfunction, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetGlobal_v2: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytes: *mut usize, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetTexRef: Result< + unsafe extern "C" fn( + pTexRef: *mut CUtexref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuModuleGetSurfRef: Result< + unsafe extern "C" fn( + pSurfRef: *mut CUsurfref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkCreate_v2: Result< + unsafe extern "C" fn( + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + stateOut: *mut CUlinkState, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkAddData_v2: Result< + unsafe extern "C" fn( + state: CUlinkState, + type_: CUjitInputType, + data: *mut ::core::ffi::c_void, + size: usize, + name: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkAddFile_v2: Result< + unsafe extern "C" fn( + state: CUlinkState, + type_: CUjitInputType, + path: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkComplete: Result< + unsafe extern "C" fn( + state: CUlinkState, + cubinOut: *mut *mut ::core::ffi::c_void, + sizeOut: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLinkDestroy: + Result CUresult, ::libloading::Error>, + pub cuMemGetInfo_v2: Result< + unsafe extern "C" fn(free: *mut usize, total: *mut usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemAlloc_v2: Result< + unsafe extern "C" fn(dptr: *mut CUdeviceptr, bytesize: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocPitch_v2: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + pPitch: *mut usize, + WidthInBytes: usize, + Height: usize, + ElementSizeBytes: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemFree_v2: + Result CUresult, ::libloading::Error>, + pub cuMemGetAddressRange_v2: Result< + unsafe extern "C" fn( + pbase: *mut CUdeviceptr, + psize: *mut usize, + dptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocHost_v2: Result< + unsafe extern "C" fn(pp: *mut *mut ::core::ffi::c_void, bytesize: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemFreeHost: + Result CUresult, ::libloading::Error>, + pub cuMemHostAlloc: Result< + unsafe extern "C" fn( + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostGetDevicePointer_v2: Result< + unsafe extern "C" fn( + pdptr: *mut CUdeviceptr, + p: *mut ::core::ffi::c_void, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostGetFlags: Result< + unsafe extern "C" fn( + pFlags: *mut ::core::ffi::c_uint, + p: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocManaged: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetByPCIBusId: Result< + unsafe extern "C" fn(dev: *mut CUdevice, pciBusId: *const ::core::ffi::c_char) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGetPCIBusId: Result< + unsafe extern "C" fn( + pciBusId: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuIpcGetEventHandle: Result< + unsafe extern "C" fn(pHandle: *mut CUipcEventHandle, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuIpcOpenEventHandle: Result< + unsafe extern "C" fn(phEvent: *mut CUevent, handle: CUipcEventHandle) -> CUresult, + ::libloading::Error, + >, + pub cuIpcGetMemHandle: Result< + unsafe extern "C" fn(pHandle: *mut CUipcMemHandle, dptr: CUdeviceptr) -> CUresult, + ::libloading::Error, + >, + pub cuIpcOpenMemHandle_v2: Result< + unsafe extern "C" fn( + pdptr: *mut CUdeviceptr, + handle: CUipcMemHandle, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuIpcCloseMemHandle: + Result CUresult, ::libloading::Error>, + pub cuMemHostRegister_v2: Result< + unsafe extern "C" fn( + p: *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemHostUnregister: + Result CUresult, ::libloading::Error>, + pub cuMemcpy: Result< + unsafe extern "C" fn(dst: CUdeviceptr, src: CUdeviceptr, ByteCount: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyPeer: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoH_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoD_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoH_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoA_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy2D_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy2DUnaligned_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy3D_v2: + Result CUresult, ::libloading::Error>, + pub cuMemcpy3DPeer: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D_PEER) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAsync: Result< + unsafe extern "C" fn( + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyPeerAsync: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoDAsync_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoHAsync_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyDtoDAsync_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyHtoAAsync_v2: Result< + unsafe extern "C" fn( + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpyAtoHAsync_v2: Result< + unsafe extern "C" fn( + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy2DAsync_v2: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY2D, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy3DAsync_v2: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemcpy3DPeerAsync: Result< + unsafe extern "C" fn(pCopy: *const CUDA_MEMCPY3D_PEER, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD8_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD16_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD32_v2: Result< + unsafe extern "C" fn(dstDevice: CUdeviceptr, ui: ::core::ffi::c_uint, N: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D8_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D16_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D32_v2: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD8Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD16Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD32Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D8Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D16Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemsetD2D32Async: Result< + unsafe extern "C" fn( + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayCreate_v2: Result< + unsafe extern "C" fn( + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY_DESCRIPTOR, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetDescriptor_v2: Result< + unsafe extern "C" fn( + pArrayDescriptor: *mut CUDA_ARRAY_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetSparseProperties: Result< + unsafe extern "C" fn( + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + array: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayGetSparseProperties: Result< + unsafe extern "C" fn( + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + mipmap: CUmipmappedArray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetMemoryRequirements: Result< + unsafe extern "C" fn( + memoryRequirements: *mut CUDA_ARRAY_MEMORY_REQUIREMENTS, + array: CUarray, + device: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayGetMemoryRequirements: Result< + unsafe extern "C" fn( + memoryRequirements: *mut CUDA_ARRAY_MEMORY_REQUIREMENTS, + mipmap: CUmipmappedArray, + device: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayGetPlane: Result< + unsafe extern "C" fn( + pPlaneArray: *mut CUarray, + hArray: CUarray, + planeIdx: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArrayDestroy: + Result CUresult, ::libloading::Error>, + pub cuArray3DCreate_v2: Result< + unsafe extern "C" fn( + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY3D_DESCRIPTOR, + ) -> CUresult, + ::libloading::Error, + >, + pub cuArray3DGetDescriptor_v2: Result< + unsafe extern "C" fn( + pArrayDescriptor: *mut CUDA_ARRAY3D_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayCreate: Result< + unsafe extern "C" fn( + pHandle: *mut CUmipmappedArray, + pMipmappedArrayDesc: *const CUDA_ARRAY3D_DESCRIPTOR, + numMipmapLevels: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayGetLevel: Result< + unsafe extern "C" fn( + pLevelArray: *mut CUarray, + hMipmappedArray: CUmipmappedArray, + level: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMipmappedArrayDestroy: Result< + unsafe extern "C" fn(hMipmappedArray: CUmipmappedArray) -> CUresult, + ::libloading::Error, + >, + pub cuMemAddressReserve: Result< + unsafe extern "C" fn( + ptr: *mut CUdeviceptr, + size: usize, + alignment: usize, + addr: CUdeviceptr, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAddressFree: Result< + unsafe extern "C" fn(ptr: CUdeviceptr, size: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemCreate: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + size: usize, + prop: *const CUmemAllocationProp, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRelease: Result< + unsafe extern "C" fn(handle: CUmemGenericAllocationHandle) -> CUresult, + ::libloading::Error, + >, + pub cuMemMap: Result< + unsafe extern "C" fn( + ptr: CUdeviceptr, + size: usize, + offset: usize, + handle: CUmemGenericAllocationHandle, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemMapArrayAsync: Result< + unsafe extern "C" fn( + mapInfoList: *mut CUarrayMapInfo, + count: ::core::ffi::c_uint, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemUnmap: Result< + unsafe extern "C" fn(ptr: CUdeviceptr, size: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemSetAccess: Result< + unsafe extern "C" fn( + ptr: CUdeviceptr, + size: usize, + desc: *const CUmemAccessDesc, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAccess: Result< + unsafe extern "C" fn( + flags: *mut ::core::ffi::c_ulonglong, + location: *const CUmemLocation, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemExportToShareableHandle: Result< + unsafe extern "C" fn( + shareableHandle: *mut ::core::ffi::c_void, + handle: CUmemGenericAllocationHandle, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemImportFromShareableHandle: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + osHandle: *mut ::core::ffi::c_void, + shHandleType: CUmemAllocationHandleType, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAllocationGranularity: Result< + unsafe extern "C" fn( + granularity: *mut usize, + prop: *const CUmemAllocationProp, + option: CUmemAllocationGranularity_flags, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemGetAllocationPropertiesFromHandle: Result< + unsafe extern "C" fn( + prop: *mut CUmemAllocationProp, + handle: CUmemGenericAllocationHandle, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRetainAllocationHandle: Result< + unsafe extern "C" fn( + handle: *mut CUmemGenericAllocationHandle, + addr: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemFreeAsync: Result< + unsafe extern "C" fn(dptr: CUdeviceptr, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuMemAllocAsync: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolTrimTo: Result< + unsafe extern "C" fn(pool: CUmemoryPool, minBytesToKeep: usize) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolSetAttribute: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolGetAttribute: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolSetAccess: Result< + unsafe extern "C" fn( + pool: CUmemoryPool, + map: *const CUmemAccessDesc, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolGetAccess: Result< + unsafe extern "C" fn( + flags: *mut CUmemAccess_flags, + memPool: CUmemoryPool, + location: *mut CUmemLocation, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolCreate: Result< + unsafe extern "C" fn(pool: *mut CUmemoryPool, poolProps: *const CUmemPoolProps) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolDestroy: + Result CUresult, ::libloading::Error>, + pub cuMemAllocFromPoolAsync: Result< + unsafe extern "C" fn( + dptr: *mut CUdeviceptr, + bytesize: usize, + pool: CUmemoryPool, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolExportToShareableHandle: Result< + unsafe extern "C" fn( + handle_out: *mut ::core::ffi::c_void, + pool: CUmemoryPool, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolImportFromShareableHandle: Result< + unsafe extern "C" fn( + pool_out: *mut CUmemoryPool, + handle: *mut ::core::ffi::c_void, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolExportPointer: Result< + unsafe extern "C" fn( + shareData_out: *mut CUmemPoolPtrExportData, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPoolImportPointer: Result< + unsafe extern "C" fn( + ptr_out: *mut CUdeviceptr, + pool: CUmemoryPool, + shareData: *mut CUmemPoolPtrExportData, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerGetAttribute: Result< + unsafe extern "C" fn( + data: *mut ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemPrefetchAsync: Result< + unsafe extern "C" fn( + devPtr: CUdeviceptr, + count: usize, + dstDevice: CUdevice, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemAdvise: Result< + unsafe extern "C" fn( + devPtr: CUdeviceptr, + count: usize, + advice: CUmem_advise, + device: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRangeGetAttribute: Result< + unsafe extern "C" fn( + data: *mut ::core::ffi::c_void, + dataSize: usize, + attribute: CUmem_range_attribute, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuMemRangeGetAttributes: Result< + unsafe extern "C" fn( + data: *mut *mut ::core::ffi::c_void, + dataSizes: *mut usize, + attributes: *mut CUmem_range_attribute, + numAttributes: usize, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerSetAttribute: Result< + unsafe extern "C" fn( + value: *const ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuPointerGetAttributes: Result< + unsafe extern "C" fn( + numAttributes: ::core::ffi::c_uint, + attributes: *mut CUpointer_attribute, + data: *mut *mut ::core::ffi::c_void, + ptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamCreate: Result< + unsafe extern "C" fn(phStream: *mut CUstream, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuStreamCreateWithPriority: Result< + unsafe extern "C" fn( + phStream: *mut CUstream, + flags: ::core::ffi::c_uint, + priority: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetPriority: Result< + unsafe extern "C" fn(hStream: CUstream, priority: *mut ::core::ffi::c_int) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetFlags: Result< + unsafe extern "C" fn(hStream: CUstream, flags: *mut ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCtx: Result< + unsafe extern "C" fn(hStream: CUstream, pctx: *mut CUcontext) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWaitEvent: Result< + unsafe extern "C" fn( + hStream: CUstream, + hEvent: CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamAddCallback: Result< + unsafe extern "C" fn( + hStream: CUstream, + callback: CUstreamCallback, + userData: *mut ::core::ffi::c_void, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamBeginCapture_v2: Result< + unsafe extern "C" fn(hStream: CUstream, mode: CUstreamCaptureMode) -> CUresult, + ::libloading::Error, + >, + pub cuThreadExchangeStreamCaptureMode: Result< + unsafe extern "C" fn(mode: *mut CUstreamCaptureMode) -> CUresult, + ::libloading::Error, + >, + pub cuStreamEndCapture: Result< + unsafe extern "C" fn(hStream: CUstream, phGraph: *mut CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuStreamIsCapturing: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus: *mut CUstreamCaptureStatus, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCaptureInfo: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamGetCaptureInfo_v2: Result< + unsafe extern "C" fn( + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + graph_out: *mut CUgraph, + dependencies_out: *mut *const CUgraphNode, + numDependencies_out: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamUpdateCaptureDependencies: Result< + unsafe extern "C" fn( + hStream: CUstream, + dependencies: *mut CUgraphNode, + numDependencies: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamAttachMemAsync: Result< + unsafe extern "C" fn( + hStream: CUstream, + dptr: CUdeviceptr, + length: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamQuery: + Result CUresult, ::libloading::Error>, + pub cuStreamSynchronize: + Result CUresult, ::libloading::Error>, + pub cuStreamDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuStreamCopyAttributes: + Result CUresult, ::libloading::Error>, + pub cuStreamGetAttribute: Result< + unsafe extern "C" fn( + hStream: CUstream, + attr: CUstreamAttrID, + value_out: *mut CUstreamAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamSetAttribute: Result< + unsafe extern "C" fn( + hStream: CUstream, + attr: CUstreamAttrID, + value: *const CUstreamAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuEventCreate: Result< + unsafe extern "C" fn(phEvent: *mut CUevent, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuEventRecord: Result< + unsafe extern "C" fn(hEvent: CUevent, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuEventRecordWithFlags: Result< + unsafe extern "C" fn( + hEvent: CUevent, + hStream: CUstream, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuEventQuery: + Result CUresult, ::libloading::Error>, + pub cuEventSynchronize: + Result CUresult, ::libloading::Error>, + pub cuEventDestroy_v2: + Result CUresult, ::libloading::Error>, + pub cuEventElapsedTime: Result< + unsafe extern "C" fn(pMilliseconds: *mut f32, hStart: CUevent, hEnd: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuImportExternalMemory: Result< + unsafe extern "C" fn( + extMem_out: *mut CUexternalMemory, + memHandleDesc: *const CUDA_EXTERNAL_MEMORY_HANDLE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuExternalMemoryGetMappedBuffer: Result< + unsafe extern "C" fn( + devPtr: *mut CUdeviceptr, + extMem: CUexternalMemory, + bufferDesc: *const CUDA_EXTERNAL_MEMORY_BUFFER_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuExternalMemoryGetMappedMipmappedArray: Result< + unsafe extern "C" fn( + mipmap: *mut CUmipmappedArray, + extMem: CUexternalMemory, + mipmapDesc: *const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDestroyExternalMemory: + Result CUresult, ::libloading::Error>, + pub cuImportExternalSemaphore: Result< + unsafe extern "C" fn( + extSem_out: *mut CUexternalSemaphore, + semHandleDesc: *const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSignalExternalSemaphoresAsync: Result< + unsafe extern "C" fn( + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuWaitExternalSemaphoresAsync: Result< + unsafe extern "C" fn( + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDestroyExternalSemaphore: + Result CUresult, ::libloading::Error>, + pub cuStreamWaitValue32: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWaitValue64: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWriteValue32: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamWriteValue64: Result< + unsafe extern "C" fn( + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuStreamBatchMemOp: Result< + unsafe extern "C" fn( + stream: CUstream, + count: ::core::ffi::c_uint, + paramArray: *mut CUstreamBatchMemOpParams, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncGetAttribute: Result< + unsafe extern "C" fn( + pi: *mut ::core::ffi::c_int, + attrib: CUfunction_attribute, + hfunc: CUfunction, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetAttribute: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + attrib: CUfunction_attribute, + value: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetCacheConfig: Result< + unsafe extern "C" fn(hfunc: CUfunction, config: CUfunc_cache) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetSharedMemConfig: Result< + unsafe extern "C" fn(hfunc: CUfunction, config: CUsharedconfig) -> CUresult, + ::libloading::Error, + >, + pub cuFuncGetModule: Result< + unsafe extern "C" fn(hmod: *mut CUmodule, hfunc: CUfunction) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchKernel: Result< + unsafe extern "C" fn( + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + extra: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchCooperativeKernel: Result< + unsafe extern "C" fn( + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchCooperativeKernelMultiDevice: Result< + unsafe extern "C" fn( + launchParamsList: *mut CUDA_LAUNCH_PARAMS, + numDevices: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchHostFunc: Result< + unsafe extern "C" fn( + hStream: CUstream, + fn_: CUhostFn, + userData: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetBlockShape: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + x: ::core::ffi::c_int, + y: ::core::ffi::c_int, + z: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuFuncSetSharedSize: Result< + unsafe extern "C" fn(hfunc: CUfunction, bytes: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetSize: Result< + unsafe extern "C" fn(hfunc: CUfunction, numbytes: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuParamSeti: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetf: Result< + unsafe extern "C" fn(hfunc: CUfunction, offset: ::core::ffi::c_int, value: f32) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetv: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + offset: ::core::ffi::c_int, + ptr: *mut ::core::ffi::c_void, + numbytes: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunch: Result CUresult, ::libloading::Error>, + pub cuLaunchGrid: Result< + unsafe extern "C" fn( + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuLaunchGridAsync: Result< + unsafe extern "C" fn( + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuParamSetTexRef: Result< + unsafe extern "C" fn( + hfunc: CUfunction, + texunit: ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphCreate: Result< + unsafe extern "C" fn(phGraph: *mut CUgraph, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddKernelNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemcpyNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemcpyNodeGetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, nodeParams: *mut CUDA_MEMCPY3D) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemcpyNodeSetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, nodeParams: *const CUDA_MEMCPY3D) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemsetNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemsetNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemsetNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddHostNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphHostNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *mut CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphHostNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddChildGraphNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + childGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphChildGraphNodeGetGraph: Result< + unsafe extern "C" fn(hNode: CUgraphNode, phGraph: *mut CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEmptyNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEventRecordNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventRecordNodeGetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event_out: *mut CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventRecordNodeSetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddEventWaitNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventWaitNodeGetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event_out: *mut CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphEventWaitNodeSetEvent: Result< + unsafe extern "C" fn(hNode: CUgraphNode, event: CUevent) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddExternalSemaphoresSignalNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresSignalNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresSignalNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddExternalSemaphoresWaitNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresWaitNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExternalSemaphoresWaitNodeSetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemAllocNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemAllocNodeGetParams: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + params_out: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddMemFreeNode: Result< + unsafe extern "C" fn( + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + dptr: CUdeviceptr, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphMemFreeNodeGetParams: Result< + unsafe extern "C" fn(hNode: CUgraphNode, dptr_out: *mut CUdeviceptr) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceGraphMemTrim: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetGraphMemAttribute: Result< + unsafe extern "C" fn( + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceSetGraphMemAttribute: Result< + unsafe extern "C" fn( + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphClone: Result< + unsafe extern "C" fn(phGraphClone: *mut CUgraph, originalGraph: CUgraph) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeFindInClone: Result< + unsafe extern "C" fn( + phNode: *mut CUgraphNode, + hOriginalNode: CUgraphNode, + hClonedGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetType: Result< + unsafe extern "C" fn(hNode: CUgraphNode, type_: *mut CUgraphNodeType) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetNodes: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + nodes: *mut CUgraphNode, + numNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetRootNodes: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + rootNodes: *mut CUgraphNode, + numRootNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphGetEdges: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *mut CUgraphNode, + to: *mut CUgraphNode, + numEdges: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetDependencies: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + dependencies: *mut CUgraphNode, + numDependencies: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetDependentNodes: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + dependentNodes: *mut CUgraphNode, + numDependentNodes: *mut usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphAddDependencies: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphRemoveDependencies: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphDestroyNode: + Result CUresult, ::libloading::Error>, + pub cuGraphInstantiate_v2: Result< + unsafe extern "C" fn( + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + phErrorNode: *mut CUgraphNode, + logBuffer: *mut ::core::ffi::c_char, + bufferSize: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphInstantiateWithFlags: Result< + unsafe extern "C" fn( + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecKernelNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecMemcpyNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecMemsetNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecHostNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecChildGraphNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + childGraph: CUgraph, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecEventRecordNodeSetEvent: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecEventWaitNodeSetEvent: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecExternalSemaphoresSignalNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecExternalSemaphoresWaitNodeSetParams: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeSetEnabled: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + isEnabled: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphNodeGetEnabled: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + isEnabled: *mut ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphUpload: Result< + unsafe extern "C" fn(hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuGraphLaunch: Result< + unsafe extern "C" fn(hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult, + ::libloading::Error, + >, + pub cuGraphExecDestroy: + Result CUresult, ::libloading::Error>, + pub cuGraphDestroy: + Result CUresult, ::libloading::Error>, + pub cuGraphExecUpdate: Result< + unsafe extern "C" fn( + hGraphExec: CUgraphExec, + hGraph: CUgraph, + hErrorNode_out: *mut CUgraphNode, + updateResult_out: *mut CUgraphExecUpdateResult, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeCopyAttributes: Result< + unsafe extern "C" fn(dst: CUgraphNode, src: CUgraphNode) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeGetAttribute: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value_out: *mut CUkernelNodeAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphKernelNodeSetAttribute: Result< + unsafe extern "C" fn( + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value: *const CUkernelNodeAttrValue, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphDebugDotPrint: Result< + unsafe extern "C" fn( + hGraph: CUgraph, + path: *const ::core::ffi::c_char, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectCreate: Result< + unsafe extern "C" fn( + object_out: *mut CUuserObject, + ptr: *mut ::core::ffi::c_void, + destroy: CUhostFn, + initialRefcount: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectRetain: Result< + unsafe extern "C" fn(object: CUuserObject, count: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuUserObjectRelease: Result< + unsafe extern "C" fn(object: CUuserObject, count: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphRetainUserObject: Result< + unsafe extern "C" fn( + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphReleaseUserObject: Result< + unsafe extern "C" fn( + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxActiveBlocksPerMultiprocessor: Result< + unsafe extern "C" fn( + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags: Result< + unsafe extern "C" fn( + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxPotentialBlockSize: Result< + unsafe extern "C" fn( + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyMaxPotentialBlockSizeWithFlags: Result< + unsafe extern "C" fn( + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuOccupancyAvailableDynamicSMemPerBlock: Result< + unsafe extern "C" fn( + dynamicSmemSize: *mut usize, + func: CUfunction, + numBlocks: ::core::ffi::c_int, + blockSize: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetArray: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmappedArray: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + hMipmappedArray: CUmipmappedArray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddress_v2: Result< + unsafe extern "C" fn( + ByteOffset: *mut usize, + hTexRef: CUtexref, + dptr: CUdeviceptr, + bytes: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddress2D_v3: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + desc: *const CUDA_ARRAY_DESCRIPTOR, + dptr: CUdeviceptr, + Pitch: usize, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFormat: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + fmt: CUarray_format, + NumPackedComponents: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetAddressMode: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + am: CUaddress_mode, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFilterMode: Result< + unsafe extern "C" fn(hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmapFilterMode: Result< + unsafe extern "C" fn(hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMipmapLevelBias: + Result CUresult, ::libloading::Error>, + pub cuTexRefSetMipmapLevelClamp: Result< + unsafe extern "C" fn( + hTexRef: CUtexref, + minMipmapLevelClamp: f32, + maxMipmapLevelClamp: f32, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetMaxAnisotropy: Result< + unsafe extern "C" fn(hTexRef: CUtexref, maxAniso: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetBorderColor: Result< + unsafe extern "C" fn(hTexRef: CUtexref, pBorderColor: *mut f32) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefSetFlags: Result< + unsafe extern "C" fn(hTexRef: CUtexref, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetAddress_v2: Result< + unsafe extern "C" fn(pdptr: *mut CUdeviceptr, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetArray: Result< + unsafe extern "C" fn(phArray: *mut CUarray, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmappedArray: Result< + unsafe extern "C" fn( + phMipmappedArray: *mut CUmipmappedArray, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetAddressMode: Result< + unsafe extern "C" fn( + pam: *mut CUaddress_mode, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFilterMode: Result< + unsafe extern "C" fn(pfm: *mut CUfilter_mode, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFormat: Result< + unsafe extern "C" fn( + pFormat: *mut CUarray_format, + pNumChannels: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapFilterMode: Result< + unsafe extern "C" fn(pfm: *mut CUfilter_mode, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapLevelBias: Result< + unsafe extern "C" fn(pbias: *mut f32, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMipmapLevelClamp: Result< + unsafe extern "C" fn( + pminMipmapLevelClamp: *mut f32, + pmaxMipmapLevelClamp: *mut f32, + hTexRef: CUtexref, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetMaxAnisotropy: Result< + unsafe extern "C" fn(pmaxAniso: *mut ::core::ffi::c_int, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetBorderColor: Result< + unsafe extern "C" fn(pBorderColor: *mut f32, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefGetFlags: Result< + unsafe extern "C" fn(pFlags: *mut ::core::ffi::c_uint, hTexRef: CUtexref) -> CUresult, + ::libloading::Error, + >, + pub cuTexRefCreate: + Result CUresult, ::libloading::Error>, + pub cuTexRefDestroy: + Result CUresult, ::libloading::Error>, + pub cuSurfRefSetArray: Result< + unsafe extern "C" fn( + hSurfRef: CUsurfref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfRefGetArray: Result< + unsafe extern "C" fn(phArray: *mut CUarray, hSurfRef: CUsurfref) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectCreate: Result< + unsafe extern "C" fn( + pTexObject: *mut CUtexObject, + pResDesc: *const CUDA_RESOURCE_DESC, + pTexDesc: *const CUDA_TEXTURE_DESC, + pResViewDesc: *const CUDA_RESOURCE_VIEW_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectDestroy: + Result CUresult, ::libloading::Error>, + pub cuTexObjectGetResourceDesc: Result< + unsafe extern "C" fn(pResDesc: *mut CUDA_RESOURCE_DESC, texObject: CUtexObject) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectGetTextureDesc: Result< + unsafe extern "C" fn(pTexDesc: *mut CUDA_TEXTURE_DESC, texObject: CUtexObject) -> CUresult, + ::libloading::Error, + >, + pub cuTexObjectGetResourceViewDesc: Result< + unsafe extern "C" fn( + pResViewDesc: *mut CUDA_RESOURCE_VIEW_DESC, + texObject: CUtexObject, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfObjectCreate: Result< + unsafe extern "C" fn( + pSurfObject: *mut CUsurfObject, + pResDesc: *const CUDA_RESOURCE_DESC, + ) -> CUresult, + ::libloading::Error, + >, + pub cuSurfObjectDestroy: + Result CUresult, ::libloading::Error>, + pub cuSurfObjectGetResourceDesc: Result< + unsafe extern "C" fn( + pResDesc: *mut CUDA_RESOURCE_DESC, + surfObject: CUsurfObject, + ) -> CUresult, + ::libloading::Error, + >, + pub cuDeviceCanAccessPeer: Result< + unsafe extern "C" fn( + canAccessPeer: *mut ::core::ffi::c_int, + dev: CUdevice, + peerDev: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuCtxEnablePeerAccess: Result< + unsafe extern "C" fn(peerContext: CUcontext, Flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuCtxDisablePeerAccess: + Result CUresult, ::libloading::Error>, + pub cuDeviceGetP2PAttribute: Result< + unsafe extern "C" fn( + value: *mut ::core::ffi::c_int, + attrib: CUdevice_P2PAttribute, + srcDevice: CUdevice, + dstDevice: CUdevice, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsUnregisterResource: + Result CUresult, ::libloading::Error>, + pub cuGraphicsSubResourceGetMappedArray: Result< + unsafe extern "C" fn( + pArray: *mut CUarray, + resource: CUgraphicsResource, + arrayIndex: ::core::ffi::c_uint, + mipLevel: ::core::ffi::c_uint, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceGetMappedMipmappedArray: Result< + unsafe extern "C" fn( + pMipmappedArray: *mut CUmipmappedArray, + resource: CUgraphicsResource, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceGetMappedPointer_v2: Result< + unsafe extern "C" fn( + pDevPtr: *mut CUdeviceptr, + pSize: *mut usize, + resource: CUgraphicsResource, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsResourceSetMapFlags_v2: Result< + unsafe extern "C" fn(resource: CUgraphicsResource, flags: ::core::ffi::c_uint) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsMapResources: Result< + unsafe extern "C" fn( + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGraphicsUnmapResources: Result< + unsafe extern "C" fn( + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGetProcAddress: Result< + unsafe extern "C" fn( + symbol: *const ::core::ffi::c_char, + pfn: *mut *mut ::core::ffi::c_void, + cudaVersion: ::core::ffi::c_int, + flags: cuuint64_t, + ) -> CUresult, + ::libloading::Error, + >, + pub cuGetExportTable: Result< + unsafe extern "C" fn( + ppExportTable: *mut *const ::core::ffi::c_void, + pExportTableId: *const CUuuid, + ) -> CUresult, + ::libloading::Error, + >, + pub cuProfilerInitialize: Result< + unsafe extern "C" fn( + configFile: *const ::core::ffi::c_char, + outputFile: *const ::core::ffi::c_char, + outputMode: CUoutput_mode, + ) -> CUresult, + ::libloading::Error, + >, + pub cuProfilerStart: Result CUresult, ::libloading::Error>, + pub cuProfilerStop: Result CUresult, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let cuGetErrorString = __library.get(b"cuGetErrorString\0").map(|sym| *sym); + let cuGetErrorName = __library.get(b"cuGetErrorName\0").map(|sym| *sym); + let cuInit = __library.get(b"cuInit\0").map(|sym| *sym); + let cuDriverGetVersion = __library.get(b"cuDriverGetVersion\0").map(|sym| *sym); + let cuDeviceGet = __library.get(b"cuDeviceGet\0").map(|sym| *sym); + let cuDeviceGetCount = __library.get(b"cuDeviceGetCount\0").map(|sym| *sym); + let cuDeviceGetName = __library.get(b"cuDeviceGetName\0").map(|sym| *sym); + let cuDeviceGetUuid = __library.get(b"cuDeviceGetUuid\0").map(|sym| *sym); + let cuDeviceGetUuid_v2 = __library.get(b"cuDeviceGetUuid_v2\0").map(|sym| *sym); + let cuDeviceGetLuid = __library.get(b"cuDeviceGetLuid\0").map(|sym| *sym); + let cuDeviceTotalMem_v2 = __library.get(b"cuDeviceTotalMem_v2\0").map(|sym| *sym); + let cuDeviceGetTexture1DLinearMaxWidth = __library + .get(b"cuDeviceGetTexture1DLinearMaxWidth\0") + .map(|sym| *sym); + let cuDeviceGetAttribute = __library.get(b"cuDeviceGetAttribute\0").map(|sym| *sym); + let cuDeviceGetNvSciSyncAttributes = __library + .get(b"cuDeviceGetNvSciSyncAttributes\0") + .map(|sym| *sym); + let cuDeviceSetMemPool = __library.get(b"cuDeviceSetMemPool\0").map(|sym| *sym); + let cuDeviceGetMemPool = __library.get(b"cuDeviceGetMemPool\0").map(|sym| *sym); + let cuDeviceGetDefaultMemPool = __library + .get(b"cuDeviceGetDefaultMemPool\0") + .map(|sym| *sym); + let cuFlushGPUDirectRDMAWrites = __library + .get(b"cuFlushGPUDirectRDMAWrites\0") + .map(|sym| *sym); + let cuDeviceGetProperties = __library.get(b"cuDeviceGetProperties\0").map(|sym| *sym); + let cuDeviceComputeCapability = __library + .get(b"cuDeviceComputeCapability\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxRetain = __library.get(b"cuDevicePrimaryCtxRetain\0").map(|sym| *sym); + let cuDevicePrimaryCtxRelease_v2 = __library + .get(b"cuDevicePrimaryCtxRelease_v2\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxSetFlags_v2 = __library + .get(b"cuDevicePrimaryCtxSetFlags_v2\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxGetState = __library + .get(b"cuDevicePrimaryCtxGetState\0") + .map(|sym| *sym); + let cuDevicePrimaryCtxReset_v2 = __library + .get(b"cuDevicePrimaryCtxReset_v2\0") + .map(|sym| *sym); + let cuDeviceGetExecAffinitySupport = __library + .get(b"cuDeviceGetExecAffinitySupport\0") + .map(|sym| *sym); + let cuCtxCreate_v2 = __library.get(b"cuCtxCreate_v2\0").map(|sym| *sym); + let cuCtxCreate_v3 = __library.get(b"cuCtxCreate_v3\0").map(|sym| *sym); + let cuCtxDestroy_v2 = __library.get(b"cuCtxDestroy_v2\0").map(|sym| *sym); + let cuCtxPushCurrent_v2 = __library.get(b"cuCtxPushCurrent_v2\0").map(|sym| *sym); + let cuCtxPopCurrent_v2 = __library.get(b"cuCtxPopCurrent_v2\0").map(|sym| *sym); + let cuCtxSetCurrent = __library.get(b"cuCtxSetCurrent\0").map(|sym| *sym); + let cuCtxGetCurrent = __library.get(b"cuCtxGetCurrent\0").map(|sym| *sym); + let cuCtxGetDevice = __library.get(b"cuCtxGetDevice\0").map(|sym| *sym); + let cuCtxGetFlags = __library.get(b"cuCtxGetFlags\0").map(|sym| *sym); + let cuCtxSynchronize = __library.get(b"cuCtxSynchronize\0").map(|sym| *sym); + let cuCtxSetLimit = __library.get(b"cuCtxSetLimit\0").map(|sym| *sym); + let cuCtxGetLimit = __library.get(b"cuCtxGetLimit\0").map(|sym| *sym); + let cuCtxGetCacheConfig = __library.get(b"cuCtxGetCacheConfig\0").map(|sym| *sym); + let cuCtxSetCacheConfig = __library.get(b"cuCtxSetCacheConfig\0").map(|sym| *sym); + let cuCtxGetSharedMemConfig = __library.get(b"cuCtxGetSharedMemConfig\0").map(|sym| *sym); + let cuCtxSetSharedMemConfig = __library.get(b"cuCtxSetSharedMemConfig\0").map(|sym| *sym); + let cuCtxGetApiVersion = __library.get(b"cuCtxGetApiVersion\0").map(|sym| *sym); + let cuCtxGetStreamPriorityRange = __library + .get(b"cuCtxGetStreamPriorityRange\0") + .map(|sym| *sym); + let cuCtxResetPersistingL2Cache = __library + .get(b"cuCtxResetPersistingL2Cache\0") + .map(|sym| *sym); + let cuCtxGetExecAffinity = __library.get(b"cuCtxGetExecAffinity\0").map(|sym| *sym); + let cuCtxAttach = __library.get(b"cuCtxAttach\0").map(|sym| *sym); + let cuCtxDetach = __library.get(b"cuCtxDetach\0").map(|sym| *sym); + let cuModuleLoad = __library.get(b"cuModuleLoad\0").map(|sym| *sym); + let cuModuleLoadData = __library.get(b"cuModuleLoadData\0").map(|sym| *sym); + let cuModuleLoadDataEx = __library.get(b"cuModuleLoadDataEx\0").map(|sym| *sym); + let cuModuleLoadFatBinary = __library.get(b"cuModuleLoadFatBinary\0").map(|sym| *sym); + let cuModuleUnload = __library.get(b"cuModuleUnload\0").map(|sym| *sym); + let cuModuleGetFunction = __library.get(b"cuModuleGetFunction\0").map(|sym| *sym); + let cuModuleGetGlobal_v2 = __library.get(b"cuModuleGetGlobal_v2\0").map(|sym| *sym); + let cuModuleGetTexRef = __library.get(b"cuModuleGetTexRef\0").map(|sym| *sym); + let cuModuleGetSurfRef = __library.get(b"cuModuleGetSurfRef\0").map(|sym| *sym); + let cuLinkCreate_v2 = __library.get(b"cuLinkCreate_v2\0").map(|sym| *sym); + let cuLinkAddData_v2 = __library.get(b"cuLinkAddData_v2\0").map(|sym| *sym); + let cuLinkAddFile_v2 = __library.get(b"cuLinkAddFile_v2\0").map(|sym| *sym); + let cuLinkComplete = __library.get(b"cuLinkComplete\0").map(|sym| *sym); + let cuLinkDestroy = __library.get(b"cuLinkDestroy\0").map(|sym| *sym); + let cuMemGetInfo_v2 = __library.get(b"cuMemGetInfo_v2\0").map(|sym| *sym); + let cuMemAlloc_v2 = __library.get(b"cuMemAlloc_v2\0").map(|sym| *sym); + let cuMemAllocPitch_v2 = __library.get(b"cuMemAllocPitch_v2\0").map(|sym| *sym); + let cuMemFree_v2 = __library.get(b"cuMemFree_v2\0").map(|sym| *sym); + let cuMemGetAddressRange_v2 = __library.get(b"cuMemGetAddressRange_v2\0").map(|sym| *sym); + let cuMemAllocHost_v2 = __library.get(b"cuMemAllocHost_v2\0").map(|sym| *sym); + let cuMemFreeHost = __library.get(b"cuMemFreeHost\0").map(|sym| *sym); + let cuMemHostAlloc = __library.get(b"cuMemHostAlloc\0").map(|sym| *sym); + let cuMemHostGetDevicePointer_v2 = __library + .get(b"cuMemHostGetDevicePointer_v2\0") + .map(|sym| *sym); + let cuMemHostGetFlags = __library.get(b"cuMemHostGetFlags\0").map(|sym| *sym); + let cuMemAllocManaged = __library.get(b"cuMemAllocManaged\0").map(|sym| *sym); + let cuDeviceGetByPCIBusId = __library.get(b"cuDeviceGetByPCIBusId\0").map(|sym| *sym); + let cuDeviceGetPCIBusId = __library.get(b"cuDeviceGetPCIBusId\0").map(|sym| *sym); + let cuIpcGetEventHandle = __library.get(b"cuIpcGetEventHandle\0").map(|sym| *sym); + let cuIpcOpenEventHandle = __library.get(b"cuIpcOpenEventHandle\0").map(|sym| *sym); + let cuIpcGetMemHandle = __library.get(b"cuIpcGetMemHandle\0").map(|sym| *sym); + let cuIpcOpenMemHandle_v2 = __library.get(b"cuIpcOpenMemHandle_v2\0").map(|sym| *sym); + let cuIpcCloseMemHandle = __library.get(b"cuIpcCloseMemHandle\0").map(|sym| *sym); + let cuMemHostRegister_v2 = __library.get(b"cuMemHostRegister_v2\0").map(|sym| *sym); + let cuMemHostUnregister = __library.get(b"cuMemHostUnregister\0").map(|sym| *sym); + let cuMemcpy = __library.get(b"cuMemcpy\0").map(|sym| *sym); + let cuMemcpyPeer = __library.get(b"cuMemcpyPeer\0").map(|sym| *sym); + let cuMemcpyHtoD_v2 = __library.get(b"cuMemcpyHtoD_v2\0").map(|sym| *sym); + let cuMemcpyDtoH_v2 = __library.get(b"cuMemcpyDtoH_v2\0").map(|sym| *sym); + let cuMemcpyDtoD_v2 = __library.get(b"cuMemcpyDtoD_v2\0").map(|sym| *sym); + let cuMemcpyDtoA_v2 = __library.get(b"cuMemcpyDtoA_v2\0").map(|sym| *sym); + let cuMemcpyAtoD_v2 = __library.get(b"cuMemcpyAtoD_v2\0").map(|sym| *sym); + let cuMemcpyHtoA_v2 = __library.get(b"cuMemcpyHtoA_v2\0").map(|sym| *sym); + let cuMemcpyAtoH_v2 = __library.get(b"cuMemcpyAtoH_v2\0").map(|sym| *sym); + let cuMemcpyAtoA_v2 = __library.get(b"cuMemcpyAtoA_v2\0").map(|sym| *sym); + let cuMemcpy2D_v2 = __library.get(b"cuMemcpy2D_v2\0").map(|sym| *sym); + let cuMemcpy2DUnaligned_v2 = __library.get(b"cuMemcpy2DUnaligned_v2\0").map(|sym| *sym); + let cuMemcpy3D_v2 = __library.get(b"cuMemcpy3D_v2\0").map(|sym| *sym); + let cuMemcpy3DPeer = __library.get(b"cuMemcpy3DPeer\0").map(|sym| *sym); + let cuMemcpyAsync = __library.get(b"cuMemcpyAsync\0").map(|sym| *sym); + let cuMemcpyPeerAsync = __library.get(b"cuMemcpyPeerAsync\0").map(|sym| *sym); + let cuMemcpyHtoDAsync_v2 = __library.get(b"cuMemcpyHtoDAsync_v2\0").map(|sym| *sym); + let cuMemcpyDtoHAsync_v2 = __library.get(b"cuMemcpyDtoHAsync_v2\0").map(|sym| *sym); + let cuMemcpyDtoDAsync_v2 = __library.get(b"cuMemcpyDtoDAsync_v2\0").map(|sym| *sym); + let cuMemcpyHtoAAsync_v2 = __library.get(b"cuMemcpyHtoAAsync_v2\0").map(|sym| *sym); + let cuMemcpyAtoHAsync_v2 = __library.get(b"cuMemcpyAtoHAsync_v2\0").map(|sym| *sym); + let cuMemcpy2DAsync_v2 = __library.get(b"cuMemcpy2DAsync_v2\0").map(|sym| *sym); + let cuMemcpy3DAsync_v2 = __library.get(b"cuMemcpy3DAsync_v2\0").map(|sym| *sym); + let cuMemcpy3DPeerAsync = __library.get(b"cuMemcpy3DPeerAsync\0").map(|sym| *sym); + let cuMemsetD8_v2 = __library.get(b"cuMemsetD8_v2\0").map(|sym| *sym); + let cuMemsetD16_v2 = __library.get(b"cuMemsetD16_v2\0").map(|sym| *sym); + let cuMemsetD32_v2 = __library.get(b"cuMemsetD32_v2\0").map(|sym| *sym); + let cuMemsetD2D8_v2 = __library.get(b"cuMemsetD2D8_v2\0").map(|sym| *sym); + let cuMemsetD2D16_v2 = __library.get(b"cuMemsetD2D16_v2\0").map(|sym| *sym); + let cuMemsetD2D32_v2 = __library.get(b"cuMemsetD2D32_v2\0").map(|sym| *sym); + let cuMemsetD8Async = __library.get(b"cuMemsetD8Async\0").map(|sym| *sym); + let cuMemsetD16Async = __library.get(b"cuMemsetD16Async\0").map(|sym| *sym); + let cuMemsetD32Async = __library.get(b"cuMemsetD32Async\0").map(|sym| *sym); + let cuMemsetD2D8Async = __library.get(b"cuMemsetD2D8Async\0").map(|sym| *sym); + let cuMemsetD2D16Async = __library.get(b"cuMemsetD2D16Async\0").map(|sym| *sym); + let cuMemsetD2D32Async = __library.get(b"cuMemsetD2D32Async\0").map(|sym| *sym); + let cuArrayCreate_v2 = __library.get(b"cuArrayCreate_v2\0").map(|sym| *sym); + let cuArrayGetDescriptor_v2 = __library.get(b"cuArrayGetDescriptor_v2\0").map(|sym| *sym); + let cuArrayGetSparseProperties = __library + .get(b"cuArrayGetSparseProperties\0") + .map(|sym| *sym); + let cuMipmappedArrayGetSparseProperties = __library + .get(b"cuMipmappedArrayGetSparseProperties\0") + .map(|sym| *sym); + let cuArrayGetMemoryRequirements = __library + .get(b"cuArrayGetMemoryRequirements\0") + .map(|sym| *sym); + let cuMipmappedArrayGetMemoryRequirements = __library + .get(b"cuMipmappedArrayGetMemoryRequirements\0") + .map(|sym| *sym); + let cuArrayGetPlane = __library.get(b"cuArrayGetPlane\0").map(|sym| *sym); + let cuArrayDestroy = __library.get(b"cuArrayDestroy\0").map(|sym| *sym); + let cuArray3DCreate_v2 = __library.get(b"cuArray3DCreate_v2\0").map(|sym| *sym); + let cuArray3DGetDescriptor_v2 = __library + .get(b"cuArray3DGetDescriptor_v2\0") + .map(|sym| *sym); + let cuMipmappedArrayCreate = __library.get(b"cuMipmappedArrayCreate\0").map(|sym| *sym); + let cuMipmappedArrayGetLevel = __library.get(b"cuMipmappedArrayGetLevel\0").map(|sym| *sym); + let cuMipmappedArrayDestroy = __library.get(b"cuMipmappedArrayDestroy\0").map(|sym| *sym); + let cuMemAddressReserve = __library.get(b"cuMemAddressReserve\0").map(|sym| *sym); + let cuMemAddressFree = __library.get(b"cuMemAddressFree\0").map(|sym| *sym); + let cuMemCreate = __library.get(b"cuMemCreate\0").map(|sym| *sym); + let cuMemRelease = __library.get(b"cuMemRelease\0").map(|sym| *sym); + let cuMemMap = __library.get(b"cuMemMap\0").map(|sym| *sym); + let cuMemMapArrayAsync = __library.get(b"cuMemMapArrayAsync\0").map(|sym| *sym); + let cuMemUnmap = __library.get(b"cuMemUnmap\0").map(|sym| *sym); + let cuMemSetAccess = __library.get(b"cuMemSetAccess\0").map(|sym| *sym); + let cuMemGetAccess = __library.get(b"cuMemGetAccess\0").map(|sym| *sym); + let cuMemExportToShareableHandle = __library + .get(b"cuMemExportToShareableHandle\0") + .map(|sym| *sym); + let cuMemImportFromShareableHandle = __library + .get(b"cuMemImportFromShareableHandle\0") + .map(|sym| *sym); + let cuMemGetAllocationGranularity = __library + .get(b"cuMemGetAllocationGranularity\0") + .map(|sym| *sym); + let cuMemGetAllocationPropertiesFromHandle = __library + .get(b"cuMemGetAllocationPropertiesFromHandle\0") + .map(|sym| *sym); + let cuMemRetainAllocationHandle = __library + .get(b"cuMemRetainAllocationHandle\0") + .map(|sym| *sym); + let cuMemFreeAsync = __library.get(b"cuMemFreeAsync\0").map(|sym| *sym); + let cuMemAllocAsync = __library.get(b"cuMemAllocAsync\0").map(|sym| *sym); + let cuMemPoolTrimTo = __library.get(b"cuMemPoolTrimTo\0").map(|sym| *sym); + let cuMemPoolSetAttribute = __library.get(b"cuMemPoolSetAttribute\0").map(|sym| *sym); + let cuMemPoolGetAttribute = __library.get(b"cuMemPoolGetAttribute\0").map(|sym| *sym); + let cuMemPoolSetAccess = __library.get(b"cuMemPoolSetAccess\0").map(|sym| *sym); + let cuMemPoolGetAccess = __library.get(b"cuMemPoolGetAccess\0").map(|sym| *sym); + let cuMemPoolCreate = __library.get(b"cuMemPoolCreate\0").map(|sym| *sym); + let cuMemPoolDestroy = __library.get(b"cuMemPoolDestroy\0").map(|sym| *sym); + let cuMemAllocFromPoolAsync = __library.get(b"cuMemAllocFromPoolAsync\0").map(|sym| *sym); + let cuMemPoolExportToShareableHandle = __library + .get(b"cuMemPoolExportToShareableHandle\0") + .map(|sym| *sym); + let cuMemPoolImportFromShareableHandle = __library + .get(b"cuMemPoolImportFromShareableHandle\0") + .map(|sym| *sym); + let cuMemPoolExportPointer = __library.get(b"cuMemPoolExportPointer\0").map(|sym| *sym); + let cuMemPoolImportPointer = __library.get(b"cuMemPoolImportPointer\0").map(|sym| *sym); + let cuPointerGetAttribute = __library.get(b"cuPointerGetAttribute\0").map(|sym| *sym); + let cuMemPrefetchAsync = __library.get(b"cuMemPrefetchAsync\0").map(|sym| *sym); + let cuMemAdvise = __library.get(b"cuMemAdvise\0").map(|sym| *sym); + let cuMemRangeGetAttribute = __library.get(b"cuMemRangeGetAttribute\0").map(|sym| *sym); + let cuMemRangeGetAttributes = __library.get(b"cuMemRangeGetAttributes\0").map(|sym| *sym); + let cuPointerSetAttribute = __library.get(b"cuPointerSetAttribute\0").map(|sym| *sym); + let cuPointerGetAttributes = __library.get(b"cuPointerGetAttributes\0").map(|sym| *sym); + let cuStreamCreate = __library.get(b"cuStreamCreate\0").map(|sym| *sym); + let cuStreamCreateWithPriority = __library + .get(b"cuStreamCreateWithPriority\0") + .map(|sym| *sym); + let cuStreamGetPriority = __library.get(b"cuStreamGetPriority\0").map(|sym| *sym); + let cuStreamGetFlags = __library.get(b"cuStreamGetFlags\0").map(|sym| *sym); + let cuStreamGetCtx = __library.get(b"cuStreamGetCtx\0").map(|sym| *sym); + let cuStreamWaitEvent = __library.get(b"cuStreamWaitEvent\0").map(|sym| *sym); + let cuStreamAddCallback = __library.get(b"cuStreamAddCallback\0").map(|sym| *sym); + let cuStreamBeginCapture_v2 = __library.get(b"cuStreamBeginCapture_v2\0").map(|sym| *sym); + let cuThreadExchangeStreamCaptureMode = __library + .get(b"cuThreadExchangeStreamCaptureMode\0") + .map(|sym| *sym); + let cuStreamEndCapture = __library.get(b"cuStreamEndCapture\0").map(|sym| *sym); + let cuStreamIsCapturing = __library.get(b"cuStreamIsCapturing\0").map(|sym| *sym); + let cuStreamGetCaptureInfo = __library.get(b"cuStreamGetCaptureInfo\0").map(|sym| *sym); + let cuStreamGetCaptureInfo_v2 = __library + .get(b"cuStreamGetCaptureInfo_v2\0") + .map(|sym| *sym); + let cuStreamUpdateCaptureDependencies = __library + .get(b"cuStreamUpdateCaptureDependencies\0") + .map(|sym| *sym); + let cuStreamAttachMemAsync = __library.get(b"cuStreamAttachMemAsync\0").map(|sym| *sym); + let cuStreamQuery = __library.get(b"cuStreamQuery\0").map(|sym| *sym); + let cuStreamSynchronize = __library.get(b"cuStreamSynchronize\0").map(|sym| *sym); + let cuStreamDestroy_v2 = __library.get(b"cuStreamDestroy_v2\0").map(|sym| *sym); + let cuStreamCopyAttributes = __library.get(b"cuStreamCopyAttributes\0").map(|sym| *sym); + let cuStreamGetAttribute = __library.get(b"cuStreamGetAttribute\0").map(|sym| *sym); + let cuStreamSetAttribute = __library.get(b"cuStreamSetAttribute\0").map(|sym| *sym); + let cuEventCreate = __library.get(b"cuEventCreate\0").map(|sym| *sym); + let cuEventRecord = __library.get(b"cuEventRecord\0").map(|sym| *sym); + let cuEventRecordWithFlags = __library.get(b"cuEventRecordWithFlags\0").map(|sym| *sym); + let cuEventQuery = __library.get(b"cuEventQuery\0").map(|sym| *sym); + let cuEventSynchronize = __library.get(b"cuEventSynchronize\0").map(|sym| *sym); + let cuEventDestroy_v2 = __library.get(b"cuEventDestroy_v2\0").map(|sym| *sym); + let cuEventElapsedTime = __library.get(b"cuEventElapsedTime\0").map(|sym| *sym); + let cuImportExternalMemory = __library.get(b"cuImportExternalMemory\0").map(|sym| *sym); + let cuExternalMemoryGetMappedBuffer = __library + .get(b"cuExternalMemoryGetMappedBuffer\0") + .map(|sym| *sym); + let cuExternalMemoryGetMappedMipmappedArray = __library + .get(b"cuExternalMemoryGetMappedMipmappedArray\0") + .map(|sym| *sym); + let cuDestroyExternalMemory = __library.get(b"cuDestroyExternalMemory\0").map(|sym| *sym); + let cuImportExternalSemaphore = __library + .get(b"cuImportExternalSemaphore\0") + .map(|sym| *sym); + let cuSignalExternalSemaphoresAsync = __library + .get(b"cuSignalExternalSemaphoresAsync\0") + .map(|sym| *sym); + let cuWaitExternalSemaphoresAsync = __library + .get(b"cuWaitExternalSemaphoresAsync\0") + .map(|sym| *sym); + let cuDestroyExternalSemaphore = __library + .get(b"cuDestroyExternalSemaphore\0") + .map(|sym| *sym); + let cuStreamWaitValue32 = __library.get(b"cuStreamWaitValue32\0").map(|sym| *sym); + let cuStreamWaitValue64 = __library.get(b"cuStreamWaitValue64\0").map(|sym| *sym); + let cuStreamWriteValue32 = __library.get(b"cuStreamWriteValue32\0").map(|sym| *sym); + let cuStreamWriteValue64 = __library.get(b"cuStreamWriteValue64\0").map(|sym| *sym); + let cuStreamBatchMemOp = __library.get(b"cuStreamBatchMemOp\0").map(|sym| *sym); + let cuFuncGetAttribute = __library.get(b"cuFuncGetAttribute\0").map(|sym| *sym); + let cuFuncSetAttribute = __library.get(b"cuFuncSetAttribute\0").map(|sym| *sym); + let cuFuncSetCacheConfig = __library.get(b"cuFuncSetCacheConfig\0").map(|sym| *sym); + let cuFuncSetSharedMemConfig = __library.get(b"cuFuncSetSharedMemConfig\0").map(|sym| *sym); + let cuFuncGetModule = __library.get(b"cuFuncGetModule\0").map(|sym| *sym); + let cuLaunchKernel = __library.get(b"cuLaunchKernel\0").map(|sym| *sym); + let cuLaunchCooperativeKernel = __library + .get(b"cuLaunchCooperativeKernel\0") + .map(|sym| *sym); + let cuLaunchCooperativeKernelMultiDevice = __library + .get(b"cuLaunchCooperativeKernelMultiDevice\0") + .map(|sym| *sym); + let cuLaunchHostFunc = __library.get(b"cuLaunchHostFunc\0").map(|sym| *sym); + let cuFuncSetBlockShape = __library.get(b"cuFuncSetBlockShape\0").map(|sym| *sym); + let cuFuncSetSharedSize = __library.get(b"cuFuncSetSharedSize\0").map(|sym| *sym); + let cuParamSetSize = __library.get(b"cuParamSetSize\0").map(|sym| *sym); + let cuParamSeti = __library.get(b"cuParamSeti\0").map(|sym| *sym); + let cuParamSetf = __library.get(b"cuParamSetf\0").map(|sym| *sym); + let cuParamSetv = __library.get(b"cuParamSetv\0").map(|sym| *sym); + let cuLaunch = __library.get(b"cuLaunch\0").map(|sym| *sym); + let cuLaunchGrid = __library.get(b"cuLaunchGrid\0").map(|sym| *sym); + let cuLaunchGridAsync = __library.get(b"cuLaunchGridAsync\0").map(|sym| *sym); + let cuParamSetTexRef = __library.get(b"cuParamSetTexRef\0").map(|sym| *sym); + let cuGraphCreate = __library.get(b"cuGraphCreate\0").map(|sym| *sym); + let cuGraphAddKernelNode = __library.get(b"cuGraphAddKernelNode\0").map(|sym| *sym); + let cuGraphKernelNodeGetParams = __library + .get(b"cuGraphKernelNodeGetParams\0") + .map(|sym| *sym); + let cuGraphKernelNodeSetParams = __library + .get(b"cuGraphKernelNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemcpyNode = __library.get(b"cuGraphAddMemcpyNode\0").map(|sym| *sym); + let cuGraphMemcpyNodeGetParams = __library + .get(b"cuGraphMemcpyNodeGetParams\0") + .map(|sym| *sym); + let cuGraphMemcpyNodeSetParams = __library + .get(b"cuGraphMemcpyNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemsetNode = __library.get(b"cuGraphAddMemsetNode\0").map(|sym| *sym); + let cuGraphMemsetNodeGetParams = __library + .get(b"cuGraphMemsetNodeGetParams\0") + .map(|sym| *sym); + let cuGraphMemsetNodeSetParams = __library + .get(b"cuGraphMemsetNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddHostNode = __library.get(b"cuGraphAddHostNode\0").map(|sym| *sym); + let cuGraphHostNodeGetParams = __library.get(b"cuGraphHostNodeGetParams\0").map(|sym| *sym); + let cuGraphHostNodeSetParams = __library.get(b"cuGraphHostNodeSetParams\0").map(|sym| *sym); + let cuGraphAddChildGraphNode = __library.get(b"cuGraphAddChildGraphNode\0").map(|sym| *sym); + let cuGraphChildGraphNodeGetGraph = __library + .get(b"cuGraphChildGraphNodeGetGraph\0") + .map(|sym| *sym); + let cuGraphAddEmptyNode = __library.get(b"cuGraphAddEmptyNode\0").map(|sym| *sym); + let cuGraphAddEventRecordNode = __library + .get(b"cuGraphAddEventRecordNode\0") + .map(|sym| *sym); + let cuGraphEventRecordNodeGetEvent = __library + .get(b"cuGraphEventRecordNodeGetEvent\0") + .map(|sym| *sym); + let cuGraphEventRecordNodeSetEvent = __library + .get(b"cuGraphEventRecordNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphAddEventWaitNode = __library.get(b"cuGraphAddEventWaitNode\0").map(|sym| *sym); + let cuGraphEventWaitNodeGetEvent = __library + .get(b"cuGraphEventWaitNodeGetEvent\0") + .map(|sym| *sym); + let cuGraphEventWaitNodeSetEvent = __library + .get(b"cuGraphEventWaitNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphAddExternalSemaphoresSignalNode = __library + .get(b"cuGraphAddExternalSemaphoresSignalNode\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresSignalNodeGetParams = __library + .get(b"cuGraphExternalSemaphoresSignalNodeGetParams\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresSignalNodeSetParams = __library + .get(b"cuGraphExternalSemaphoresSignalNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddExternalSemaphoresWaitNode = __library + .get(b"cuGraphAddExternalSemaphoresWaitNode\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresWaitNodeGetParams = __library + .get(b"cuGraphExternalSemaphoresWaitNodeGetParams\0") + .map(|sym| *sym); + let cuGraphExternalSemaphoresWaitNodeSetParams = __library + .get(b"cuGraphExternalSemaphoresWaitNodeSetParams\0") + .map(|sym| *sym); + let cuGraphAddMemAllocNode = __library.get(b"cuGraphAddMemAllocNode\0").map(|sym| *sym); + let cuGraphMemAllocNodeGetParams = __library + .get(b"cuGraphMemAllocNodeGetParams\0") + .map(|sym| *sym); + let cuGraphAddMemFreeNode = __library.get(b"cuGraphAddMemFreeNode\0").map(|sym| *sym); + let cuGraphMemFreeNodeGetParams = __library + .get(b"cuGraphMemFreeNodeGetParams\0") + .map(|sym| *sym); + let cuDeviceGraphMemTrim = __library.get(b"cuDeviceGraphMemTrim\0").map(|sym| *sym); + let cuDeviceGetGraphMemAttribute = __library + .get(b"cuDeviceGetGraphMemAttribute\0") + .map(|sym| *sym); + let cuDeviceSetGraphMemAttribute = __library + .get(b"cuDeviceSetGraphMemAttribute\0") + .map(|sym| *sym); + let cuGraphClone = __library.get(b"cuGraphClone\0").map(|sym| *sym); + let cuGraphNodeFindInClone = __library.get(b"cuGraphNodeFindInClone\0").map(|sym| *sym); + let cuGraphNodeGetType = __library.get(b"cuGraphNodeGetType\0").map(|sym| *sym); + let cuGraphGetNodes = __library.get(b"cuGraphGetNodes\0").map(|sym| *sym); + let cuGraphGetRootNodes = __library.get(b"cuGraphGetRootNodes\0").map(|sym| *sym); + let cuGraphGetEdges = __library.get(b"cuGraphGetEdges\0").map(|sym| *sym); + let cuGraphNodeGetDependencies = __library + .get(b"cuGraphNodeGetDependencies\0") + .map(|sym| *sym); + let cuGraphNodeGetDependentNodes = __library + .get(b"cuGraphNodeGetDependentNodes\0") + .map(|sym| *sym); + let cuGraphAddDependencies = __library.get(b"cuGraphAddDependencies\0").map(|sym| *sym); + let cuGraphRemoveDependencies = __library + .get(b"cuGraphRemoveDependencies\0") + .map(|sym| *sym); + let cuGraphDestroyNode = __library.get(b"cuGraphDestroyNode\0").map(|sym| *sym); + let cuGraphInstantiate_v2 = __library.get(b"cuGraphInstantiate_v2\0").map(|sym| *sym); + let cuGraphInstantiateWithFlags = __library + .get(b"cuGraphInstantiateWithFlags\0") + .map(|sym| *sym); + let cuGraphExecKernelNodeSetParams = __library + .get(b"cuGraphExecKernelNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecMemcpyNodeSetParams = __library + .get(b"cuGraphExecMemcpyNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecMemsetNodeSetParams = __library + .get(b"cuGraphExecMemsetNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecHostNodeSetParams = __library + .get(b"cuGraphExecHostNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecChildGraphNodeSetParams = __library + .get(b"cuGraphExecChildGraphNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecEventRecordNodeSetEvent = __library + .get(b"cuGraphExecEventRecordNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphExecEventWaitNodeSetEvent = __library + .get(b"cuGraphExecEventWaitNodeSetEvent\0") + .map(|sym| *sym); + let cuGraphExecExternalSemaphoresSignalNodeSetParams = __library + .get(b"cuGraphExecExternalSemaphoresSignalNodeSetParams\0") + .map(|sym| *sym); + let cuGraphExecExternalSemaphoresWaitNodeSetParams = __library + .get(b"cuGraphExecExternalSemaphoresWaitNodeSetParams\0") + .map(|sym| *sym); + let cuGraphNodeSetEnabled = __library.get(b"cuGraphNodeSetEnabled\0").map(|sym| *sym); + let cuGraphNodeGetEnabled = __library.get(b"cuGraphNodeGetEnabled\0").map(|sym| *sym); + let cuGraphUpload = __library.get(b"cuGraphUpload\0").map(|sym| *sym); + let cuGraphLaunch = __library.get(b"cuGraphLaunch\0").map(|sym| *sym); + let cuGraphExecDestroy = __library.get(b"cuGraphExecDestroy\0").map(|sym| *sym); + let cuGraphDestroy = __library.get(b"cuGraphDestroy\0").map(|sym| *sym); + let cuGraphExecUpdate = __library.get(b"cuGraphExecUpdate\0").map(|sym| *sym); + let cuGraphKernelNodeCopyAttributes = __library + .get(b"cuGraphKernelNodeCopyAttributes\0") + .map(|sym| *sym); + let cuGraphKernelNodeGetAttribute = __library + .get(b"cuGraphKernelNodeGetAttribute\0") + .map(|sym| *sym); + let cuGraphKernelNodeSetAttribute = __library + .get(b"cuGraphKernelNodeSetAttribute\0") + .map(|sym| *sym); + let cuGraphDebugDotPrint = __library.get(b"cuGraphDebugDotPrint\0").map(|sym| *sym); + let cuUserObjectCreate = __library.get(b"cuUserObjectCreate\0").map(|sym| *sym); + let cuUserObjectRetain = __library.get(b"cuUserObjectRetain\0").map(|sym| *sym); + let cuUserObjectRelease = __library.get(b"cuUserObjectRelease\0").map(|sym| *sym); + let cuGraphRetainUserObject = __library.get(b"cuGraphRetainUserObject\0").map(|sym| *sym); + let cuGraphReleaseUserObject = __library.get(b"cuGraphReleaseUserObject\0").map(|sym| *sym); + let cuOccupancyMaxActiveBlocksPerMultiprocessor = __library + .get(b"cuOccupancyMaxActiveBlocksPerMultiprocessor\0") + .map(|sym| *sym); + let cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = __library + .get(b"cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\0") + .map(|sym| *sym); + let cuOccupancyMaxPotentialBlockSize = __library + .get(b"cuOccupancyMaxPotentialBlockSize\0") + .map(|sym| *sym); + let cuOccupancyMaxPotentialBlockSizeWithFlags = __library + .get(b"cuOccupancyMaxPotentialBlockSizeWithFlags\0") + .map(|sym| *sym); + let cuOccupancyAvailableDynamicSMemPerBlock = __library + .get(b"cuOccupancyAvailableDynamicSMemPerBlock\0") + .map(|sym| *sym); + let cuTexRefSetArray = __library.get(b"cuTexRefSetArray\0").map(|sym| *sym); + let cuTexRefSetMipmappedArray = __library + .get(b"cuTexRefSetMipmappedArray\0") + .map(|sym| *sym); + let cuTexRefSetAddress_v2 = __library.get(b"cuTexRefSetAddress_v2\0").map(|sym| *sym); + let cuTexRefSetAddress2D_v3 = __library.get(b"cuTexRefSetAddress2D_v3\0").map(|sym| *sym); + let cuTexRefSetFormat = __library.get(b"cuTexRefSetFormat\0").map(|sym| *sym); + let cuTexRefSetAddressMode = __library.get(b"cuTexRefSetAddressMode\0").map(|sym| *sym); + let cuTexRefSetFilterMode = __library.get(b"cuTexRefSetFilterMode\0").map(|sym| *sym); + let cuTexRefSetMipmapFilterMode = __library + .get(b"cuTexRefSetMipmapFilterMode\0") + .map(|sym| *sym); + let cuTexRefSetMipmapLevelBias = __library + .get(b"cuTexRefSetMipmapLevelBias\0") + .map(|sym| *sym); + let cuTexRefSetMipmapLevelClamp = __library + .get(b"cuTexRefSetMipmapLevelClamp\0") + .map(|sym| *sym); + let cuTexRefSetMaxAnisotropy = __library.get(b"cuTexRefSetMaxAnisotropy\0").map(|sym| *sym); + let cuTexRefSetBorderColor = __library.get(b"cuTexRefSetBorderColor\0").map(|sym| *sym); + let cuTexRefSetFlags = __library.get(b"cuTexRefSetFlags\0").map(|sym| *sym); + let cuTexRefGetAddress_v2 = __library.get(b"cuTexRefGetAddress_v2\0").map(|sym| *sym); + let cuTexRefGetArray = __library.get(b"cuTexRefGetArray\0").map(|sym| *sym); + let cuTexRefGetMipmappedArray = __library + .get(b"cuTexRefGetMipmappedArray\0") + .map(|sym| *sym); + let cuTexRefGetAddressMode = __library.get(b"cuTexRefGetAddressMode\0").map(|sym| *sym); + let cuTexRefGetFilterMode = __library.get(b"cuTexRefGetFilterMode\0").map(|sym| *sym); + let cuTexRefGetFormat = __library.get(b"cuTexRefGetFormat\0").map(|sym| *sym); + let cuTexRefGetMipmapFilterMode = __library + .get(b"cuTexRefGetMipmapFilterMode\0") + .map(|sym| *sym); + let cuTexRefGetMipmapLevelBias = __library + .get(b"cuTexRefGetMipmapLevelBias\0") + .map(|sym| *sym); + let cuTexRefGetMipmapLevelClamp = __library + .get(b"cuTexRefGetMipmapLevelClamp\0") + .map(|sym| *sym); + let cuTexRefGetMaxAnisotropy = __library.get(b"cuTexRefGetMaxAnisotropy\0").map(|sym| *sym); + let cuTexRefGetBorderColor = __library.get(b"cuTexRefGetBorderColor\0").map(|sym| *sym); + let cuTexRefGetFlags = __library.get(b"cuTexRefGetFlags\0").map(|sym| *sym); + let cuTexRefCreate = __library.get(b"cuTexRefCreate\0").map(|sym| *sym); + let cuTexRefDestroy = __library.get(b"cuTexRefDestroy\0").map(|sym| *sym); + let cuSurfRefSetArray = __library.get(b"cuSurfRefSetArray\0").map(|sym| *sym); + let cuSurfRefGetArray = __library.get(b"cuSurfRefGetArray\0").map(|sym| *sym); + let cuTexObjectCreate = __library.get(b"cuTexObjectCreate\0").map(|sym| *sym); + let cuTexObjectDestroy = __library.get(b"cuTexObjectDestroy\0").map(|sym| *sym); + let cuTexObjectGetResourceDesc = __library + .get(b"cuTexObjectGetResourceDesc\0") + .map(|sym| *sym); + let cuTexObjectGetTextureDesc = __library + .get(b"cuTexObjectGetTextureDesc\0") + .map(|sym| *sym); + let cuTexObjectGetResourceViewDesc = __library + .get(b"cuTexObjectGetResourceViewDesc\0") + .map(|sym| *sym); + let cuSurfObjectCreate = __library.get(b"cuSurfObjectCreate\0").map(|sym| *sym); + let cuSurfObjectDestroy = __library.get(b"cuSurfObjectDestroy\0").map(|sym| *sym); + let cuSurfObjectGetResourceDesc = __library + .get(b"cuSurfObjectGetResourceDesc\0") + .map(|sym| *sym); + let cuDeviceCanAccessPeer = __library.get(b"cuDeviceCanAccessPeer\0").map(|sym| *sym); + let cuCtxEnablePeerAccess = __library.get(b"cuCtxEnablePeerAccess\0").map(|sym| *sym); + let cuCtxDisablePeerAccess = __library.get(b"cuCtxDisablePeerAccess\0").map(|sym| *sym); + let cuDeviceGetP2PAttribute = __library.get(b"cuDeviceGetP2PAttribute\0").map(|sym| *sym); + let cuGraphicsUnregisterResource = __library + .get(b"cuGraphicsUnregisterResource\0") + .map(|sym| *sym); + let cuGraphicsSubResourceGetMappedArray = __library + .get(b"cuGraphicsSubResourceGetMappedArray\0") + .map(|sym| *sym); + let cuGraphicsResourceGetMappedMipmappedArray = __library + .get(b"cuGraphicsResourceGetMappedMipmappedArray\0") + .map(|sym| *sym); + let cuGraphicsResourceGetMappedPointer_v2 = __library + .get(b"cuGraphicsResourceGetMappedPointer_v2\0") + .map(|sym| *sym); + let cuGraphicsResourceSetMapFlags_v2 = __library + .get(b"cuGraphicsResourceSetMapFlags_v2\0") + .map(|sym| *sym); + let cuGraphicsMapResources = __library.get(b"cuGraphicsMapResources\0").map(|sym| *sym); + let cuGraphicsUnmapResources = __library.get(b"cuGraphicsUnmapResources\0").map(|sym| *sym); + let cuGetProcAddress = __library.get(b"cuGetProcAddress\0").map(|sym| *sym); + let cuGetExportTable = __library.get(b"cuGetExportTable\0").map(|sym| *sym); + let cuProfilerInitialize = __library.get(b"cuProfilerInitialize\0").map(|sym| *sym); + let cuProfilerStart = __library.get(b"cuProfilerStart\0").map(|sym| *sym); + let cuProfilerStop = __library.get(b"cuProfilerStop\0").map(|sym| *sym); + Ok(Lib { + __library, + cuGetErrorString, + cuGetErrorName, + cuInit, + cuDriverGetVersion, + cuDeviceGet, + cuDeviceGetCount, + cuDeviceGetName, + cuDeviceGetUuid, + cuDeviceGetUuid_v2, + cuDeviceGetLuid, + cuDeviceTotalMem_v2, + cuDeviceGetTexture1DLinearMaxWidth, + cuDeviceGetAttribute, + cuDeviceGetNvSciSyncAttributes, + cuDeviceSetMemPool, + cuDeviceGetMemPool, + cuDeviceGetDefaultMemPool, + cuFlushGPUDirectRDMAWrites, + cuDeviceGetProperties, + cuDeviceComputeCapability, + cuDevicePrimaryCtxRetain, + cuDevicePrimaryCtxRelease_v2, + cuDevicePrimaryCtxSetFlags_v2, + cuDevicePrimaryCtxGetState, + cuDevicePrimaryCtxReset_v2, + cuDeviceGetExecAffinitySupport, + cuCtxCreate_v2, + cuCtxCreate_v3, + cuCtxDestroy_v2, + cuCtxPushCurrent_v2, + cuCtxPopCurrent_v2, + cuCtxSetCurrent, + cuCtxGetCurrent, + cuCtxGetDevice, + cuCtxGetFlags, + cuCtxSynchronize, + cuCtxSetLimit, + cuCtxGetLimit, + cuCtxGetCacheConfig, + cuCtxSetCacheConfig, + cuCtxGetSharedMemConfig, + cuCtxSetSharedMemConfig, + cuCtxGetApiVersion, + cuCtxGetStreamPriorityRange, + cuCtxResetPersistingL2Cache, + cuCtxGetExecAffinity, + cuCtxAttach, + cuCtxDetach, + cuModuleLoad, + cuModuleLoadData, + cuModuleLoadDataEx, + cuModuleLoadFatBinary, + cuModuleUnload, + cuModuleGetFunction, + cuModuleGetGlobal_v2, + cuModuleGetTexRef, + cuModuleGetSurfRef, + cuLinkCreate_v2, + cuLinkAddData_v2, + cuLinkAddFile_v2, + cuLinkComplete, + cuLinkDestroy, + cuMemGetInfo_v2, + cuMemAlloc_v2, + cuMemAllocPitch_v2, + cuMemFree_v2, + cuMemGetAddressRange_v2, + cuMemAllocHost_v2, + cuMemFreeHost, + cuMemHostAlloc, + cuMemHostGetDevicePointer_v2, + cuMemHostGetFlags, + cuMemAllocManaged, + cuDeviceGetByPCIBusId, + cuDeviceGetPCIBusId, + cuIpcGetEventHandle, + cuIpcOpenEventHandle, + cuIpcGetMemHandle, + cuIpcOpenMemHandle_v2, + cuIpcCloseMemHandle, + cuMemHostRegister_v2, + cuMemHostUnregister, + cuMemcpy, + cuMemcpyPeer, + cuMemcpyHtoD_v2, + cuMemcpyDtoH_v2, + cuMemcpyDtoD_v2, + cuMemcpyDtoA_v2, + cuMemcpyAtoD_v2, + cuMemcpyHtoA_v2, + cuMemcpyAtoH_v2, + cuMemcpyAtoA_v2, + cuMemcpy2D_v2, + cuMemcpy2DUnaligned_v2, + cuMemcpy3D_v2, + cuMemcpy3DPeer, + cuMemcpyAsync, + cuMemcpyPeerAsync, + cuMemcpyHtoDAsync_v2, + cuMemcpyDtoHAsync_v2, + cuMemcpyDtoDAsync_v2, + cuMemcpyHtoAAsync_v2, + cuMemcpyAtoHAsync_v2, + cuMemcpy2DAsync_v2, + cuMemcpy3DAsync_v2, + cuMemcpy3DPeerAsync, + cuMemsetD8_v2, + cuMemsetD16_v2, + cuMemsetD32_v2, + cuMemsetD2D8_v2, + cuMemsetD2D16_v2, + cuMemsetD2D32_v2, + cuMemsetD8Async, + cuMemsetD16Async, + cuMemsetD32Async, + cuMemsetD2D8Async, + cuMemsetD2D16Async, + cuMemsetD2D32Async, + cuArrayCreate_v2, + cuArrayGetDescriptor_v2, + cuArrayGetSparseProperties, + cuMipmappedArrayGetSparseProperties, + cuArrayGetMemoryRequirements, + cuMipmappedArrayGetMemoryRequirements, + cuArrayGetPlane, + cuArrayDestroy, + cuArray3DCreate_v2, + cuArray3DGetDescriptor_v2, + cuMipmappedArrayCreate, + cuMipmappedArrayGetLevel, + cuMipmappedArrayDestroy, + cuMemAddressReserve, + cuMemAddressFree, + cuMemCreate, + cuMemRelease, + cuMemMap, + cuMemMapArrayAsync, + cuMemUnmap, + cuMemSetAccess, + cuMemGetAccess, + cuMemExportToShareableHandle, + cuMemImportFromShareableHandle, + cuMemGetAllocationGranularity, + cuMemGetAllocationPropertiesFromHandle, + cuMemRetainAllocationHandle, + cuMemFreeAsync, + cuMemAllocAsync, + cuMemPoolTrimTo, + cuMemPoolSetAttribute, + cuMemPoolGetAttribute, + cuMemPoolSetAccess, + cuMemPoolGetAccess, + cuMemPoolCreate, + cuMemPoolDestroy, + cuMemAllocFromPoolAsync, + cuMemPoolExportToShareableHandle, + cuMemPoolImportFromShareableHandle, + cuMemPoolExportPointer, + cuMemPoolImportPointer, + cuPointerGetAttribute, + cuMemPrefetchAsync, + cuMemAdvise, + cuMemRangeGetAttribute, + cuMemRangeGetAttributes, + cuPointerSetAttribute, + cuPointerGetAttributes, + cuStreamCreate, + cuStreamCreateWithPriority, + cuStreamGetPriority, + cuStreamGetFlags, + cuStreamGetCtx, + cuStreamWaitEvent, + cuStreamAddCallback, + cuStreamBeginCapture_v2, + cuThreadExchangeStreamCaptureMode, + cuStreamEndCapture, + cuStreamIsCapturing, + cuStreamGetCaptureInfo, + cuStreamGetCaptureInfo_v2, + cuStreamUpdateCaptureDependencies, + cuStreamAttachMemAsync, + cuStreamQuery, + cuStreamSynchronize, + cuStreamDestroy_v2, + cuStreamCopyAttributes, + cuStreamGetAttribute, + cuStreamSetAttribute, + cuEventCreate, + cuEventRecord, + cuEventRecordWithFlags, + cuEventQuery, + cuEventSynchronize, + cuEventDestroy_v2, + cuEventElapsedTime, + cuImportExternalMemory, + cuExternalMemoryGetMappedBuffer, + cuExternalMemoryGetMappedMipmappedArray, + cuDestroyExternalMemory, + cuImportExternalSemaphore, + cuSignalExternalSemaphoresAsync, + cuWaitExternalSemaphoresAsync, + cuDestroyExternalSemaphore, + cuStreamWaitValue32, + cuStreamWaitValue64, + cuStreamWriteValue32, + cuStreamWriteValue64, + cuStreamBatchMemOp, + cuFuncGetAttribute, + cuFuncSetAttribute, + cuFuncSetCacheConfig, + cuFuncSetSharedMemConfig, + cuFuncGetModule, + cuLaunchKernel, + cuLaunchCooperativeKernel, + cuLaunchCooperativeKernelMultiDevice, + cuLaunchHostFunc, + cuFuncSetBlockShape, + cuFuncSetSharedSize, + cuParamSetSize, + cuParamSeti, + cuParamSetf, + cuParamSetv, + cuLaunch, + cuLaunchGrid, + cuLaunchGridAsync, + cuParamSetTexRef, + cuGraphCreate, + cuGraphAddKernelNode, + cuGraphKernelNodeGetParams, + cuGraphKernelNodeSetParams, + cuGraphAddMemcpyNode, + cuGraphMemcpyNodeGetParams, + cuGraphMemcpyNodeSetParams, + cuGraphAddMemsetNode, + cuGraphMemsetNodeGetParams, + cuGraphMemsetNodeSetParams, + cuGraphAddHostNode, + cuGraphHostNodeGetParams, + cuGraphHostNodeSetParams, + cuGraphAddChildGraphNode, + cuGraphChildGraphNodeGetGraph, + cuGraphAddEmptyNode, + cuGraphAddEventRecordNode, + cuGraphEventRecordNodeGetEvent, + cuGraphEventRecordNodeSetEvent, + cuGraphAddEventWaitNode, + cuGraphEventWaitNodeGetEvent, + cuGraphEventWaitNodeSetEvent, + cuGraphAddExternalSemaphoresSignalNode, + cuGraphExternalSemaphoresSignalNodeGetParams, + cuGraphExternalSemaphoresSignalNodeSetParams, + cuGraphAddExternalSemaphoresWaitNode, + cuGraphExternalSemaphoresWaitNodeGetParams, + cuGraphExternalSemaphoresWaitNodeSetParams, + cuGraphAddMemAllocNode, + cuGraphMemAllocNodeGetParams, + cuGraphAddMemFreeNode, + cuGraphMemFreeNodeGetParams, + cuDeviceGraphMemTrim, + cuDeviceGetGraphMemAttribute, + cuDeviceSetGraphMemAttribute, + cuGraphClone, + cuGraphNodeFindInClone, + cuGraphNodeGetType, + cuGraphGetNodes, + cuGraphGetRootNodes, + cuGraphGetEdges, + cuGraphNodeGetDependencies, + cuGraphNodeGetDependentNodes, + cuGraphAddDependencies, + cuGraphRemoveDependencies, + cuGraphDestroyNode, + cuGraphInstantiate_v2, + cuGraphInstantiateWithFlags, + cuGraphExecKernelNodeSetParams, + cuGraphExecMemcpyNodeSetParams, + cuGraphExecMemsetNodeSetParams, + cuGraphExecHostNodeSetParams, + cuGraphExecChildGraphNodeSetParams, + cuGraphExecEventRecordNodeSetEvent, + cuGraphExecEventWaitNodeSetEvent, + cuGraphExecExternalSemaphoresSignalNodeSetParams, + cuGraphExecExternalSemaphoresWaitNodeSetParams, + cuGraphNodeSetEnabled, + cuGraphNodeGetEnabled, + cuGraphUpload, + cuGraphLaunch, + cuGraphExecDestroy, + cuGraphDestroy, + cuGraphExecUpdate, + cuGraphKernelNodeCopyAttributes, + cuGraphKernelNodeGetAttribute, + cuGraphKernelNodeSetAttribute, + cuGraphDebugDotPrint, + cuUserObjectCreate, + cuUserObjectRetain, + cuUserObjectRelease, + cuGraphRetainUserObject, + cuGraphReleaseUserObject, + cuOccupancyMaxActiveBlocksPerMultiprocessor, + cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags, + cuOccupancyMaxPotentialBlockSize, + cuOccupancyMaxPotentialBlockSizeWithFlags, + cuOccupancyAvailableDynamicSMemPerBlock, + cuTexRefSetArray, + cuTexRefSetMipmappedArray, + cuTexRefSetAddress_v2, + cuTexRefSetAddress2D_v3, + cuTexRefSetFormat, + cuTexRefSetAddressMode, + cuTexRefSetFilterMode, + cuTexRefSetMipmapFilterMode, + cuTexRefSetMipmapLevelBias, + cuTexRefSetMipmapLevelClamp, + cuTexRefSetMaxAnisotropy, + cuTexRefSetBorderColor, + cuTexRefSetFlags, + cuTexRefGetAddress_v2, + cuTexRefGetArray, + cuTexRefGetMipmappedArray, + cuTexRefGetAddressMode, + cuTexRefGetFilterMode, + cuTexRefGetFormat, + cuTexRefGetMipmapFilterMode, + cuTexRefGetMipmapLevelBias, + cuTexRefGetMipmapLevelClamp, + cuTexRefGetMaxAnisotropy, + cuTexRefGetBorderColor, + cuTexRefGetFlags, + cuTexRefCreate, + cuTexRefDestroy, + cuSurfRefSetArray, + cuSurfRefGetArray, + cuTexObjectCreate, + cuTexObjectDestroy, + cuTexObjectGetResourceDesc, + cuTexObjectGetTextureDesc, + cuTexObjectGetResourceViewDesc, + cuSurfObjectCreate, + cuSurfObjectDestroy, + cuSurfObjectGetResourceDesc, + cuDeviceCanAccessPeer, + cuCtxEnablePeerAccess, + cuCtxDisablePeerAccess, + cuDeviceGetP2PAttribute, + cuGraphicsUnregisterResource, + cuGraphicsSubResourceGetMappedArray, + cuGraphicsResourceGetMappedMipmappedArray, + cuGraphicsResourceGetMappedPointer_v2, + cuGraphicsResourceSetMapFlags_v2, + cuGraphicsMapResources, + cuGraphicsUnmapResources, + cuGetProcAddress, + cuGetExportTable, + cuProfilerInitialize, + cuProfilerStart, + cuProfilerStop, + }) + } + pub unsafe fn cuGetErrorString( + &self, + error: CUresult, + pStr: *mut *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuGetErrorString + .as_ref() + .expect("Expected function, got error."))(error, pStr) + } + pub unsafe fn cuGetErrorName( + &self, + error: CUresult, + pStr: *mut *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuGetErrorName + .as_ref() + .expect("Expected function, got error."))(error, pStr) + } + pub unsafe fn cuInit(&self, Flags: ::core::ffi::c_uint) -> CUresult { + (self.cuInit.as_ref().expect("Expected function, got error."))(Flags) + } + pub unsafe fn cuDriverGetVersion(&self, driverVersion: *mut ::core::ffi::c_int) -> CUresult { + (self + .cuDriverGetVersion + .as_ref() + .expect("Expected function, got error."))(driverVersion) + } + pub unsafe fn cuDeviceGet( + &self, + device: *mut CUdevice, + ordinal: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDeviceGet + .as_ref() + .expect("Expected function, got error."))(device, ordinal) + } + pub unsafe fn cuDeviceGetCount(&self, count: *mut ::core::ffi::c_int) -> CUresult { + (self + .cuDeviceGetCount + .as_ref() + .expect("Expected function, got error."))(count) + } + pub unsafe fn cuDeviceGetName( + &self, + name: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetName + .as_ref() + .expect("Expected function, got error."))(name, len, dev) + } + pub unsafe fn cuDeviceGetUuid(&self, uuid: *mut CUuuid, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetUuid + .as_ref() + .expect("Expected function, got error."))(uuid, dev) + } + pub unsafe fn cuDeviceGetUuid_v2(&self, uuid: *mut CUuuid, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetUuid_v2 + .as_ref() + .expect("Expected function, got error."))(uuid, dev) + } + pub unsafe fn cuDeviceGetLuid( + &self, + luid: *mut ::core::ffi::c_char, + deviceNodeMask: *mut ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetLuid + .as_ref() + .expect("Expected function, got error."))(luid, deviceNodeMask, dev) + } + pub unsafe fn cuDeviceTotalMem_v2(&self, bytes: *mut usize, dev: CUdevice) -> CUresult { + (self + .cuDeviceTotalMem_v2 + .as_ref() + .expect("Expected function, got error."))(bytes, dev) + } + pub unsafe fn cuDeviceGetTexture1DLinearMaxWidth( + &self, + maxWidthInElements: *mut usize, + format: CUarray_format, + numChannels: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetTexture1DLinearMaxWidth + .as_ref() + .expect("Expected function, got error."))( + maxWidthInElements, format, numChannels, dev + ) + } + pub unsafe fn cuDeviceGetAttribute( + &self, + pi: *mut ::core::ffi::c_int, + attrib: CUdevice_attribute, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetAttribute + .as_ref() + .expect("Expected function, got error."))(pi, attrib, dev) + } + pub unsafe fn cuDeviceGetNvSciSyncAttributes( + &self, + nvSciSyncAttrList: *mut ::core::ffi::c_void, + dev: CUdevice, + flags: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDeviceGetNvSciSyncAttributes + .as_ref() + .expect("Expected function, got error."))(nvSciSyncAttrList, dev, flags) + } + pub unsafe fn cuDeviceSetMemPool(&self, dev: CUdevice, pool: CUmemoryPool) -> CUresult { + (self + .cuDeviceSetMemPool + .as_ref() + .expect("Expected function, got error."))(dev, pool) + } + pub unsafe fn cuDeviceGetMemPool(&self, pool: *mut CUmemoryPool, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetMemPool + .as_ref() + .expect("Expected function, got error."))(pool, dev) + } + pub unsafe fn cuDeviceGetDefaultMemPool( + &self, + pool_out: *mut CUmemoryPool, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetDefaultMemPool + .as_ref() + .expect("Expected function, got error."))(pool_out, dev) + } + pub unsafe fn cuFlushGPUDirectRDMAWrites( + &self, + target: CUflushGPUDirectRDMAWritesTarget, + scope: CUflushGPUDirectRDMAWritesScope, + ) -> CUresult { + (self + .cuFlushGPUDirectRDMAWrites + .as_ref() + .expect("Expected function, got error."))(target, scope) + } + pub unsafe fn cuDeviceGetProperties(&self, prop: *mut CUdevprop, dev: CUdevice) -> CUresult { + (self + .cuDeviceGetProperties + .as_ref() + .expect("Expected function, got error."))(prop, dev) + } + pub unsafe fn cuDeviceComputeCapability( + &self, + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceComputeCapability + .as_ref() + .expect("Expected function, got error."))(major, minor, dev) + } + pub unsafe fn cuDevicePrimaryCtxRetain(&self, pctx: *mut CUcontext, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxRetain + .as_ref() + .expect("Expected function, got error."))(pctx, dev) + } + pub unsafe fn cuDevicePrimaryCtxRelease_v2(&self, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxRelease_v2 + .as_ref() + .expect("Expected function, got error."))(dev) + } + pub unsafe fn cuDevicePrimaryCtxSetFlags_v2( + &self, + dev: CUdevice, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuDevicePrimaryCtxSetFlags_v2 + .as_ref() + .expect("Expected function, got error."))(dev, flags) + } + pub unsafe fn cuDevicePrimaryCtxGetState( + &self, + dev: CUdevice, + flags: *mut ::core::ffi::c_uint, + active: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuDevicePrimaryCtxGetState + .as_ref() + .expect("Expected function, got error."))(dev, flags, active) + } + pub unsafe fn cuDevicePrimaryCtxReset_v2(&self, dev: CUdevice) -> CUresult { + (self + .cuDevicePrimaryCtxReset_v2 + .as_ref() + .expect("Expected function, got error."))(dev) + } + pub unsafe fn cuDeviceGetExecAffinitySupport( + &self, + pi: *mut ::core::ffi::c_int, + type_: CUexecAffinityType, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetExecAffinitySupport + .as_ref() + .expect("Expected function, got error."))(pi, type_, dev) + } + pub unsafe fn cuCtxCreate_v2( + &self, + pctx: *mut CUcontext, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuCtxCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pctx, flags, dev) + } + pub unsafe fn cuCtxCreate_v3( + &self, + pctx: *mut CUcontext, + paramsArray: *mut CUexecAffinityParam, + numParams: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + dev: CUdevice, + ) -> CUresult { + (self + .cuCtxCreate_v3 + .as_ref() + .expect("Expected function, got error."))( + pctx, paramsArray, numParams, flags, dev + ) + } + pub unsafe fn cuCtxDestroy_v2(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxPushCurrent_v2(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxPushCurrent_v2 + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxPopCurrent_v2(&self, pctx: *mut CUcontext) -> CUresult { + (self + .cuCtxPopCurrent_v2 + .as_ref() + .expect("Expected function, got error."))(pctx) + } + pub unsafe fn cuCtxSetCurrent(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxSetCurrent + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuCtxGetCurrent(&self, pctx: *mut CUcontext) -> CUresult { + (self + .cuCtxGetCurrent + .as_ref() + .expect("Expected function, got error."))(pctx) + } + pub unsafe fn cuCtxGetDevice(&self, device: *mut CUdevice) -> CUresult { + (self + .cuCtxGetDevice + .as_ref() + .expect("Expected function, got error."))(device) + } + pub unsafe fn cuCtxGetFlags(&self, flags: *mut ::core::ffi::c_uint) -> CUresult { + (self + .cuCtxGetFlags + .as_ref() + .expect("Expected function, got error."))(flags) + } + pub unsafe fn cuCtxSynchronize(&self) -> CUresult { + (self + .cuCtxSynchronize + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuCtxSetLimit(&self, limit: CUlimit, value: usize) -> CUresult { + (self + .cuCtxSetLimit + .as_ref() + .expect("Expected function, got error."))(limit, value) + } + pub unsafe fn cuCtxGetLimit(&self, pvalue: *mut usize, limit: CUlimit) -> CUresult { + (self + .cuCtxGetLimit + .as_ref() + .expect("Expected function, got error."))(pvalue, limit) + } + pub unsafe fn cuCtxGetCacheConfig(&self, pconfig: *mut CUfunc_cache) -> CUresult { + (self + .cuCtxGetCacheConfig + .as_ref() + .expect("Expected function, got error."))(pconfig) + } + pub unsafe fn cuCtxSetCacheConfig(&self, config: CUfunc_cache) -> CUresult { + (self + .cuCtxSetCacheConfig + .as_ref() + .expect("Expected function, got error."))(config) + } + pub unsafe fn cuCtxGetSharedMemConfig(&self, pConfig: *mut CUsharedconfig) -> CUresult { + (self + .cuCtxGetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(pConfig) + } + pub unsafe fn cuCtxSetSharedMemConfig(&self, config: CUsharedconfig) -> CUresult { + (self + .cuCtxSetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(config) + } + pub unsafe fn cuCtxGetApiVersion( + &self, + ctx: CUcontext, + version: *mut ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuCtxGetApiVersion + .as_ref() + .expect("Expected function, got error."))(ctx, version) + } + pub unsafe fn cuCtxGetStreamPriorityRange( + &self, + leastPriority: *mut ::core::ffi::c_int, + greatestPriority: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuCtxGetStreamPriorityRange + .as_ref() + .expect("Expected function, got error."))(leastPriority, greatestPriority) + } + pub unsafe fn cuCtxResetPersistingL2Cache(&self) -> CUresult { + (self + .cuCtxResetPersistingL2Cache + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuCtxGetExecAffinity( + &self, + pExecAffinity: *mut CUexecAffinityParam, + type_: CUexecAffinityType, + ) -> CUresult { + (self + .cuCtxGetExecAffinity + .as_ref() + .expect("Expected function, got error."))(pExecAffinity, type_) + } + pub unsafe fn cuCtxAttach(&self, pctx: *mut CUcontext, flags: ::core::ffi::c_uint) -> CUresult { + (self + .cuCtxAttach + .as_ref() + .expect("Expected function, got error."))(pctx, flags) + } + pub unsafe fn cuCtxDetach(&self, ctx: CUcontext) -> CUresult { + (self + .cuCtxDetach + .as_ref() + .expect("Expected function, got error."))(ctx) + } + pub unsafe fn cuModuleLoad( + &self, + module: *mut CUmodule, + fname: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleLoad + .as_ref() + .expect("Expected function, got error."))(module, fname) + } + pub unsafe fn cuModuleLoadData( + &self, + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadData + .as_ref() + .expect("Expected function, got error."))(module, image) + } + pub unsafe fn cuModuleLoadDataEx( + &self, + module: *mut CUmodule, + image: *const ::core::ffi::c_void, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadDataEx + .as_ref() + .expect("Expected function, got error."))( + module, + image, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuModuleLoadFatBinary( + &self, + module: *mut CUmodule, + fatCubin: *const ::core::ffi::c_void, + ) -> CUresult { + (self + .cuModuleLoadFatBinary + .as_ref() + .expect("Expected function, got error."))(module, fatCubin) + } + pub unsafe fn cuModuleUnload(&self, hmod: CUmodule) -> CUresult { + (self + .cuModuleUnload + .as_ref() + .expect("Expected function, got error."))(hmod) + } + pub unsafe fn cuModuleGetFunction( + &self, + hfunc: *mut CUfunction, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetFunction + .as_ref() + .expect("Expected function, got error."))(hfunc, hmod, name) + } + pub unsafe fn cuModuleGetGlobal_v2( + &self, + dptr: *mut CUdeviceptr, + bytes: *mut usize, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetGlobal_v2 + .as_ref() + .expect("Expected function, got error."))(dptr, bytes, hmod, name) + } + pub unsafe fn cuModuleGetTexRef( + &self, + pTexRef: *mut CUtexref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetTexRef + .as_ref() + .expect("Expected function, got error."))(pTexRef, hmod, name) + } + pub unsafe fn cuModuleGetSurfRef( + &self, + pSurfRef: *mut CUsurfref, + hmod: CUmodule, + name: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuModuleGetSurfRef + .as_ref() + .expect("Expected function, got error."))(pSurfRef, hmod, name) + } + pub unsafe fn cuLinkCreate_v2( + &self, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + stateOut: *mut CUlinkState, + ) -> CUresult { + (self + .cuLinkCreate_v2 + .as_ref() + .expect("Expected function, got error."))( + numOptions, options, optionValues, stateOut + ) + } + pub unsafe fn cuLinkAddData_v2( + &self, + state: CUlinkState, + type_: CUjitInputType, + data: *mut ::core::ffi::c_void, + size: usize, + name: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLinkAddData_v2 + .as_ref() + .expect("Expected function, got error."))( + state, + type_, + data, + size, + name, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuLinkAddFile_v2( + &self, + state: CUlinkState, + type_: CUjitInputType, + path: *const ::core::ffi::c_char, + numOptions: ::core::ffi::c_uint, + options: *mut CUjit_option, + optionValues: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLinkAddFile_v2 + .as_ref() + .expect("Expected function, got error."))( + state, + type_, + path, + numOptions, + options, + optionValues, + ) + } + pub unsafe fn cuLinkComplete( + &self, + state: CUlinkState, + cubinOut: *mut *mut ::core::ffi::c_void, + sizeOut: *mut usize, + ) -> CUresult { + (self + .cuLinkComplete + .as_ref() + .expect("Expected function, got error."))(state, cubinOut, sizeOut) + } + pub unsafe fn cuLinkDestroy(&self, state: CUlinkState) -> CUresult { + (self + .cuLinkDestroy + .as_ref() + .expect("Expected function, got error."))(state) + } + pub unsafe fn cuMemGetInfo_v2(&self, free: *mut usize, total: *mut usize) -> CUresult { + (self + .cuMemGetInfo_v2 + .as_ref() + .expect("Expected function, got error."))(free, total) + } + pub unsafe fn cuMemAlloc_v2(&self, dptr: *mut CUdeviceptr, bytesize: usize) -> CUresult { + (self + .cuMemAlloc_v2 + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize) + } + pub unsafe fn cuMemAllocPitch_v2( + &self, + dptr: *mut CUdeviceptr, + pPitch: *mut usize, + WidthInBytes: usize, + Height: usize, + ElementSizeBytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemAllocPitch_v2 + .as_ref() + .expect("Expected function, got error."))( + dptr, + pPitch, + WidthInBytes, + Height, + ElementSizeBytes, + ) + } + pub unsafe fn cuMemFree_v2(&self, dptr: CUdeviceptr) -> CUresult { + (self + .cuMemFree_v2 + .as_ref() + .expect("Expected function, got error."))(dptr) + } + pub unsafe fn cuMemGetAddressRange_v2( + &self, + pbase: *mut CUdeviceptr, + psize: *mut usize, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemGetAddressRange_v2 + .as_ref() + .expect("Expected function, got error."))(pbase, psize, dptr) + } + pub unsafe fn cuMemAllocHost_v2( + &self, + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + ) -> CUresult { + (self + .cuMemAllocHost_v2 + .as_ref() + .expect("Expected function, got error."))(pp, bytesize) + } + pub unsafe fn cuMemFreeHost(&self, p: *mut ::core::ffi::c_void) -> CUresult { + (self + .cuMemFreeHost + .as_ref() + .expect("Expected function, got error."))(p) + } + pub unsafe fn cuMemHostAlloc( + &self, + pp: *mut *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostAlloc + .as_ref() + .expect("Expected function, got error."))(pp, bytesize, Flags) + } + pub unsafe fn cuMemHostGetDevicePointer_v2( + &self, + pdptr: *mut CUdeviceptr, + p: *mut ::core::ffi::c_void, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostGetDevicePointer_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, p, Flags) + } + pub unsafe fn cuMemHostGetFlags( + &self, + pFlags: *mut ::core::ffi::c_uint, + p: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemHostGetFlags + .as_ref() + .expect("Expected function, got error."))(pFlags, p) + } + pub unsafe fn cuMemAllocManaged( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemAllocManaged + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, flags) + } + pub unsafe fn cuDeviceGetByPCIBusId( + &self, + dev: *mut CUdevice, + pciBusId: *const ::core::ffi::c_char, + ) -> CUresult { + (self + .cuDeviceGetByPCIBusId + .as_ref() + .expect("Expected function, got error."))(dev, pciBusId) + } + pub unsafe fn cuDeviceGetPCIBusId( + &self, + pciBusId: *mut ::core::ffi::c_char, + len: ::core::ffi::c_int, + dev: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetPCIBusId + .as_ref() + .expect("Expected function, got error."))(pciBusId, len, dev) + } + pub unsafe fn cuIpcGetEventHandle( + &self, + pHandle: *mut CUipcEventHandle, + event: CUevent, + ) -> CUresult { + (self + .cuIpcGetEventHandle + .as_ref() + .expect("Expected function, got error."))(pHandle, event) + } + pub unsafe fn cuIpcOpenEventHandle( + &self, + phEvent: *mut CUevent, + handle: CUipcEventHandle, + ) -> CUresult { + (self + .cuIpcOpenEventHandle + .as_ref() + .expect("Expected function, got error."))(phEvent, handle) + } + pub unsafe fn cuIpcGetMemHandle( + &self, + pHandle: *mut CUipcMemHandle, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuIpcGetMemHandle + .as_ref() + .expect("Expected function, got error."))(pHandle, dptr) + } + pub unsafe fn cuIpcOpenMemHandle_v2( + &self, + pdptr: *mut CUdeviceptr, + handle: CUipcMemHandle, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuIpcOpenMemHandle_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, handle, Flags) + } + pub unsafe fn cuIpcCloseMemHandle(&self, dptr: CUdeviceptr) -> CUresult { + (self + .cuIpcCloseMemHandle + .as_ref() + .expect("Expected function, got error."))(dptr) + } + pub unsafe fn cuMemHostRegister_v2( + &self, + p: *mut ::core::ffi::c_void, + bytesize: usize, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMemHostRegister_v2 + .as_ref() + .expect("Expected function, got error."))(p, bytesize, Flags) + } + pub unsafe fn cuMemHostUnregister(&self, p: *mut ::core::ffi::c_void) -> CUresult { + (self + .cuMemHostUnregister + .as_ref() + .expect("Expected function, got error."))(p) + } + pub unsafe fn cuMemcpy( + &self, + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpy + .as_ref() + .expect("Expected function, got error."))(dst, src, ByteCount) + } + pub unsafe fn cuMemcpyPeer( + &self, + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyPeer + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstContext, srcDevice, srcContext, ByteCount, + ) + } + pub unsafe fn cuMemcpyHtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyHtoD_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcHost, ByteCount) + } + pub unsafe fn cuMemcpyDtoH_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoH_v2 + .as_ref() + .expect("Expected function, got error."))(dstHost, srcDevice, ByteCount) + } + pub unsafe fn cuMemcpyDtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoD_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcDevice, ByteCount) + } + pub unsafe fn cuMemcpyDtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcDevice: CUdeviceptr, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyDtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcDevice, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoD_v2( + &self, + dstDevice: CUdeviceptr, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoD_v2 + .as_ref() + .expect("Expected function, got error."))( + dstDevice, srcArray, srcOffset, ByteCount + ) + } + pub unsafe fn cuMemcpyHtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyHtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcHost, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoH_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoH_v2 + .as_ref() + .expect("Expected function, got error."))( + dstHost, srcArray, srcOffset, ByteCount + ) + } + pub unsafe fn cuMemcpyAtoA_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + ) -> CUresult { + (self + .cuMemcpyAtoA_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcArray, srcOffset, ByteCount, + ) + } + pub unsafe fn cuMemcpy2D_v2(&self, pCopy: *const CUDA_MEMCPY2D) -> CUresult { + (self + .cuMemcpy2D_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy2DUnaligned_v2(&self, pCopy: *const CUDA_MEMCPY2D) -> CUresult { + (self + .cuMemcpy2DUnaligned_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy3D_v2(&self, pCopy: *const CUDA_MEMCPY3D) -> CUresult { + (self + .cuMemcpy3D_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpy3DPeer(&self, pCopy: *const CUDA_MEMCPY3D_PEER) -> CUresult { + (self + .cuMemcpy3DPeer + .as_ref() + .expect("Expected function, got error."))(pCopy) + } + pub unsafe fn cuMemcpyAsync( + &self, + dst: CUdeviceptr, + src: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyAsync + .as_ref() + .expect("Expected function, got error."))(dst, src, ByteCount, hStream) + } + pub unsafe fn cuMemcpyPeerAsync( + &self, + dstDevice: CUdeviceptr, + dstContext: CUcontext, + srcDevice: CUdeviceptr, + srcContext: CUcontext, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyPeerAsync + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstContext, srcDevice, srcContext, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpyHtoDAsync_v2( + &self, + dstDevice: CUdeviceptr, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyHtoDAsync_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, srcHost, ByteCount, hStream) + } + pub unsafe fn cuMemcpyDtoHAsync_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyDtoHAsync_v2 + .as_ref() + .expect("Expected function, got error."))(dstHost, srcDevice, ByteCount, hStream) + } + pub unsafe fn cuMemcpyDtoDAsync_v2( + &self, + dstDevice: CUdeviceptr, + srcDevice: CUdeviceptr, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyDtoDAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstDevice, srcDevice, ByteCount, hStream + ) + } + pub unsafe fn cuMemcpyHtoAAsync_v2( + &self, + dstArray: CUarray, + dstOffset: usize, + srcHost: *const ::core::ffi::c_void, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyHtoAAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstArray, dstOffset, srcHost, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpyAtoHAsync_v2( + &self, + dstHost: *mut ::core::ffi::c_void, + srcArray: CUarray, + srcOffset: usize, + ByteCount: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpyAtoHAsync_v2 + .as_ref() + .expect("Expected function, got error."))( + dstHost, srcArray, srcOffset, ByteCount, hStream, + ) + } + pub unsafe fn cuMemcpy2DAsync_v2( + &self, + pCopy: *const CUDA_MEMCPY2D, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy2DAsync_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemcpy3DAsync_v2( + &self, + pCopy: *const CUDA_MEMCPY3D, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy3DAsync_v2 + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemcpy3DPeerAsync( + &self, + pCopy: *const CUDA_MEMCPY3D_PEER, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemcpy3DPeerAsync + .as_ref() + .expect("Expected function, got error."))(pCopy, hStream) + } + pub unsafe fn cuMemsetD8_v2( + &self, + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + ) -> CUresult { + (self + .cuMemsetD8_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, uc, N) + } + pub unsafe fn cuMemsetD16_v2( + &self, + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + ) -> CUresult { + (self + .cuMemsetD16_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, us, N) + } + pub unsafe fn cuMemsetD32_v2( + &self, + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + ) -> CUresult { + (self + .cuMemsetD32_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, ui, N) + } + pub unsafe fn cuMemsetD2D8_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D8_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, uc, Width, Height) + } + pub unsafe fn cuMemsetD2D16_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D16_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, us, Width, Height) + } + pub unsafe fn cuMemsetD2D32_v2( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + ) -> CUresult { + (self + .cuMemsetD2D32_v2 + .as_ref() + .expect("Expected function, got error."))(dstDevice, dstPitch, ui, Width, Height) + } + pub unsafe fn cuMemsetD8Async( + &self, + dstDevice: CUdeviceptr, + uc: ::core::ffi::c_uchar, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD8Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, uc, N, hStream) + } + pub unsafe fn cuMemsetD16Async( + &self, + dstDevice: CUdeviceptr, + us: ::core::ffi::c_ushort, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD16Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, us, N, hStream) + } + pub unsafe fn cuMemsetD32Async( + &self, + dstDevice: CUdeviceptr, + ui: ::core::ffi::c_uint, + N: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD32Async + .as_ref() + .expect("Expected function, got error."))(dstDevice, ui, N, hStream) + } + pub unsafe fn cuMemsetD2D8Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + uc: ::core::ffi::c_uchar, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D8Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, uc, Width, Height, hStream, + ) + } + pub unsafe fn cuMemsetD2D16Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + us: ::core::ffi::c_ushort, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D16Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, us, Width, Height, hStream, + ) + } + pub unsafe fn cuMemsetD2D32Async( + &self, + dstDevice: CUdeviceptr, + dstPitch: usize, + ui: ::core::ffi::c_uint, + Width: usize, + Height: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemsetD2D32Async + .as_ref() + .expect("Expected function, got error."))( + dstDevice, dstPitch, ui, Width, Height, hStream, + ) + } + pub unsafe fn cuArrayCreate_v2( + &self, + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY_DESCRIPTOR, + ) -> CUresult { + (self + .cuArrayCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pHandle, pAllocateArray) + } + pub unsafe fn cuArrayGetDescriptor_v2( + &self, + pArrayDescriptor: *mut CUDA_ARRAY_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult { + (self + .cuArrayGetDescriptor_v2 + .as_ref() + .expect("Expected function, got error."))(pArrayDescriptor, hArray) + } + pub unsafe fn cuArrayGetSparseProperties( + &self, + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + array: CUarray, + ) -> CUresult { + (self + .cuArrayGetSparseProperties + .as_ref() + .expect("Expected function, got error."))(sparseProperties, array) + } + pub unsafe fn cuMipmappedArrayGetSparseProperties( + &self, + sparseProperties: *mut CUDA_ARRAY_SPARSE_PROPERTIES, + mipmap: CUmipmappedArray, + ) -> CUresult { + (self + .cuMipmappedArrayGetSparseProperties + .as_ref() + .expect("Expected function, got error."))(sparseProperties, mipmap) + } + pub unsafe fn cuArrayGetMemoryRequirements( + &self, + memoryRequirements: *mut CUDA_ARRAY_MEMORY_REQUIREMENTS, + array: CUarray, + device: CUdevice, + ) -> CUresult { + (self + .cuArrayGetMemoryRequirements + .as_ref() + .expect("Expected function, got error."))(memoryRequirements, array, device) + } + pub unsafe fn cuMipmappedArrayGetMemoryRequirements( + &self, + memoryRequirements: *mut CUDA_ARRAY_MEMORY_REQUIREMENTS, + mipmap: CUmipmappedArray, + device: CUdevice, + ) -> CUresult { + (self + .cuMipmappedArrayGetMemoryRequirements + .as_ref() + .expect("Expected function, got error."))(memoryRequirements, mipmap, device) + } + pub unsafe fn cuArrayGetPlane( + &self, + pPlaneArray: *mut CUarray, + hArray: CUarray, + planeIdx: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuArrayGetPlane + .as_ref() + .expect("Expected function, got error."))(pPlaneArray, hArray, planeIdx) + } + pub unsafe fn cuArrayDestroy(&self, hArray: CUarray) -> CUresult { + (self + .cuArrayDestroy + .as_ref() + .expect("Expected function, got error."))(hArray) + } + pub unsafe fn cuArray3DCreate_v2( + &self, + pHandle: *mut CUarray, + pAllocateArray: *const CUDA_ARRAY3D_DESCRIPTOR, + ) -> CUresult { + (self + .cuArray3DCreate_v2 + .as_ref() + .expect("Expected function, got error."))(pHandle, pAllocateArray) + } + pub unsafe fn cuArray3DGetDescriptor_v2( + &self, + pArrayDescriptor: *mut CUDA_ARRAY3D_DESCRIPTOR, + hArray: CUarray, + ) -> CUresult { + (self + .cuArray3DGetDescriptor_v2 + .as_ref() + .expect("Expected function, got error."))(pArrayDescriptor, hArray) + } + pub unsafe fn cuMipmappedArrayCreate( + &self, + pHandle: *mut CUmipmappedArray, + pMipmappedArrayDesc: *const CUDA_ARRAY3D_DESCRIPTOR, + numMipmapLevels: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMipmappedArrayCreate + .as_ref() + .expect("Expected function, got error."))( + pHandle, pMipmappedArrayDesc, numMipmapLevels + ) + } + pub unsafe fn cuMipmappedArrayGetLevel( + &self, + pLevelArray: *mut CUarray, + hMipmappedArray: CUmipmappedArray, + level: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuMipmappedArrayGetLevel + .as_ref() + .expect("Expected function, got error."))(pLevelArray, hMipmappedArray, level) + } + pub unsafe fn cuMipmappedArrayDestroy(&self, hMipmappedArray: CUmipmappedArray) -> CUresult { + (self + .cuMipmappedArrayDestroy + .as_ref() + .expect("Expected function, got error."))(hMipmappedArray) + } + pub unsafe fn cuMemAddressReserve( + &self, + ptr: *mut CUdeviceptr, + size: usize, + alignment: usize, + addr: CUdeviceptr, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemAddressReserve + .as_ref() + .expect("Expected function, got error."))(ptr, size, alignment, addr, flags) + } + pub unsafe fn cuMemAddressFree(&self, ptr: CUdeviceptr, size: usize) -> CUresult { + (self + .cuMemAddressFree + .as_ref() + .expect("Expected function, got error."))(ptr, size) + } + pub unsafe fn cuMemCreate( + &self, + handle: *mut CUmemGenericAllocationHandle, + size: usize, + prop: *const CUmemAllocationProp, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemCreate + .as_ref() + .expect("Expected function, got error."))(handle, size, prop, flags) + } + pub unsafe fn cuMemRelease(&self, handle: CUmemGenericAllocationHandle) -> CUresult { + (self + .cuMemRelease + .as_ref() + .expect("Expected function, got error."))(handle) + } + pub unsafe fn cuMemMap( + &self, + ptr: CUdeviceptr, + size: usize, + offset: usize, + handle: CUmemGenericAllocationHandle, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemMap + .as_ref() + .expect("Expected function, got error."))(ptr, size, offset, handle, flags) + } + pub unsafe fn cuMemMapArrayAsync( + &self, + mapInfoList: *mut CUarrayMapInfo, + count: ::core::ffi::c_uint, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemMapArrayAsync + .as_ref() + .expect("Expected function, got error."))(mapInfoList, count, hStream) + } + pub unsafe fn cuMemUnmap(&self, ptr: CUdeviceptr, size: usize) -> CUresult { + (self + .cuMemUnmap + .as_ref() + .expect("Expected function, got error."))(ptr, size) + } + pub unsafe fn cuMemSetAccess( + &self, + ptr: CUdeviceptr, + size: usize, + desc: *const CUmemAccessDesc, + count: usize, + ) -> CUresult { + (self + .cuMemSetAccess + .as_ref() + .expect("Expected function, got error."))(ptr, size, desc, count) + } + pub unsafe fn cuMemGetAccess( + &self, + flags: *mut ::core::ffi::c_ulonglong, + location: *const CUmemLocation, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemGetAccess + .as_ref() + .expect("Expected function, got error."))(flags, location, ptr) + } + pub unsafe fn cuMemExportToShareableHandle( + &self, + shareableHandle: *mut ::core::ffi::c_void, + handle: CUmemGenericAllocationHandle, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemExportToShareableHandle + .as_ref() + .expect("Expected function, got error."))( + shareableHandle, handle, handleType, flags + ) + } + pub unsafe fn cuMemImportFromShareableHandle( + &self, + handle: *mut CUmemGenericAllocationHandle, + osHandle: *mut ::core::ffi::c_void, + shHandleType: CUmemAllocationHandleType, + ) -> CUresult { + (self + .cuMemImportFromShareableHandle + .as_ref() + .expect("Expected function, got error."))(handle, osHandle, shHandleType) + } + pub unsafe fn cuMemGetAllocationGranularity( + &self, + granularity: *mut usize, + prop: *const CUmemAllocationProp, + option: CUmemAllocationGranularity_flags, + ) -> CUresult { + (self + .cuMemGetAllocationGranularity + .as_ref() + .expect("Expected function, got error."))(granularity, prop, option) + } + pub unsafe fn cuMemGetAllocationPropertiesFromHandle( + &self, + prop: *mut CUmemAllocationProp, + handle: CUmemGenericAllocationHandle, + ) -> CUresult { + (self + .cuMemGetAllocationPropertiesFromHandle + .as_ref() + .expect("Expected function, got error."))(prop, handle) + } + pub unsafe fn cuMemRetainAllocationHandle( + &self, + handle: *mut CUmemGenericAllocationHandle, + addr: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemRetainAllocationHandle + .as_ref() + .expect("Expected function, got error."))(handle, addr) + } + pub unsafe fn cuMemFreeAsync(&self, dptr: CUdeviceptr, hStream: CUstream) -> CUresult { + (self + .cuMemFreeAsync + .as_ref() + .expect("Expected function, got error."))(dptr, hStream) + } + pub unsafe fn cuMemAllocAsync( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemAllocAsync + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, hStream) + } + pub unsafe fn cuMemPoolTrimTo(&self, pool: CUmemoryPool, minBytesToKeep: usize) -> CUresult { + (self + .cuMemPoolTrimTo + .as_ref() + .expect("Expected function, got error."))(pool, minBytesToKeep) + } + pub unsafe fn cuMemPoolSetAttribute( + &self, + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemPoolSetAttribute + .as_ref() + .expect("Expected function, got error."))(pool, attr, value) + } + pub unsafe fn cuMemPoolGetAttribute( + &self, + pool: CUmemoryPool, + attr: CUmemPool_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuMemPoolGetAttribute + .as_ref() + .expect("Expected function, got error."))(pool, attr, value) + } + pub unsafe fn cuMemPoolSetAccess( + &self, + pool: CUmemoryPool, + map: *const CUmemAccessDesc, + count: usize, + ) -> CUresult { + (self + .cuMemPoolSetAccess + .as_ref() + .expect("Expected function, got error."))(pool, map, count) + } + pub unsafe fn cuMemPoolGetAccess( + &self, + flags: *mut CUmemAccess_flags, + memPool: CUmemoryPool, + location: *mut CUmemLocation, + ) -> CUresult { + (self + .cuMemPoolGetAccess + .as_ref() + .expect("Expected function, got error."))(flags, memPool, location) + } + pub unsafe fn cuMemPoolCreate( + &self, + pool: *mut CUmemoryPool, + poolProps: *const CUmemPoolProps, + ) -> CUresult { + (self + .cuMemPoolCreate + .as_ref() + .expect("Expected function, got error."))(pool, poolProps) + } + pub unsafe fn cuMemPoolDestroy(&self, pool: CUmemoryPool) -> CUresult { + (self + .cuMemPoolDestroy + .as_ref() + .expect("Expected function, got error."))(pool) + } + pub unsafe fn cuMemAllocFromPoolAsync( + &self, + dptr: *mut CUdeviceptr, + bytesize: usize, + pool: CUmemoryPool, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemAllocFromPoolAsync + .as_ref() + .expect("Expected function, got error."))(dptr, bytesize, pool, hStream) + } + pub unsafe fn cuMemPoolExportToShareableHandle( + &self, + handle_out: *mut ::core::ffi::c_void, + pool: CUmemoryPool, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemPoolExportToShareableHandle + .as_ref() + .expect("Expected function, got error."))(handle_out, pool, handleType, flags) + } + pub unsafe fn cuMemPoolImportFromShareableHandle( + &self, + pool_out: *mut CUmemoryPool, + handle: *mut ::core::ffi::c_void, + handleType: CUmemAllocationHandleType, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuMemPoolImportFromShareableHandle + .as_ref() + .expect("Expected function, got error."))(pool_out, handle, handleType, flags) + } + pub unsafe fn cuMemPoolExportPointer( + &self, + shareData_out: *mut CUmemPoolPtrExportData, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuMemPoolExportPointer + .as_ref() + .expect("Expected function, got error."))(shareData_out, ptr) + } + pub unsafe fn cuMemPoolImportPointer( + &self, + ptr_out: *mut CUdeviceptr, + pool: CUmemoryPool, + shareData: *mut CUmemPoolPtrExportData, + ) -> CUresult { + (self + .cuMemPoolImportPointer + .as_ref() + .expect("Expected function, got error."))(ptr_out, pool, shareData) + } + pub unsafe fn cuPointerGetAttribute( + &self, + data: *mut ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerGetAttribute + .as_ref() + .expect("Expected function, got error."))(data, attribute, ptr) + } + pub unsafe fn cuMemPrefetchAsync( + &self, + devPtr: CUdeviceptr, + count: usize, + dstDevice: CUdevice, + hStream: CUstream, + ) -> CUresult { + (self + .cuMemPrefetchAsync + .as_ref() + .expect("Expected function, got error."))(devPtr, count, dstDevice, hStream) + } + pub unsafe fn cuMemAdvise( + &self, + devPtr: CUdeviceptr, + count: usize, + advice: CUmem_advise, + device: CUdevice, + ) -> CUresult { + (self + .cuMemAdvise + .as_ref() + .expect("Expected function, got error."))(devPtr, count, advice, device) + } + pub unsafe fn cuMemRangeGetAttribute( + &self, + data: *mut ::core::ffi::c_void, + dataSize: usize, + attribute: CUmem_range_attribute, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult { + (self + .cuMemRangeGetAttribute + .as_ref() + .expect("Expected function, got error."))( + data, dataSize, attribute, devPtr, count + ) + } + pub unsafe fn cuMemRangeGetAttributes( + &self, + data: *mut *mut ::core::ffi::c_void, + dataSizes: *mut usize, + attributes: *mut CUmem_range_attribute, + numAttributes: usize, + devPtr: CUdeviceptr, + count: usize, + ) -> CUresult { + (self + .cuMemRangeGetAttributes + .as_ref() + .expect("Expected function, got error."))( + data, + dataSizes, + attributes, + numAttributes, + devPtr, + count, + ) + } + pub unsafe fn cuPointerSetAttribute( + &self, + value: *const ::core::ffi::c_void, + attribute: CUpointer_attribute, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerSetAttribute + .as_ref() + .expect("Expected function, got error."))(value, attribute, ptr) + } + pub unsafe fn cuPointerGetAttributes( + &self, + numAttributes: ::core::ffi::c_uint, + attributes: *mut CUpointer_attribute, + data: *mut *mut ::core::ffi::c_void, + ptr: CUdeviceptr, + ) -> CUresult { + (self + .cuPointerGetAttributes + .as_ref() + .expect("Expected function, got error."))(numAttributes, attributes, data, ptr) + } + pub unsafe fn cuStreamCreate( + &self, + phStream: *mut CUstream, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamCreate + .as_ref() + .expect("Expected function, got error."))(phStream, Flags) + } + pub unsafe fn cuStreamCreateWithPriority( + &self, + phStream: *mut CUstream, + flags: ::core::ffi::c_uint, + priority: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuStreamCreateWithPriority + .as_ref() + .expect("Expected function, got error."))(phStream, flags, priority) + } + pub unsafe fn cuStreamGetPriority( + &self, + hStream: CUstream, + priority: *mut ::core::ffi::c_int, + ) -> CUresult { + (self + .cuStreamGetPriority + .as_ref() + .expect("Expected function, got error."))(hStream, priority) + } + pub unsafe fn cuStreamGetFlags( + &self, + hStream: CUstream, + flags: *mut ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamGetFlags + .as_ref() + .expect("Expected function, got error."))(hStream, flags) + } + pub unsafe fn cuStreamGetCtx(&self, hStream: CUstream, pctx: *mut CUcontext) -> CUresult { + (self + .cuStreamGetCtx + .as_ref() + .expect("Expected function, got error."))(hStream, pctx) + } + pub unsafe fn cuStreamWaitEvent( + &self, + hStream: CUstream, + hEvent: CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitEvent + .as_ref() + .expect("Expected function, got error."))(hStream, hEvent, Flags) + } + pub unsafe fn cuStreamAddCallback( + &self, + hStream: CUstream, + callback: CUstreamCallback, + userData: *mut ::core::ffi::c_void, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamAddCallback + .as_ref() + .expect("Expected function, got error."))(hStream, callback, userData, flags) + } + pub unsafe fn cuStreamBeginCapture_v2( + &self, + hStream: CUstream, + mode: CUstreamCaptureMode, + ) -> CUresult { + (self + .cuStreamBeginCapture_v2 + .as_ref() + .expect("Expected function, got error."))(hStream, mode) + } + pub unsafe fn cuThreadExchangeStreamCaptureMode( + &self, + mode: *mut CUstreamCaptureMode, + ) -> CUresult { + (self + .cuThreadExchangeStreamCaptureMode + .as_ref() + .expect("Expected function, got error."))(mode) + } + pub unsafe fn cuStreamEndCapture(&self, hStream: CUstream, phGraph: *mut CUgraph) -> CUresult { + (self + .cuStreamEndCapture + .as_ref() + .expect("Expected function, got error."))(hStream, phGraph) + } + pub unsafe fn cuStreamIsCapturing( + &self, + hStream: CUstream, + captureStatus: *mut CUstreamCaptureStatus, + ) -> CUresult { + (self + .cuStreamIsCapturing + .as_ref() + .expect("Expected function, got error."))(hStream, captureStatus) + } + pub unsafe fn cuStreamGetCaptureInfo( + &self, + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + ) -> CUresult { + (self + .cuStreamGetCaptureInfo + .as_ref() + .expect("Expected function, got error."))(hStream, captureStatus_out, id_out) + } + pub unsafe fn cuStreamGetCaptureInfo_v2( + &self, + hStream: CUstream, + captureStatus_out: *mut CUstreamCaptureStatus, + id_out: *mut cuuint64_t, + graph_out: *mut CUgraph, + dependencies_out: *mut *const CUgraphNode, + numDependencies_out: *mut usize, + ) -> CUresult { + (self + .cuStreamGetCaptureInfo_v2 + .as_ref() + .expect("Expected function, got error."))( + hStream, + captureStatus_out, + id_out, + graph_out, + dependencies_out, + numDependencies_out, + ) + } + pub unsafe fn cuStreamUpdateCaptureDependencies( + &self, + hStream: CUstream, + dependencies: *mut CUgraphNode, + numDependencies: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamUpdateCaptureDependencies + .as_ref() + .expect("Expected function, got error."))( + hStream, dependencies, numDependencies, flags + ) + } + pub unsafe fn cuStreamAttachMemAsync( + &self, + hStream: CUstream, + dptr: CUdeviceptr, + length: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamAttachMemAsync + .as_ref() + .expect("Expected function, got error."))(hStream, dptr, length, flags) + } + pub unsafe fn cuStreamQuery(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamQuery + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamSynchronize(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamSynchronize + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamDestroy_v2(&self, hStream: CUstream) -> CUresult { + (self + .cuStreamDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(hStream) + } + pub unsafe fn cuStreamCopyAttributes(&self, dst: CUstream, src: CUstream) -> CUresult { + (self + .cuStreamCopyAttributes + .as_ref() + .expect("Expected function, got error."))(dst, src) + } + pub unsafe fn cuStreamGetAttribute( + &self, + hStream: CUstream, + attr: CUstreamAttrID, + value_out: *mut CUstreamAttrValue, + ) -> CUresult { + (self + .cuStreamGetAttribute + .as_ref() + .expect("Expected function, got error."))(hStream, attr, value_out) + } + pub unsafe fn cuStreamSetAttribute( + &self, + hStream: CUstream, + attr: CUstreamAttrID, + value: *const CUstreamAttrValue, + ) -> CUresult { + (self + .cuStreamSetAttribute + .as_ref() + .expect("Expected function, got error."))(hStream, attr, value) + } + pub unsafe fn cuEventCreate( + &self, + phEvent: *mut CUevent, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuEventCreate + .as_ref() + .expect("Expected function, got error."))(phEvent, Flags) + } + pub unsafe fn cuEventRecord(&self, hEvent: CUevent, hStream: CUstream) -> CUresult { + (self + .cuEventRecord + .as_ref() + .expect("Expected function, got error."))(hEvent, hStream) + } + pub unsafe fn cuEventRecordWithFlags( + &self, + hEvent: CUevent, + hStream: CUstream, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuEventRecordWithFlags + .as_ref() + .expect("Expected function, got error."))(hEvent, hStream, flags) + } + pub unsafe fn cuEventQuery(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventQuery + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventSynchronize(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventSynchronize + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventDestroy_v2(&self, hEvent: CUevent) -> CUresult { + (self + .cuEventDestroy_v2 + .as_ref() + .expect("Expected function, got error."))(hEvent) + } + pub unsafe fn cuEventElapsedTime( + &self, + pMilliseconds: *mut f32, + hStart: CUevent, + hEnd: CUevent, + ) -> CUresult { + (self + .cuEventElapsedTime + .as_ref() + .expect("Expected function, got error."))(pMilliseconds, hStart, hEnd) + } + pub unsafe fn cuImportExternalMemory( + &self, + extMem_out: *mut CUexternalMemory, + memHandleDesc: *const CUDA_EXTERNAL_MEMORY_HANDLE_DESC, + ) -> CUresult { + (self + .cuImportExternalMemory + .as_ref() + .expect("Expected function, got error."))(extMem_out, memHandleDesc) + } + pub unsafe fn cuExternalMemoryGetMappedBuffer( + &self, + devPtr: *mut CUdeviceptr, + extMem: CUexternalMemory, + bufferDesc: *const CUDA_EXTERNAL_MEMORY_BUFFER_DESC, + ) -> CUresult { + (self + .cuExternalMemoryGetMappedBuffer + .as_ref() + .expect("Expected function, got error."))(devPtr, extMem, bufferDesc) + } + pub unsafe fn cuExternalMemoryGetMappedMipmappedArray( + &self, + mipmap: *mut CUmipmappedArray, + extMem: CUexternalMemory, + mipmapDesc: *const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC, + ) -> CUresult { + (self + .cuExternalMemoryGetMappedMipmappedArray + .as_ref() + .expect("Expected function, got error."))(mipmap, extMem, mipmapDesc) + } + pub unsafe fn cuDestroyExternalMemory(&self, extMem: CUexternalMemory) -> CUresult { + (self + .cuDestroyExternalMemory + .as_ref() + .expect("Expected function, got error."))(extMem) + } + pub unsafe fn cuImportExternalSemaphore( + &self, + extSem_out: *mut CUexternalSemaphore, + semHandleDesc: *const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC, + ) -> CUresult { + (self + .cuImportExternalSemaphore + .as_ref() + .expect("Expected function, got error."))(extSem_out, semHandleDesc) + } + pub unsafe fn cuSignalExternalSemaphoresAsync( + &self, + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult { + (self + .cuSignalExternalSemaphoresAsync + .as_ref() + .expect("Expected function, got error."))( + extSemArray, paramsArray, numExtSems, stream + ) + } + pub unsafe fn cuWaitExternalSemaphoresAsync( + &self, + extSemArray: *const CUexternalSemaphore, + paramsArray: *const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS, + numExtSems: ::core::ffi::c_uint, + stream: CUstream, + ) -> CUresult { + (self + .cuWaitExternalSemaphoresAsync + .as_ref() + .expect("Expected function, got error."))( + extSemArray, paramsArray, numExtSems, stream + ) + } + pub unsafe fn cuDestroyExternalSemaphore(&self, extSem: CUexternalSemaphore) -> CUresult { + (self + .cuDestroyExternalSemaphore + .as_ref() + .expect("Expected function, got error."))(extSem) + } + pub unsafe fn cuStreamWaitValue32( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitValue32 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWaitValue64( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWaitValue64 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWriteValue32( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint32_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWriteValue32 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamWriteValue64( + &self, + stream: CUstream, + addr: CUdeviceptr, + value: cuuint64_t, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamWriteValue64 + .as_ref() + .expect("Expected function, got error."))(stream, addr, value, flags) + } + pub unsafe fn cuStreamBatchMemOp( + &self, + stream: CUstream, + count: ::core::ffi::c_uint, + paramArray: *mut CUstreamBatchMemOpParams, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuStreamBatchMemOp + .as_ref() + .expect("Expected function, got error."))(stream, count, paramArray, flags) + } + pub unsafe fn cuFuncGetAttribute( + &self, + pi: *mut ::core::ffi::c_int, + attrib: CUfunction_attribute, + hfunc: CUfunction, + ) -> CUresult { + (self + .cuFuncGetAttribute + .as_ref() + .expect("Expected function, got error."))(pi, attrib, hfunc) + } + pub unsafe fn cuFuncSetAttribute( + &self, + hfunc: CUfunction, + attrib: CUfunction_attribute, + value: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuFuncSetAttribute + .as_ref() + .expect("Expected function, got error."))(hfunc, attrib, value) + } + pub unsafe fn cuFuncSetCacheConfig(&self, hfunc: CUfunction, config: CUfunc_cache) -> CUresult { + (self + .cuFuncSetCacheConfig + .as_ref() + .expect("Expected function, got error."))(hfunc, config) + } + pub unsafe fn cuFuncSetSharedMemConfig( + &self, + hfunc: CUfunction, + config: CUsharedconfig, + ) -> CUresult { + (self + .cuFuncSetSharedMemConfig + .as_ref() + .expect("Expected function, got error."))(hfunc, config) + } + pub unsafe fn cuFuncGetModule(&self, hmod: *mut CUmodule, hfunc: CUfunction) -> CUresult { + (self + .cuFuncGetModule + .as_ref() + .expect("Expected function, got error."))(hmod, hfunc) + } + pub unsafe fn cuLaunchKernel( + &self, + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + extra: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchKernel + .as_ref() + .expect("Expected function, got error."))( + f, + gridDimX, + gridDimY, + gridDimZ, + blockDimX, + blockDimY, + blockDimZ, + sharedMemBytes, + hStream, + kernelParams, + extra, + ) + } + pub unsafe fn cuLaunchCooperativeKernel( + &self, + f: CUfunction, + gridDimX: ::core::ffi::c_uint, + gridDimY: ::core::ffi::c_uint, + gridDimZ: ::core::ffi::c_uint, + blockDimX: ::core::ffi::c_uint, + blockDimY: ::core::ffi::c_uint, + blockDimZ: ::core::ffi::c_uint, + sharedMemBytes: ::core::ffi::c_uint, + hStream: CUstream, + kernelParams: *mut *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchCooperativeKernel + .as_ref() + .expect("Expected function, got error."))( + f, + gridDimX, + gridDimY, + gridDimZ, + blockDimX, + blockDimY, + blockDimZ, + sharedMemBytes, + hStream, + kernelParams, + ) + } + pub unsafe fn cuLaunchCooperativeKernelMultiDevice( + &self, + launchParamsList: *mut CUDA_LAUNCH_PARAMS, + numDevices: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuLaunchCooperativeKernelMultiDevice + .as_ref() + .expect("Expected function, got error."))(launchParamsList, numDevices, flags) + } + pub unsafe fn cuLaunchHostFunc( + &self, + hStream: CUstream, + fn_: CUhostFn, + userData: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuLaunchHostFunc + .as_ref() + .expect("Expected function, got error."))(hStream, fn_, userData) + } + pub unsafe fn cuFuncSetBlockShape( + &self, + hfunc: CUfunction, + x: ::core::ffi::c_int, + y: ::core::ffi::c_int, + z: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuFuncSetBlockShape + .as_ref() + .expect("Expected function, got error."))(hfunc, x, y, z) + } + pub unsafe fn cuFuncSetSharedSize( + &self, + hfunc: CUfunction, + bytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuFuncSetSharedSize + .as_ref() + .expect("Expected function, got error."))(hfunc, bytes) + } + pub unsafe fn cuParamSetSize( + &self, + hfunc: CUfunction, + numbytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSetSize + .as_ref() + .expect("Expected function, got error."))(hfunc, numbytes) + } + pub unsafe fn cuParamSeti( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSeti + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, value) + } + pub unsafe fn cuParamSetf( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + value: f32, + ) -> CUresult { + (self + .cuParamSetf + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, value) + } + pub unsafe fn cuParamSetv( + &self, + hfunc: CUfunction, + offset: ::core::ffi::c_int, + ptr: *mut ::core::ffi::c_void, + numbytes: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuParamSetv + .as_ref() + .expect("Expected function, got error."))(hfunc, offset, ptr, numbytes) + } + pub unsafe fn cuLaunch(&self, f: CUfunction) -> CUresult { + (self + .cuLaunch + .as_ref() + .expect("Expected function, got error."))(f) + } + pub unsafe fn cuLaunchGrid( + &self, + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuLaunchGrid + .as_ref() + .expect("Expected function, got error."))(f, grid_width, grid_height) + } + pub unsafe fn cuLaunchGridAsync( + &self, + f: CUfunction, + grid_width: ::core::ffi::c_int, + grid_height: ::core::ffi::c_int, + hStream: CUstream, + ) -> CUresult { + (self + .cuLaunchGridAsync + .as_ref() + .expect("Expected function, got error."))(f, grid_width, grid_height, hStream) + } + pub unsafe fn cuParamSetTexRef( + &self, + hfunc: CUfunction, + texunit: ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuParamSetTexRef + .as_ref() + .expect("Expected function, got error."))(hfunc, texunit, hTexRef) + } + pub unsafe fn cuGraphCreate( + &self, + phGraph: *mut CUgraph, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphCreate + .as_ref() + .expect("Expected function, got error."))(phGraph, flags) + } + pub unsafe fn cuGraphAddKernelNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddKernelNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphKernelNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphKernelNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphKernelNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphKernelNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemcpyNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphAddMemcpyNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + copyParams, + ctx, + ) + } + pub unsafe fn cuGraphMemcpyNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMCPY3D, + ) -> CUresult { + (self + .cuGraphMemcpyNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphMemcpyNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMCPY3D, + ) -> CUresult { + (self + .cuGraphMemcpyNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemsetNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphAddMemsetNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + memsetParams, + ctx, + ) + } + pub unsafe fn cuGraphMemsetNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemsetNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphMemsetNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_MEMSET_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemsetNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddHostNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddHostNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphHostNodeGetParams( + &self, + hNode: CUgraphNode, + nodeParams: *mut CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphHostNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphHostNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphHostNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddChildGraphNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + childGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphAddChildGraphNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + childGraph, + ) + } + pub unsafe fn cuGraphChildGraphNodeGetGraph( + &self, + hNode: CUgraphNode, + phGraph: *mut CUgraph, + ) -> CUresult { + (self + .cuGraphChildGraphNodeGetGraph + .as_ref() + .expect("Expected function, got error."))(hNode, phGraph) + } + pub unsafe fn cuGraphAddEmptyNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphAddEmptyNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + ) + } + pub unsafe fn cuGraphAddEventRecordNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult { + (self + .cuGraphAddEventRecordNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + event, + ) + } + pub unsafe fn cuGraphEventRecordNodeGetEvent( + &self, + hNode: CUgraphNode, + event_out: *mut CUevent, + ) -> CUresult { + (self + .cuGraphEventRecordNodeGetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event_out) + } + pub unsafe fn cuGraphEventRecordNodeSetEvent( + &self, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphEventRecordNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event) + } + pub unsafe fn cuGraphAddEventWaitNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + event: CUevent, + ) -> CUresult { + (self + .cuGraphAddEventWaitNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + event, + ) + } + pub unsafe fn cuGraphEventWaitNodeGetEvent( + &self, + hNode: CUgraphNode, + event_out: *mut CUevent, + ) -> CUresult { + (self + .cuGraphEventWaitNodeGetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event_out) + } + pub unsafe fn cuGraphEventWaitNodeSetEvent( + &self, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphEventWaitNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hNode, event) + } + pub unsafe fn cuGraphAddExternalSemaphoresSignalNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddExternalSemaphoresSignalNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphExternalSemaphoresSignalNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresSignalNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphExternalSemaphoresSignalNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresSignalNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddExternalSemaphoresWaitNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddExternalSemaphoresWaitNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphExternalSemaphoresWaitNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresWaitNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphExternalSemaphoresWaitNodeSetParams( + &self, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExternalSemaphoresWaitNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hNode, nodeParams) + } + pub unsafe fn cuGraphAddMemAllocNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + nodeParams: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphAddMemAllocNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + nodeParams, + ) + } + pub unsafe fn cuGraphMemAllocNodeGetParams( + &self, + hNode: CUgraphNode, + params_out: *mut CUDA_MEM_ALLOC_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphMemAllocNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, params_out) + } + pub unsafe fn cuGraphAddMemFreeNode( + &self, + phGraphNode: *mut CUgraphNode, + hGraph: CUgraph, + dependencies: *const CUgraphNode, + numDependencies: usize, + dptr: CUdeviceptr, + ) -> CUresult { + (self + .cuGraphAddMemFreeNode + .as_ref() + .expect("Expected function, got error."))( + phGraphNode, + hGraph, + dependencies, + numDependencies, + dptr, + ) + } + pub unsafe fn cuGraphMemFreeNodeGetParams( + &self, + hNode: CUgraphNode, + dptr_out: *mut CUdeviceptr, + ) -> CUresult { + (self + .cuGraphMemFreeNodeGetParams + .as_ref() + .expect("Expected function, got error."))(hNode, dptr_out) + } + pub unsafe fn cuDeviceGraphMemTrim(&self, device: CUdevice) -> CUresult { + (self + .cuDeviceGraphMemTrim + .as_ref() + .expect("Expected function, got error."))(device) + } + pub unsafe fn cuDeviceGetGraphMemAttribute( + &self, + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuDeviceGetGraphMemAttribute + .as_ref() + .expect("Expected function, got error."))(device, attr, value) + } + pub unsafe fn cuDeviceSetGraphMemAttribute( + &self, + device: CUdevice, + attr: CUgraphMem_attribute, + value: *mut ::core::ffi::c_void, + ) -> CUresult { + (self + .cuDeviceSetGraphMemAttribute + .as_ref() + .expect("Expected function, got error."))(device, attr, value) + } + pub unsafe fn cuGraphClone( + &self, + phGraphClone: *mut CUgraph, + originalGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphClone + .as_ref() + .expect("Expected function, got error."))(phGraphClone, originalGraph) + } + pub unsafe fn cuGraphNodeFindInClone( + &self, + phNode: *mut CUgraphNode, + hOriginalNode: CUgraphNode, + hClonedGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphNodeFindInClone + .as_ref() + .expect("Expected function, got error."))(phNode, hOriginalNode, hClonedGraph) + } + pub unsafe fn cuGraphNodeGetType( + &self, + hNode: CUgraphNode, + type_: *mut CUgraphNodeType, + ) -> CUresult { + (self + .cuGraphNodeGetType + .as_ref() + .expect("Expected function, got error."))(hNode, type_) + } + pub unsafe fn cuGraphGetNodes( + &self, + hGraph: CUgraph, + nodes: *mut CUgraphNode, + numNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphGetNodes + .as_ref() + .expect("Expected function, got error."))(hGraph, nodes, numNodes) + } + pub unsafe fn cuGraphGetRootNodes( + &self, + hGraph: CUgraph, + rootNodes: *mut CUgraphNode, + numRootNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphGetRootNodes + .as_ref() + .expect("Expected function, got error."))(hGraph, rootNodes, numRootNodes) + } + pub unsafe fn cuGraphGetEdges( + &self, + hGraph: CUgraph, + from: *mut CUgraphNode, + to: *mut CUgraphNode, + numEdges: *mut usize, + ) -> CUresult { + (self + .cuGraphGetEdges + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numEdges) + } + pub unsafe fn cuGraphNodeGetDependencies( + &self, + hNode: CUgraphNode, + dependencies: *mut CUgraphNode, + numDependencies: *mut usize, + ) -> CUresult { + (self + .cuGraphNodeGetDependencies + .as_ref() + .expect("Expected function, got error."))(hNode, dependencies, numDependencies) + } + pub unsafe fn cuGraphNodeGetDependentNodes( + &self, + hNode: CUgraphNode, + dependentNodes: *mut CUgraphNode, + numDependentNodes: *mut usize, + ) -> CUresult { + (self + .cuGraphNodeGetDependentNodes + .as_ref() + .expect("Expected function, got error."))( + hNode, dependentNodes, numDependentNodes + ) + } + pub unsafe fn cuGraphAddDependencies( + &self, + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphAddDependencies + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numDependencies) + } + pub unsafe fn cuGraphRemoveDependencies( + &self, + hGraph: CUgraph, + from: *const CUgraphNode, + to: *const CUgraphNode, + numDependencies: usize, + ) -> CUresult { + (self + .cuGraphRemoveDependencies + .as_ref() + .expect("Expected function, got error."))(hGraph, from, to, numDependencies) + } + pub unsafe fn cuGraphDestroyNode(&self, hNode: CUgraphNode) -> CUresult { + (self + .cuGraphDestroyNode + .as_ref() + .expect("Expected function, got error."))(hNode) + } + pub unsafe fn cuGraphInstantiate_v2( + &self, + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + phErrorNode: *mut CUgraphNode, + logBuffer: *mut ::core::ffi::c_char, + bufferSize: usize, + ) -> CUresult { + (self + .cuGraphInstantiate_v2 + .as_ref() + .expect("Expected function, got error."))( + phGraphExec, + hGraph, + phErrorNode, + logBuffer, + bufferSize, + ) + } + pub unsafe fn cuGraphInstantiateWithFlags( + &self, + phGraphExec: *mut CUgraphExec, + hGraph: CUgraph, + flags: ::core::ffi::c_ulonglong, + ) -> CUresult { + (self + .cuGraphInstantiateWithFlags + .as_ref() + .expect("Expected function, got error."))(phGraphExec, hGraph, flags) + } + pub unsafe fn cuGraphExecKernelNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_KERNEL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecKernelNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecMemcpyNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + copyParams: *const CUDA_MEMCPY3D, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphExecMemcpyNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, copyParams, ctx) + } + pub unsafe fn cuGraphExecMemsetNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + memsetParams: *const CUDA_MEMSET_NODE_PARAMS, + ctx: CUcontext, + ) -> CUresult { + (self + .cuGraphExecMemsetNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, memsetParams, ctx) + } + pub unsafe fn cuGraphExecHostNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_HOST_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecHostNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecChildGraphNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + childGraph: CUgraph, + ) -> CUresult { + (self + .cuGraphExecChildGraphNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, childGraph) + } + pub unsafe fn cuGraphExecEventRecordNodeSetEvent( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphExecEventRecordNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, event) + } + pub unsafe fn cuGraphExecEventWaitNodeSetEvent( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + event: CUevent, + ) -> CUresult { + (self + .cuGraphExecEventWaitNodeSetEvent + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, event) + } + pub unsafe fn cuGraphExecExternalSemaphoresSignalNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecExternalSemaphoresSignalNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphExecExternalSemaphoresWaitNodeSetParams( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + nodeParams: *const CUDA_EXT_SEM_WAIT_NODE_PARAMS, + ) -> CUresult { + (self + .cuGraphExecExternalSemaphoresWaitNodeSetParams + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, nodeParams) + } + pub unsafe fn cuGraphNodeSetEnabled( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + isEnabled: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphNodeSetEnabled + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, isEnabled) + } + pub unsafe fn cuGraphNodeGetEnabled( + &self, + hGraphExec: CUgraphExec, + hNode: CUgraphNode, + isEnabled: *mut ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphNodeGetEnabled + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hNode, isEnabled) + } + pub unsafe fn cuGraphUpload(&self, hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult { + (self + .cuGraphUpload + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hStream) + } + pub unsafe fn cuGraphLaunch(&self, hGraphExec: CUgraphExec, hStream: CUstream) -> CUresult { + (self + .cuGraphLaunch + .as_ref() + .expect("Expected function, got error."))(hGraphExec, hStream) + } + pub unsafe fn cuGraphExecDestroy(&self, hGraphExec: CUgraphExec) -> CUresult { + (self + .cuGraphExecDestroy + .as_ref() + .expect("Expected function, got error."))(hGraphExec) + } + pub unsafe fn cuGraphDestroy(&self, hGraph: CUgraph) -> CUresult { + (self + .cuGraphDestroy + .as_ref() + .expect("Expected function, got error."))(hGraph) + } + pub unsafe fn cuGraphExecUpdate( + &self, + hGraphExec: CUgraphExec, + hGraph: CUgraph, + hErrorNode_out: *mut CUgraphNode, + updateResult_out: *mut CUgraphExecUpdateResult, + ) -> CUresult { + (self + .cuGraphExecUpdate + .as_ref() + .expect("Expected function, got error."))( + hGraphExec, + hGraph, + hErrorNode_out, + updateResult_out, + ) + } + pub unsafe fn cuGraphKernelNodeCopyAttributes( + &self, + dst: CUgraphNode, + src: CUgraphNode, + ) -> CUresult { + (self + .cuGraphKernelNodeCopyAttributes + .as_ref() + .expect("Expected function, got error."))(dst, src) + } + pub unsafe fn cuGraphKernelNodeGetAttribute( + &self, + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value_out: *mut CUkernelNodeAttrValue, + ) -> CUresult { + (self + .cuGraphKernelNodeGetAttribute + .as_ref() + .expect("Expected function, got error."))(hNode, attr, value_out) + } + pub unsafe fn cuGraphKernelNodeSetAttribute( + &self, + hNode: CUgraphNode, + attr: CUkernelNodeAttrID, + value: *const CUkernelNodeAttrValue, + ) -> CUresult { + (self + .cuGraphKernelNodeSetAttribute + .as_ref() + .expect("Expected function, got error."))(hNode, attr, value) + } + pub unsafe fn cuGraphDebugDotPrint( + &self, + hGraph: CUgraph, + path: *const ::core::ffi::c_char, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphDebugDotPrint + .as_ref() + .expect("Expected function, got error."))(hGraph, path, flags) + } + pub unsafe fn cuUserObjectCreate( + &self, + object_out: *mut CUuserObject, + ptr: *mut ::core::ffi::c_void, + destroy: CUhostFn, + initialRefcount: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectCreate + .as_ref() + .expect("Expected function, got error."))( + object_out, + ptr, + destroy, + initialRefcount, + flags, + ) + } + pub unsafe fn cuUserObjectRetain( + &self, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectRetain + .as_ref() + .expect("Expected function, got error."))(object, count) + } + pub unsafe fn cuUserObjectRelease( + &self, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuUserObjectRelease + .as_ref() + .expect("Expected function, got error."))(object, count) + } + pub unsafe fn cuGraphRetainUserObject( + &self, + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphRetainUserObject + .as_ref() + .expect("Expected function, got error."))(graph, object, count, flags) + } + pub unsafe fn cuGraphReleaseUserObject( + &self, + graph: CUgraph, + object: CUuserObject, + count: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphReleaseUserObject + .as_ref() + .expect("Expected function, got error."))(graph, object, count) + } + pub unsafe fn cuOccupancyMaxActiveBlocksPerMultiprocessor( + &self, + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + ) -> CUresult { + (self + .cuOccupancyMaxActiveBlocksPerMultiprocessor + .as_ref() + .expect("Expected function, got error."))( + numBlocks, func, blockSize, dynamicSMemSize + ) + } + pub unsafe fn cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &self, + numBlocks: *mut ::core::ffi::c_int, + func: CUfunction, + blockSize: ::core::ffi::c_int, + dynamicSMemSize: usize, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags + .as_ref() + .expect("Expected function, got error."))( + numBlocks, + func, + blockSize, + dynamicSMemSize, + flags, + ) + } + pub unsafe fn cuOccupancyMaxPotentialBlockSize( + &self, + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuOccupancyMaxPotentialBlockSize + .as_ref() + .expect("Expected function, got error."))( + minGridSize, + blockSize, + func, + blockSizeToDynamicSMemSize, + dynamicSMemSize, + blockSizeLimit, + ) + } + pub unsafe fn cuOccupancyMaxPotentialBlockSizeWithFlags( + &self, + minGridSize: *mut ::core::ffi::c_int, + blockSize: *mut ::core::ffi::c_int, + func: CUfunction, + blockSizeToDynamicSMemSize: CUoccupancyB2DSize, + dynamicSMemSize: usize, + blockSizeLimit: ::core::ffi::c_int, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuOccupancyMaxPotentialBlockSizeWithFlags + .as_ref() + .expect("Expected function, got error."))( + minGridSize, + blockSize, + func, + blockSizeToDynamicSMemSize, + dynamicSMemSize, + blockSizeLimit, + flags, + ) + } + pub unsafe fn cuOccupancyAvailableDynamicSMemPerBlock( + &self, + dynamicSmemSize: *mut usize, + func: CUfunction, + numBlocks: ::core::ffi::c_int, + blockSize: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuOccupancyAvailableDynamicSMemPerBlock + .as_ref() + .expect("Expected function, got error."))( + dynamicSmemSize, func, numBlocks, blockSize + ) + } + pub unsafe fn cuTexRefSetArray( + &self, + hTexRef: CUtexref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetArray + .as_ref() + .expect("Expected function, got error."))(hTexRef, hArray, Flags) + } + pub unsafe fn cuTexRefSetMipmappedArray( + &self, + hTexRef: CUtexref, + hMipmappedArray: CUmipmappedArray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetMipmappedArray + .as_ref() + .expect("Expected function, got error."))(hTexRef, hMipmappedArray, Flags) + } + pub unsafe fn cuTexRefSetAddress_v2( + &self, + ByteOffset: *mut usize, + hTexRef: CUtexref, + dptr: CUdeviceptr, + bytes: usize, + ) -> CUresult { + (self + .cuTexRefSetAddress_v2 + .as_ref() + .expect("Expected function, got error."))(ByteOffset, hTexRef, dptr, bytes) + } + pub unsafe fn cuTexRefSetAddress2D_v3( + &self, + hTexRef: CUtexref, + desc: *const CUDA_ARRAY_DESCRIPTOR, + dptr: CUdeviceptr, + Pitch: usize, + ) -> CUresult { + (self + .cuTexRefSetAddress2D_v3 + .as_ref() + .expect("Expected function, got error."))(hTexRef, desc, dptr, Pitch) + } + pub unsafe fn cuTexRefSetFormat( + &self, + hTexRef: CUtexref, + fmt: CUarray_format, + NumPackedComponents: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuTexRefSetFormat + .as_ref() + .expect("Expected function, got error."))(hTexRef, fmt, NumPackedComponents) + } + pub unsafe fn cuTexRefSetAddressMode( + &self, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + am: CUaddress_mode, + ) -> CUresult { + (self + .cuTexRefSetAddressMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, dim, am) + } + pub unsafe fn cuTexRefSetFilterMode(&self, hTexRef: CUtexref, fm: CUfilter_mode) -> CUresult { + (self + .cuTexRefSetFilterMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, fm) + } + pub unsafe fn cuTexRefSetMipmapFilterMode( + &self, + hTexRef: CUtexref, + fm: CUfilter_mode, + ) -> CUresult { + (self + .cuTexRefSetMipmapFilterMode + .as_ref() + .expect("Expected function, got error."))(hTexRef, fm) + } + pub unsafe fn cuTexRefSetMipmapLevelBias(&self, hTexRef: CUtexref, bias: f32) -> CUresult { + (self + .cuTexRefSetMipmapLevelBias + .as_ref() + .expect("Expected function, got error."))(hTexRef, bias) + } + pub unsafe fn cuTexRefSetMipmapLevelClamp( + &self, + hTexRef: CUtexref, + minMipmapLevelClamp: f32, + maxMipmapLevelClamp: f32, + ) -> CUresult { + (self + .cuTexRefSetMipmapLevelClamp + .as_ref() + .expect("Expected function, got error."))( + hTexRef, + minMipmapLevelClamp, + maxMipmapLevelClamp, + ) + } + pub unsafe fn cuTexRefSetMaxAnisotropy( + &self, + hTexRef: CUtexref, + maxAniso: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetMaxAnisotropy + .as_ref() + .expect("Expected function, got error."))(hTexRef, maxAniso) + } + pub unsafe fn cuTexRefSetBorderColor( + &self, + hTexRef: CUtexref, + pBorderColor: *mut f32, + ) -> CUresult { + (self + .cuTexRefSetBorderColor + .as_ref() + .expect("Expected function, got error."))(hTexRef, pBorderColor) + } + pub unsafe fn cuTexRefSetFlags( + &self, + hTexRef: CUtexref, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuTexRefSetFlags + .as_ref() + .expect("Expected function, got error."))(hTexRef, Flags) + } + pub unsafe fn cuTexRefGetAddress_v2( + &self, + pdptr: *mut CUdeviceptr, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetAddress_v2 + .as_ref() + .expect("Expected function, got error."))(pdptr, hTexRef) + } + pub unsafe fn cuTexRefGetArray(&self, phArray: *mut CUarray, hTexRef: CUtexref) -> CUresult { + (self + .cuTexRefGetArray + .as_ref() + .expect("Expected function, got error."))(phArray, hTexRef) + } + pub unsafe fn cuTexRefGetMipmappedArray( + &self, + phMipmappedArray: *mut CUmipmappedArray, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmappedArray + .as_ref() + .expect("Expected function, got error."))(phMipmappedArray, hTexRef) + } + pub unsafe fn cuTexRefGetAddressMode( + &self, + pam: *mut CUaddress_mode, + hTexRef: CUtexref, + dim: ::core::ffi::c_int, + ) -> CUresult { + (self + .cuTexRefGetAddressMode + .as_ref() + .expect("Expected function, got error."))(pam, hTexRef, dim) + } + pub unsafe fn cuTexRefGetFilterMode( + &self, + pfm: *mut CUfilter_mode, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFilterMode + .as_ref() + .expect("Expected function, got error."))(pfm, hTexRef) + } + pub unsafe fn cuTexRefGetFormat( + &self, + pFormat: *mut CUarray_format, + pNumChannels: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFormat + .as_ref() + .expect("Expected function, got error."))(pFormat, pNumChannels, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapFilterMode( + &self, + pfm: *mut CUfilter_mode, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapFilterMode + .as_ref() + .expect("Expected function, got error."))(pfm, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapLevelBias( + &self, + pbias: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapLevelBias + .as_ref() + .expect("Expected function, got error."))(pbias, hTexRef) + } + pub unsafe fn cuTexRefGetMipmapLevelClamp( + &self, + pminMipmapLevelClamp: *mut f32, + pmaxMipmapLevelClamp: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMipmapLevelClamp + .as_ref() + .expect("Expected function, got error."))( + pminMipmapLevelClamp, + pmaxMipmapLevelClamp, + hTexRef, + ) + } + pub unsafe fn cuTexRefGetMaxAnisotropy( + &self, + pmaxAniso: *mut ::core::ffi::c_int, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetMaxAnisotropy + .as_ref() + .expect("Expected function, got error."))(pmaxAniso, hTexRef) + } + pub unsafe fn cuTexRefGetBorderColor( + &self, + pBorderColor: *mut f32, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetBorderColor + .as_ref() + .expect("Expected function, got error."))(pBorderColor, hTexRef) + } + pub unsafe fn cuTexRefGetFlags( + &self, + pFlags: *mut ::core::ffi::c_uint, + hTexRef: CUtexref, + ) -> CUresult { + (self + .cuTexRefGetFlags + .as_ref() + .expect("Expected function, got error."))(pFlags, hTexRef) + } + pub unsafe fn cuTexRefCreate(&self, pTexRef: *mut CUtexref) -> CUresult { + (self + .cuTexRefCreate + .as_ref() + .expect("Expected function, got error."))(pTexRef) + } + pub unsafe fn cuTexRefDestroy(&self, hTexRef: CUtexref) -> CUresult { + (self + .cuTexRefDestroy + .as_ref() + .expect("Expected function, got error."))(hTexRef) + } + pub unsafe fn cuSurfRefSetArray( + &self, + hSurfRef: CUsurfref, + hArray: CUarray, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuSurfRefSetArray + .as_ref() + .expect("Expected function, got error."))(hSurfRef, hArray, Flags) + } + pub unsafe fn cuSurfRefGetArray(&self, phArray: *mut CUarray, hSurfRef: CUsurfref) -> CUresult { + (self + .cuSurfRefGetArray + .as_ref() + .expect("Expected function, got error."))(phArray, hSurfRef) + } + pub unsafe fn cuTexObjectCreate( + &self, + pTexObject: *mut CUtexObject, + pResDesc: *const CUDA_RESOURCE_DESC, + pTexDesc: *const CUDA_TEXTURE_DESC, + pResViewDesc: *const CUDA_RESOURCE_VIEW_DESC, + ) -> CUresult { + (self + .cuTexObjectCreate + .as_ref() + .expect("Expected function, got error."))( + pTexObject, pResDesc, pTexDesc, pResViewDesc + ) + } + pub unsafe fn cuTexObjectDestroy(&self, texObject: CUtexObject) -> CUresult { + (self + .cuTexObjectDestroy + .as_ref() + .expect("Expected function, got error."))(texObject) + } + pub unsafe fn cuTexObjectGetResourceDesc( + &self, + pResDesc: *mut CUDA_RESOURCE_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetResourceDesc + .as_ref() + .expect("Expected function, got error."))(pResDesc, texObject) + } + pub unsafe fn cuTexObjectGetTextureDesc( + &self, + pTexDesc: *mut CUDA_TEXTURE_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetTextureDesc + .as_ref() + .expect("Expected function, got error."))(pTexDesc, texObject) + } + pub unsafe fn cuTexObjectGetResourceViewDesc( + &self, + pResViewDesc: *mut CUDA_RESOURCE_VIEW_DESC, + texObject: CUtexObject, + ) -> CUresult { + (self + .cuTexObjectGetResourceViewDesc + .as_ref() + .expect("Expected function, got error."))(pResViewDesc, texObject) + } + pub unsafe fn cuSurfObjectCreate( + &self, + pSurfObject: *mut CUsurfObject, + pResDesc: *const CUDA_RESOURCE_DESC, + ) -> CUresult { + (self + .cuSurfObjectCreate + .as_ref() + .expect("Expected function, got error."))(pSurfObject, pResDesc) + } + pub unsafe fn cuSurfObjectDestroy(&self, surfObject: CUsurfObject) -> CUresult { + (self + .cuSurfObjectDestroy + .as_ref() + .expect("Expected function, got error."))(surfObject) + } + pub unsafe fn cuSurfObjectGetResourceDesc( + &self, + pResDesc: *mut CUDA_RESOURCE_DESC, + surfObject: CUsurfObject, + ) -> CUresult { + (self + .cuSurfObjectGetResourceDesc + .as_ref() + .expect("Expected function, got error."))(pResDesc, surfObject) + } + pub unsafe fn cuDeviceCanAccessPeer( + &self, + canAccessPeer: *mut ::core::ffi::c_int, + dev: CUdevice, + peerDev: CUdevice, + ) -> CUresult { + (self + .cuDeviceCanAccessPeer + .as_ref() + .expect("Expected function, got error."))(canAccessPeer, dev, peerDev) + } + pub unsafe fn cuCtxEnablePeerAccess( + &self, + peerContext: CUcontext, + Flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuCtxEnablePeerAccess + .as_ref() + .expect("Expected function, got error."))(peerContext, Flags) + } + pub unsafe fn cuCtxDisablePeerAccess(&self, peerContext: CUcontext) -> CUresult { + (self + .cuCtxDisablePeerAccess + .as_ref() + .expect("Expected function, got error."))(peerContext) + } + pub unsafe fn cuDeviceGetP2PAttribute( + &self, + value: *mut ::core::ffi::c_int, + attrib: CUdevice_P2PAttribute, + srcDevice: CUdevice, + dstDevice: CUdevice, + ) -> CUresult { + (self + .cuDeviceGetP2PAttribute + .as_ref() + .expect("Expected function, got error."))(value, attrib, srcDevice, dstDevice) + } + pub unsafe fn cuGraphicsUnregisterResource(&self, resource: CUgraphicsResource) -> CUresult { + (self + .cuGraphicsUnregisterResource + .as_ref() + .expect("Expected function, got error."))(resource) + } + pub unsafe fn cuGraphicsSubResourceGetMappedArray( + &self, + pArray: *mut CUarray, + resource: CUgraphicsResource, + arrayIndex: ::core::ffi::c_uint, + mipLevel: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphicsSubResourceGetMappedArray + .as_ref() + .expect("Expected function, got error."))(pArray, resource, arrayIndex, mipLevel) + } + pub unsafe fn cuGraphicsResourceGetMappedMipmappedArray( + &self, + pMipmappedArray: *mut CUmipmappedArray, + resource: CUgraphicsResource, + ) -> CUresult { + (self + .cuGraphicsResourceGetMappedMipmappedArray + .as_ref() + .expect("Expected function, got error."))(pMipmappedArray, resource) + } + pub unsafe fn cuGraphicsResourceGetMappedPointer_v2( + &self, + pDevPtr: *mut CUdeviceptr, + pSize: *mut usize, + resource: CUgraphicsResource, + ) -> CUresult { + (self + .cuGraphicsResourceGetMappedPointer_v2 + .as_ref() + .expect("Expected function, got error."))(pDevPtr, pSize, resource) + } + pub unsafe fn cuGraphicsResourceSetMapFlags_v2( + &self, + resource: CUgraphicsResource, + flags: ::core::ffi::c_uint, + ) -> CUresult { + (self + .cuGraphicsResourceSetMapFlags_v2 + .as_ref() + .expect("Expected function, got error."))(resource, flags) + } + pub unsafe fn cuGraphicsMapResources( + &self, + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult { + (self + .cuGraphicsMapResources + .as_ref() + .expect("Expected function, got error."))(count, resources, hStream) + } + pub unsafe fn cuGraphicsUnmapResources( + &self, + count: ::core::ffi::c_uint, + resources: *mut CUgraphicsResource, + hStream: CUstream, + ) -> CUresult { + (self + .cuGraphicsUnmapResources + .as_ref() + .expect("Expected function, got error."))(count, resources, hStream) + } + pub unsafe fn cuGetProcAddress( + &self, + symbol: *const ::core::ffi::c_char, + pfn: *mut *mut ::core::ffi::c_void, + cudaVersion: ::core::ffi::c_int, + flags: cuuint64_t, + ) -> CUresult { + (self + .cuGetProcAddress + .as_ref() + .expect("Expected function, got error."))(symbol, pfn, cudaVersion, flags) + } + pub unsafe fn cuGetExportTable( + &self, + ppExportTable: *mut *const ::core::ffi::c_void, + pExportTableId: *const CUuuid, + ) -> CUresult { + (self + .cuGetExportTable + .as_ref() + .expect("Expected function, got error."))(ppExportTable, pExportTableId) + } + pub unsafe fn cuProfilerInitialize( + &self, + configFile: *const ::core::ffi::c_char, + outputFile: *const ::core::ffi::c_char, + outputMode: CUoutput_mode, + ) -> CUresult { + (self + .cuProfilerInitialize + .as_ref() + .expect("Expected function, got error."))(configFile, outputFile, outputMode) + } + pub unsafe fn cuProfilerStart(&self) -> CUresult { + (self + .cuProfilerStart + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn cuProfilerStop(&self) -> CUresult { + (self + .cuProfilerStop + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/nccl/result.rs b/src/nccl/result.rs index 5cd9e68f..fd069b58 100644 --- a/src/nccl/result.rs +++ b/src/nccl/result.rs @@ -26,6 +26,11 @@ impl sys::ncclResult_t { pub fn result(self) -> Result { match self { sys::ncclResult_t::ncclSuccess => Ok(NcclStatus::Success), + #[cfg(not(any( + feature = "cuda-11050", + feature = "cuda-11060", + feature = "cuda-11070" + )))] sys::ncclResult_t::ncclInProgress => Ok(NcclStatus::InProgress), sys::ncclResult_t::ncclNumResults => Ok(NcclStatus::NumResults), _ => Err(NcclError(self)), @@ -36,6 +41,7 @@ impl sys::ncclResult_t { /// See [cuda docs](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/api/comms.html?c.ncclCommFinalize) /// # Safety /// User is in charge of sending valid pointers. +#[cfg(not(any(feature = "cuda-11050", feature = "cuda-11060", feature = "cuda-11070")))] pub unsafe fn comm_finalize(comm: sys::ncclComm_t) -> Result { lib().ncclCommFinalize(comm).result() } @@ -75,6 +81,7 @@ pub fn get_uniqueid() -> Result { /// See [cuda docs](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/api/comms.html?ncclcomminitrankconfig) /// # Safety /// User is in charge of sending valid pointers. +#[cfg(not(any(feature = "cuda-11050", feature = "cuda-11060", feature = "cuda-11070")))] pub unsafe fn comm_init_rank_config( comm: *mut sys::ncclComm_t, nranks: ::core::ffi::c_int, diff --git a/src/nccl/sys/mod.rs b/src/nccl/sys/mod.rs index 88529cbd..da01d88a 100644 --- a/src/nccl/sys/mod.rs +++ b/src/nccl/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/nccl/sys/sys_11050.rs b/src/nccl/sys/sys_11050.rs new file mode 100644 index 00000000..c3f247de --- /dev/null +++ b/src/nccl/sys/sys_11050.rs @@ -0,0 +1,600 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ncclComm { + _unused: [u8; 0], +} +pub type ncclComm_t = *mut ncclComm; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct ncclUniqueId { + pub internal: [::core::ffi::c_char; 128usize], +} +#[test] +fn bindgen_test_layout_ncclUniqueId() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(ncclUniqueId)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(ncclUniqueId)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ncclUniqueId), + "::", + stringify!(internal) + ) + ); +} +impl Default for ncclUniqueId { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclResult_t { + ncclSuccess = 0, + ncclUnhandledCudaError = 1, + ncclSystemError = 2, + ncclInternalError = 3, + ncclInvalidArgument = 4, + ncclInvalidUsage = 5, + ncclNumResults = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclRedOp_dummy_t { + ncclNumOps_dummy = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclRedOp_t { + ncclSum = 0, + ncclProd = 1, + ncclMax = 2, + ncclMin = 3, + ncclAvg = 4, + ncclNumOps = 5, + ncclMaxRedOp = 2147483647, +} +impl ncclDataType_t { + pub const ncclChar: ncclDataType_t = ncclDataType_t::ncclInt8; +} +impl ncclDataType_t { + pub const ncclInt: ncclDataType_t = ncclDataType_t::ncclInt32; +} +impl ncclDataType_t { + pub const ncclHalf: ncclDataType_t = ncclDataType_t::ncclFloat16; +} +impl ncclDataType_t { + pub const ncclFloat: ncclDataType_t = ncclDataType_t::ncclFloat32; +} +impl ncclDataType_t { + pub const ncclDouble: ncclDataType_t = ncclDataType_t::ncclFloat64; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclDataType_t { + ncclInt8 = 0, + ncclUint8 = 1, + ncclInt32 = 2, + ncclUint32 = 3, + ncclInt64 = 4, + ncclUint64 = 5, + ncclFloat16 = 6, + ncclFloat32 = 7, + ncclFloat64 = 8, + ncclBfloat16 = 9, + ncclNumTypes = 10, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclScalarResidence_t { + ncclScalarDevice = 0, + ncclScalarHostImmediate = 1, +} +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub ncclGetVersion: Result< + unsafe extern "C" fn(version: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclGetUniqueId: Result< + unsafe extern "C" fn(uniqueId: *mut ncclUniqueId) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommInitRank: Result< + unsafe extern "C" fn( + comm: *mut ncclComm_t, + nranks: ::core::ffi::c_int, + commId: ncclUniqueId, + rank: ::core::ffi::c_int, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommInitAll: Result< + unsafe extern "C" fn( + comm: *mut ncclComm_t, + ndev: ::core::ffi::c_int, + devlist: *const ::core::ffi::c_int, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommDestroy: + Result ncclResult_t, ::libloading::Error>, + pub ncclCommAbort: + Result ncclResult_t, ::libloading::Error>, + pub ncclGetErrorString: Result< + unsafe extern "C" fn(result: ncclResult_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub ncclCommGetAsyncError: Result< + unsafe extern "C" fn(comm: ncclComm_t, asyncError: *mut ncclResult_t) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommCount: Result< + unsafe extern "C" fn(comm: ncclComm_t, count: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommCuDevice: Result< + unsafe extern "C" fn(comm: ncclComm_t, device: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommUserRank: Result< + unsafe extern "C" fn(comm: ncclComm_t, rank: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRedOpCreatePreMulSum: Result< + unsafe extern "C" fn( + op: *mut ncclRedOp_t, + scalar: *mut ::core::ffi::c_void, + datatype: ncclDataType_t, + residence: ncclScalarResidence_t, + comm: ncclComm_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRedOpDestroy: Result< + unsafe extern "C" fn(op: ncclRedOp_t, comm: ncclComm_t) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclReduce: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclBcast: Result< + unsafe extern "C" fn( + buff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclBroadcast: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclAllReduce: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclReduceScatter: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + recvcount: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclAllGather: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + sendcount: usize, + datatype: ncclDataType_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclSend: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRecv: Result< + unsafe extern "C" fn( + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclGroupStart: Result ncclResult_t, ::libloading::Error>, + pub ncclGroupEnd: Result ncclResult_t, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let ncclGetVersion = __library.get(b"ncclGetVersion\0").map(|sym| *sym); + let ncclGetUniqueId = __library.get(b"ncclGetUniqueId\0").map(|sym| *sym); + let ncclCommInitRank = __library.get(b"ncclCommInitRank\0").map(|sym| *sym); + let ncclCommInitAll = __library.get(b"ncclCommInitAll\0").map(|sym| *sym); + let ncclCommDestroy = __library.get(b"ncclCommDestroy\0").map(|sym| *sym); + let ncclCommAbort = __library.get(b"ncclCommAbort\0").map(|sym| *sym); + let ncclGetErrorString = __library.get(b"ncclGetErrorString\0").map(|sym| *sym); + let ncclCommGetAsyncError = __library.get(b"ncclCommGetAsyncError\0").map(|sym| *sym); + let ncclCommCount = __library.get(b"ncclCommCount\0").map(|sym| *sym); + let ncclCommCuDevice = __library.get(b"ncclCommCuDevice\0").map(|sym| *sym); + let ncclCommUserRank = __library.get(b"ncclCommUserRank\0").map(|sym| *sym); + let ncclRedOpCreatePreMulSum = __library.get(b"ncclRedOpCreatePreMulSum\0").map(|sym| *sym); + let ncclRedOpDestroy = __library.get(b"ncclRedOpDestroy\0").map(|sym| *sym); + let ncclReduce = __library.get(b"ncclReduce\0").map(|sym| *sym); + let ncclBcast = __library.get(b"ncclBcast\0").map(|sym| *sym); + let ncclBroadcast = __library.get(b"ncclBroadcast\0").map(|sym| *sym); + let ncclAllReduce = __library.get(b"ncclAllReduce\0").map(|sym| *sym); + let ncclReduceScatter = __library.get(b"ncclReduceScatter\0").map(|sym| *sym); + let ncclAllGather = __library.get(b"ncclAllGather\0").map(|sym| *sym); + let ncclSend = __library.get(b"ncclSend\0").map(|sym| *sym); + let ncclRecv = __library.get(b"ncclRecv\0").map(|sym| *sym); + let ncclGroupStart = __library.get(b"ncclGroupStart\0").map(|sym| *sym); + let ncclGroupEnd = __library.get(b"ncclGroupEnd\0").map(|sym| *sym); + Ok(Lib { + __library, + ncclGetVersion, + ncclGetUniqueId, + ncclCommInitRank, + ncclCommInitAll, + ncclCommDestroy, + ncclCommAbort, + ncclGetErrorString, + ncclCommGetAsyncError, + ncclCommCount, + ncclCommCuDevice, + ncclCommUserRank, + ncclRedOpCreatePreMulSum, + ncclRedOpDestroy, + ncclReduce, + ncclBcast, + ncclBroadcast, + ncclAllReduce, + ncclReduceScatter, + ncclAllGather, + ncclSend, + ncclRecv, + ncclGroupStart, + ncclGroupEnd, + }) + } + pub unsafe fn ncclGetVersion(&self, version: *mut ::core::ffi::c_int) -> ncclResult_t { + (self + .ncclGetVersion + .as_ref() + .expect("Expected function, got error."))(version) + } + pub unsafe fn ncclGetUniqueId(&self, uniqueId: *mut ncclUniqueId) -> ncclResult_t { + (self + .ncclGetUniqueId + .as_ref() + .expect("Expected function, got error."))(uniqueId) + } + pub unsafe fn ncclCommInitRank( + &self, + comm: *mut ncclComm_t, + nranks: ::core::ffi::c_int, + commId: ncclUniqueId, + rank: ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommInitRank + .as_ref() + .expect("Expected function, got error."))(comm, nranks, commId, rank) + } + pub unsafe fn ncclCommInitAll( + &self, + comm: *mut ncclComm_t, + ndev: ::core::ffi::c_int, + devlist: *const ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommInitAll + .as_ref() + .expect("Expected function, got error."))(comm, ndev, devlist) + } + pub unsafe fn ncclCommDestroy(&self, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclCommDestroy + .as_ref() + .expect("Expected function, got error."))(comm) + } + pub unsafe fn ncclCommAbort(&self, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclCommAbort + .as_ref() + .expect("Expected function, got error."))(comm) + } + pub unsafe fn ncclGetErrorString(&self, result: ncclResult_t) -> *const ::core::ffi::c_char { + (self + .ncclGetErrorString + .as_ref() + .expect("Expected function, got error."))(result) + } + pub unsafe fn ncclCommGetAsyncError( + &self, + comm: ncclComm_t, + asyncError: *mut ncclResult_t, + ) -> ncclResult_t { + (self + .ncclCommGetAsyncError + .as_ref() + .expect("Expected function, got error."))(comm, asyncError) + } + pub unsafe fn ncclCommCount( + &self, + comm: ncclComm_t, + count: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommCount + .as_ref() + .expect("Expected function, got error."))(comm, count) + } + pub unsafe fn ncclCommCuDevice( + &self, + comm: ncclComm_t, + device: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommCuDevice + .as_ref() + .expect("Expected function, got error."))(comm, device) + } + pub unsafe fn ncclCommUserRank( + &self, + comm: ncclComm_t, + rank: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommUserRank + .as_ref() + .expect("Expected function, got error."))(comm, rank) + } + pub unsafe fn ncclRedOpCreatePreMulSum( + &self, + op: *mut ncclRedOp_t, + scalar: *mut ::core::ffi::c_void, + datatype: ncclDataType_t, + residence: ncclScalarResidence_t, + comm: ncclComm_t, + ) -> ncclResult_t { + (self + .ncclRedOpCreatePreMulSum + .as_ref() + .expect("Expected function, got error."))(op, scalar, datatype, residence, comm) + } + pub unsafe fn ncclRedOpDestroy(&self, op: ncclRedOp_t, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclRedOpDestroy + .as_ref() + .expect("Expected function, got error."))(op, comm) + } + pub unsafe fn ncclReduce( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclReduce + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, op, root, comm, stream, + ) + } + pub unsafe fn ncclBcast( + &self, + buff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclBcast + .as_ref() + .expect("Expected function, got error."))( + buff, count, datatype, root, comm, stream + ) + } + pub unsafe fn ncclBroadcast( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclBroadcast + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, root, comm, stream, + ) + } + pub unsafe fn ncclAllReduce( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclAllReduce + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, op, comm, stream, + ) + } + pub unsafe fn ncclReduceScatter( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + recvcount: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclReduceScatter + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, recvcount, datatype, op, comm, stream, + ) + } + pub unsafe fn ncclAllGather( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + sendcount: usize, + datatype: ncclDataType_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclAllGather + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, sendcount, datatype, comm, stream, + ) + } + pub unsafe fn ncclSend( + &self, + sendbuff: *const ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclSend + .as_ref() + .expect("Expected function, got error."))( + sendbuff, count, datatype, peer, comm, stream + ) + } + pub unsafe fn ncclRecv( + &self, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclRecv + .as_ref() + .expect("Expected function, got error."))( + recvbuff, count, datatype, peer, comm, stream + ) + } + pub unsafe fn ncclGroupStart(&self) -> ncclResult_t { + (self + .ncclGroupStart + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn ncclGroupEnd(&self) -> ncclResult_t { + (self + .ncclGroupEnd + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/nccl/sys/sys_11060.rs b/src/nccl/sys/sys_11060.rs new file mode 100644 index 00000000..eec4957b --- /dev/null +++ b/src/nccl/sys/sys_11060.rs @@ -0,0 +1,600 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ncclComm { + _unused: [u8; 0], +} +pub type ncclComm_t = *mut ncclComm; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub struct ncclUniqueId { + pub internal: [::core::ffi::c_char; 128usize], +} +#[test] +fn bindgen_test_layout_ncclUniqueId() { + const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(ncclUniqueId)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(ncclUniqueId)) + ); + assert_eq!( + unsafe { ::core::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ncclUniqueId), + "::", + stringify!(internal) + ) + ); +} +impl Default for ncclUniqueId { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclResult_t { + ncclSuccess = 0, + ncclUnhandledCudaError = 1, + ncclSystemError = 2, + ncclInternalError = 3, + ncclInvalidArgument = 4, + ncclInvalidUsage = 5, + ncclNumResults = 6, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclRedOp_dummy_t { + ncclNumOps_dummy = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclRedOp_t { + ncclSum = 0, + ncclProd = 1, + ncclMax = 2, + ncclMin = 3, + ncclAvg = 4, + ncclNumOps = 5, + ncclMaxRedOp = 2147483647, +} +impl ncclDataType_t { + pub const ncclChar: ncclDataType_t = ncclDataType_t::ncclInt8; +} +impl ncclDataType_t { + pub const ncclInt: ncclDataType_t = ncclDataType_t::ncclInt32; +} +impl ncclDataType_t { + pub const ncclHalf: ncclDataType_t = ncclDataType_t::ncclFloat16; +} +impl ncclDataType_t { + pub const ncclFloat: ncclDataType_t = ncclDataType_t::ncclFloat32; +} +impl ncclDataType_t { + pub const ncclDouble: ncclDataType_t = ncclDataType_t::ncclFloat64; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclDataType_t { + ncclInt8 = 0, + ncclUint8 = 1, + ncclInt32 = 2, + ncclUint32 = 3, + ncclInt64 = 4, + ncclUint64 = 5, + ncclFloat16 = 6, + ncclFloat32 = 7, + ncclFloat64 = 8, + ncclBfloat16 = 9, + ncclNumTypes = 10, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum ncclScalarResidence_t { + ncclScalarDevice = 0, + ncclScalarHostImmediate = 1, +} +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub ncclGetVersion: Result< + unsafe extern "C" fn(version: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclGetUniqueId: Result< + unsafe extern "C" fn(uniqueId: *mut ncclUniqueId) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommInitRank: Result< + unsafe extern "C" fn( + comm: *mut ncclComm_t, + nranks: ::core::ffi::c_int, + commId: ncclUniqueId, + rank: ::core::ffi::c_int, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommInitAll: Result< + unsafe extern "C" fn( + comm: *mut ncclComm_t, + ndev: ::core::ffi::c_int, + devlist: *const ::core::ffi::c_int, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommDestroy: + Result ncclResult_t, ::libloading::Error>, + pub ncclCommAbort: + Result ncclResult_t, ::libloading::Error>, + pub ncclGetErrorString: Result< + unsafe extern "C" fn(result: ncclResult_t) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub ncclCommGetAsyncError: Result< + unsafe extern "C" fn(comm: ncclComm_t, asyncError: *mut ncclResult_t) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommCount: Result< + unsafe extern "C" fn(comm: ncclComm_t, count: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommCuDevice: Result< + unsafe extern "C" fn(comm: ncclComm_t, device: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclCommUserRank: Result< + unsafe extern "C" fn(comm: ncclComm_t, rank: *mut ::core::ffi::c_int) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRedOpCreatePreMulSum: Result< + unsafe extern "C" fn( + op: *mut ncclRedOp_t, + scalar: *mut ::core::ffi::c_void, + datatype: ncclDataType_t, + residence: ncclScalarResidence_t, + comm: ncclComm_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRedOpDestroy: Result< + unsafe extern "C" fn(op: ncclRedOp_t, comm: ncclComm_t) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclReduce: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclBcast: Result< + unsafe extern "C" fn( + buff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclBroadcast: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclAllReduce: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclReduceScatter: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + recvcount: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclAllGather: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + sendcount: usize, + datatype: ncclDataType_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclSend: Result< + unsafe extern "C" fn( + sendbuff: *const ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclRecv: Result< + unsafe extern "C" fn( + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t, + ::libloading::Error, + >, + pub ncclGroupStart: Result ncclResult_t, ::libloading::Error>, + pub ncclGroupEnd: Result ncclResult_t, ::libloading::Error>, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let ncclGetVersion = __library.get(b"ncclGetVersion\0").map(|sym| *sym); + let ncclGetUniqueId = __library.get(b"ncclGetUniqueId\0").map(|sym| *sym); + let ncclCommInitRank = __library.get(b"ncclCommInitRank\0").map(|sym| *sym); + let ncclCommInitAll = __library.get(b"ncclCommInitAll\0").map(|sym| *sym); + let ncclCommDestroy = __library.get(b"ncclCommDestroy\0").map(|sym| *sym); + let ncclCommAbort = __library.get(b"ncclCommAbort\0").map(|sym| *sym); + let ncclGetErrorString = __library.get(b"ncclGetErrorString\0").map(|sym| *sym); + let ncclCommGetAsyncError = __library.get(b"ncclCommGetAsyncError\0").map(|sym| *sym); + let ncclCommCount = __library.get(b"ncclCommCount\0").map(|sym| *sym); + let ncclCommCuDevice = __library.get(b"ncclCommCuDevice\0").map(|sym| *sym); + let ncclCommUserRank = __library.get(b"ncclCommUserRank\0").map(|sym| *sym); + let ncclRedOpCreatePreMulSum = __library.get(b"ncclRedOpCreatePreMulSum\0").map(|sym| *sym); + let ncclRedOpDestroy = __library.get(b"ncclRedOpDestroy\0").map(|sym| *sym); + let ncclReduce = __library.get(b"ncclReduce\0").map(|sym| *sym); + let ncclBcast = __library.get(b"ncclBcast\0").map(|sym| *sym); + let ncclBroadcast = __library.get(b"ncclBroadcast\0").map(|sym| *sym); + let ncclAllReduce = __library.get(b"ncclAllReduce\0").map(|sym| *sym); + let ncclReduceScatter = __library.get(b"ncclReduceScatter\0").map(|sym| *sym); + let ncclAllGather = __library.get(b"ncclAllGather\0").map(|sym| *sym); + let ncclSend = __library.get(b"ncclSend\0").map(|sym| *sym); + let ncclRecv = __library.get(b"ncclRecv\0").map(|sym| *sym); + let ncclGroupStart = __library.get(b"ncclGroupStart\0").map(|sym| *sym); + let ncclGroupEnd = __library.get(b"ncclGroupEnd\0").map(|sym| *sym); + Ok(Lib { + __library, + ncclGetVersion, + ncclGetUniqueId, + ncclCommInitRank, + ncclCommInitAll, + ncclCommDestroy, + ncclCommAbort, + ncclGetErrorString, + ncclCommGetAsyncError, + ncclCommCount, + ncclCommCuDevice, + ncclCommUserRank, + ncclRedOpCreatePreMulSum, + ncclRedOpDestroy, + ncclReduce, + ncclBcast, + ncclBroadcast, + ncclAllReduce, + ncclReduceScatter, + ncclAllGather, + ncclSend, + ncclRecv, + ncclGroupStart, + ncclGroupEnd, + }) + } + pub unsafe fn ncclGetVersion(&self, version: *mut ::core::ffi::c_int) -> ncclResult_t { + (self + .ncclGetVersion + .as_ref() + .expect("Expected function, got error."))(version) + } + pub unsafe fn ncclGetUniqueId(&self, uniqueId: *mut ncclUniqueId) -> ncclResult_t { + (self + .ncclGetUniqueId + .as_ref() + .expect("Expected function, got error."))(uniqueId) + } + pub unsafe fn ncclCommInitRank( + &self, + comm: *mut ncclComm_t, + nranks: ::core::ffi::c_int, + commId: ncclUniqueId, + rank: ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommInitRank + .as_ref() + .expect("Expected function, got error."))(comm, nranks, commId, rank) + } + pub unsafe fn ncclCommInitAll( + &self, + comm: *mut ncclComm_t, + ndev: ::core::ffi::c_int, + devlist: *const ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommInitAll + .as_ref() + .expect("Expected function, got error."))(comm, ndev, devlist) + } + pub unsafe fn ncclCommDestroy(&self, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclCommDestroy + .as_ref() + .expect("Expected function, got error."))(comm) + } + pub unsafe fn ncclCommAbort(&self, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclCommAbort + .as_ref() + .expect("Expected function, got error."))(comm) + } + pub unsafe fn ncclGetErrorString(&self, result: ncclResult_t) -> *const ::core::ffi::c_char { + (self + .ncclGetErrorString + .as_ref() + .expect("Expected function, got error."))(result) + } + pub unsafe fn ncclCommGetAsyncError( + &self, + comm: ncclComm_t, + asyncError: *mut ncclResult_t, + ) -> ncclResult_t { + (self + .ncclCommGetAsyncError + .as_ref() + .expect("Expected function, got error."))(comm, asyncError) + } + pub unsafe fn ncclCommCount( + &self, + comm: ncclComm_t, + count: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommCount + .as_ref() + .expect("Expected function, got error."))(comm, count) + } + pub unsafe fn ncclCommCuDevice( + &self, + comm: ncclComm_t, + device: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommCuDevice + .as_ref() + .expect("Expected function, got error."))(comm, device) + } + pub unsafe fn ncclCommUserRank( + &self, + comm: ncclComm_t, + rank: *mut ::core::ffi::c_int, + ) -> ncclResult_t { + (self + .ncclCommUserRank + .as_ref() + .expect("Expected function, got error."))(comm, rank) + } + pub unsafe fn ncclRedOpCreatePreMulSum( + &self, + op: *mut ncclRedOp_t, + scalar: *mut ::core::ffi::c_void, + datatype: ncclDataType_t, + residence: ncclScalarResidence_t, + comm: ncclComm_t, + ) -> ncclResult_t { + (self + .ncclRedOpCreatePreMulSum + .as_ref() + .expect("Expected function, got error."))(op, scalar, datatype, residence, comm) + } + pub unsafe fn ncclRedOpDestroy(&self, op: ncclRedOp_t, comm: ncclComm_t) -> ncclResult_t { + (self + .ncclRedOpDestroy + .as_ref() + .expect("Expected function, got error."))(op, comm) + } + pub unsafe fn ncclReduce( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclReduce + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, op, root, comm, stream, + ) + } + pub unsafe fn ncclBcast( + &self, + buff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclBcast + .as_ref() + .expect("Expected function, got error."))( + buff, count, datatype, root, comm, stream + ) + } + pub unsafe fn ncclBroadcast( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + root: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclBroadcast + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, root, comm, stream, + ) + } + pub unsafe fn ncclAllReduce( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclAllReduce + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, count, datatype, op, comm, stream, + ) + } + pub unsafe fn ncclReduceScatter( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + recvcount: usize, + datatype: ncclDataType_t, + op: ncclRedOp_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclReduceScatter + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, recvcount, datatype, op, comm, stream, + ) + } + pub unsafe fn ncclAllGather( + &self, + sendbuff: *const ::core::ffi::c_void, + recvbuff: *mut ::core::ffi::c_void, + sendcount: usize, + datatype: ncclDataType_t, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclAllGather + .as_ref() + .expect("Expected function, got error."))( + sendbuff, recvbuff, sendcount, datatype, comm, stream, + ) + } + pub unsafe fn ncclSend( + &self, + sendbuff: *const ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclSend + .as_ref() + .expect("Expected function, got error."))( + sendbuff, count, datatype, peer, comm, stream + ) + } + pub unsafe fn ncclRecv( + &self, + recvbuff: *mut ::core::ffi::c_void, + count: usize, + datatype: ncclDataType_t, + peer: ::core::ffi::c_int, + comm: ncclComm_t, + stream: cudaStream_t, + ) -> ncclResult_t { + (self + .ncclRecv + .as_ref() + .expect("Expected function, got error."))( + recvbuff, count, datatype, peer, comm, stream + ) + } + pub unsafe fn ncclGroupStart(&self) -> ncclResult_t { + (self + .ncclGroupStart + .as_ref() + .expect("Expected function, got error."))() + } + pub unsafe fn ncclGroupEnd(&self) -> ncclResult_t { + (self + .ncclGroupEnd + .as_ref() + .expect("Expected function, got error."))() + } +} diff --git a/src/nvrtc/sys/mod.rs b/src/nvrtc/sys/mod.rs index 0f6d7ad4..ff29ea63 100644 --- a/src/nvrtc/sys/mod.rs +++ b/src/nvrtc/sys/mod.rs @@ -1,3 +1,13 @@ +#[cfg(feature = "cuda-11050")] +mod sys_11050; +#[cfg(feature = "cuda-11050")] +pub use sys_11050::*; + +#[cfg(feature = "cuda-11060")] +mod sys_11060; +#[cfg(feature = "cuda-11060")] +pub use sys_11060::*; + #[cfg(feature = "cuda-11070")] mod sys_11070; #[cfg(feature = "cuda-11070")] diff --git a/src/nvrtc/sys/sys_11050.rs b/src/nvrtc/sys/sys_11050.rs new file mode 100644 index 00000000..4ea56506 --- /dev/null +++ b/src/nvrtc/sys/sys_11050.rs @@ -0,0 +1,343 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11050; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum nvrtcResult { + NVRTC_SUCCESS = 0, + NVRTC_ERROR_OUT_OF_MEMORY = 1, + NVRTC_ERROR_PROGRAM_CREATION_FAILURE = 2, + NVRTC_ERROR_INVALID_INPUT = 3, + NVRTC_ERROR_INVALID_PROGRAM = 4, + NVRTC_ERROR_INVALID_OPTION = 5, + NVRTC_ERROR_COMPILATION = 6, + NVRTC_ERROR_BUILTIN_OPERATION_FAILURE = 7, + NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION = 8, + NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = 9, + NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID = 10, + NVRTC_ERROR_INTERNAL_ERROR = 11, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _nvrtcProgram { + _unused: [u8; 0], +} +pub type nvrtcProgram = *mut _nvrtcProgram; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub nvrtcGetErrorString: Result< + unsafe extern "C" fn(result: nvrtcResult) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub nvrtcVersion: Result< + unsafe extern "C" fn( + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNumSupportedArchs: Result< + unsafe extern "C" fn(numArchs: *mut ::core::ffi::c_int) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetSupportedArchs: Result< + unsafe extern "C" fn(supportedArchs: *mut ::core::ffi::c_int) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcCreateProgram: Result< + unsafe extern "C" fn( + prog: *mut nvrtcProgram, + src: *const ::core::ffi::c_char, + name: *const ::core::ffi::c_char, + numHeaders: ::core::ffi::c_int, + headers: *const *const ::core::ffi::c_char, + includeNames: *const *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcDestroyProgram: + Result nvrtcResult, ::libloading::Error>, + pub nvrtcCompileProgram: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + numOptions: ::core::ffi::c_int, + options: *const *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetPTXSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, ptxSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetPTX: Result< + unsafe extern "C" fn(prog: nvrtcProgram, ptx: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetCUBINSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, cubinSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetCUBIN: Result< + unsafe extern "C" fn(prog: nvrtcProgram, cubin: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNVVMSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, nvvmSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNVVM: Result< + unsafe extern "C" fn(prog: nvrtcProgram, nvvm: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetProgramLogSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, logSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetProgramLog: Result< + unsafe extern "C" fn(prog: nvrtcProgram, log: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcAddNameExpression: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetLoweredName: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + lowered_name: *mut *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let nvrtcGetErrorString = __library.get(b"nvrtcGetErrorString\0").map(|sym| *sym); + let nvrtcVersion = __library.get(b"nvrtcVersion\0").map(|sym| *sym); + let nvrtcGetNumSupportedArchs = __library + .get(b"nvrtcGetNumSupportedArchs\0") + .map(|sym| *sym); + let nvrtcGetSupportedArchs = __library.get(b"nvrtcGetSupportedArchs\0").map(|sym| *sym); + let nvrtcCreateProgram = __library.get(b"nvrtcCreateProgram\0").map(|sym| *sym); + let nvrtcDestroyProgram = __library.get(b"nvrtcDestroyProgram\0").map(|sym| *sym); + let nvrtcCompileProgram = __library.get(b"nvrtcCompileProgram\0").map(|sym| *sym); + let nvrtcGetPTXSize = __library.get(b"nvrtcGetPTXSize\0").map(|sym| *sym); + let nvrtcGetPTX = __library.get(b"nvrtcGetPTX\0").map(|sym| *sym); + let nvrtcGetCUBINSize = __library.get(b"nvrtcGetCUBINSize\0").map(|sym| *sym); + let nvrtcGetCUBIN = __library.get(b"nvrtcGetCUBIN\0").map(|sym| *sym); + let nvrtcGetNVVMSize = __library.get(b"nvrtcGetNVVMSize\0").map(|sym| *sym); + let nvrtcGetNVVM = __library.get(b"nvrtcGetNVVM\0").map(|sym| *sym); + let nvrtcGetProgramLogSize = __library.get(b"nvrtcGetProgramLogSize\0").map(|sym| *sym); + let nvrtcGetProgramLog = __library.get(b"nvrtcGetProgramLog\0").map(|sym| *sym); + let nvrtcAddNameExpression = __library.get(b"nvrtcAddNameExpression\0").map(|sym| *sym); + let nvrtcGetLoweredName = __library.get(b"nvrtcGetLoweredName\0").map(|sym| *sym); + Ok(Lib { + __library, + nvrtcGetErrorString, + nvrtcVersion, + nvrtcGetNumSupportedArchs, + nvrtcGetSupportedArchs, + nvrtcCreateProgram, + nvrtcDestroyProgram, + nvrtcCompileProgram, + nvrtcGetPTXSize, + nvrtcGetPTX, + nvrtcGetCUBINSize, + nvrtcGetCUBIN, + nvrtcGetNVVMSize, + nvrtcGetNVVM, + nvrtcGetProgramLogSize, + nvrtcGetProgramLog, + nvrtcAddNameExpression, + nvrtcGetLoweredName, + }) + } + pub unsafe fn nvrtcGetErrorString(&self, result: nvrtcResult) -> *const ::core::ffi::c_char { + (self + .nvrtcGetErrorString + .as_ref() + .expect("Expected function, got error."))(result) + } + pub unsafe fn nvrtcVersion( + &self, + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcVersion + .as_ref() + .expect("Expected function, got error."))(major, minor) + } + pub unsafe fn nvrtcGetNumSupportedArchs( + &self, + numArchs: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcGetNumSupportedArchs + .as_ref() + .expect("Expected function, got error."))(numArchs) + } + pub unsafe fn nvrtcGetSupportedArchs( + &self, + supportedArchs: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcGetSupportedArchs + .as_ref() + .expect("Expected function, got error."))(supportedArchs) + } + pub unsafe fn nvrtcCreateProgram( + &self, + prog: *mut nvrtcProgram, + src: *const ::core::ffi::c_char, + name: *const ::core::ffi::c_char, + numHeaders: ::core::ffi::c_int, + headers: *const *const ::core::ffi::c_char, + includeNames: *const *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcCreateProgram + .as_ref() + .expect("Expected function, got error."))( + prog, + src, + name, + numHeaders, + headers, + includeNames, + ) + } + pub unsafe fn nvrtcDestroyProgram(&self, prog: *mut nvrtcProgram) -> nvrtcResult { + (self + .nvrtcDestroyProgram + .as_ref() + .expect("Expected function, got error."))(prog) + } + pub unsafe fn nvrtcCompileProgram( + &self, + prog: nvrtcProgram, + numOptions: ::core::ffi::c_int, + options: *const *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcCompileProgram + .as_ref() + .expect("Expected function, got error."))(prog, numOptions, options) + } + pub unsafe fn nvrtcGetPTXSize( + &self, + prog: nvrtcProgram, + ptxSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetPTXSize + .as_ref() + .expect("Expected function, got error."))(prog, ptxSizeRet) + } + pub unsafe fn nvrtcGetPTX( + &self, + prog: nvrtcProgram, + ptx: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetPTX + .as_ref() + .expect("Expected function, got error."))(prog, ptx) + } + pub unsafe fn nvrtcGetCUBINSize( + &self, + prog: nvrtcProgram, + cubinSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetCUBINSize + .as_ref() + .expect("Expected function, got error."))(prog, cubinSizeRet) + } + pub unsafe fn nvrtcGetCUBIN( + &self, + prog: nvrtcProgram, + cubin: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetCUBIN + .as_ref() + .expect("Expected function, got error."))(prog, cubin) + } + pub unsafe fn nvrtcGetNVVMSize( + &self, + prog: nvrtcProgram, + nvvmSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetNVVMSize + .as_ref() + .expect("Expected function, got error."))(prog, nvvmSizeRet) + } + pub unsafe fn nvrtcGetNVVM( + &self, + prog: nvrtcProgram, + nvvm: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetNVVM + .as_ref() + .expect("Expected function, got error."))(prog, nvvm) + } + pub unsafe fn nvrtcGetProgramLogSize( + &self, + prog: nvrtcProgram, + logSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetProgramLogSize + .as_ref() + .expect("Expected function, got error."))(prog, logSizeRet) + } + pub unsafe fn nvrtcGetProgramLog( + &self, + prog: nvrtcProgram, + log: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetProgramLog + .as_ref() + .expect("Expected function, got error."))(prog, log) + } + pub unsafe fn nvrtcAddNameExpression( + &self, + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcAddNameExpression + .as_ref() + .expect("Expected function, got error."))(prog, name_expression) + } + pub unsafe fn nvrtcGetLoweredName( + &self, + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + lowered_name: *mut *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetLoweredName + .as_ref() + .expect("Expected function, got error."))(prog, name_expression, lowered_name) + } +} diff --git a/src/nvrtc/sys/sys_11060.rs b/src/nvrtc/sys/sys_11060.rs new file mode 100644 index 00000000..8349a0f1 --- /dev/null +++ b/src/nvrtc/sys/sys_11060.rs @@ -0,0 +1,343 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +pub const CUDA_VERSION: u32 = 11060; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum nvrtcResult { + NVRTC_SUCCESS = 0, + NVRTC_ERROR_OUT_OF_MEMORY = 1, + NVRTC_ERROR_PROGRAM_CREATION_FAILURE = 2, + NVRTC_ERROR_INVALID_INPUT = 3, + NVRTC_ERROR_INVALID_PROGRAM = 4, + NVRTC_ERROR_INVALID_OPTION = 5, + NVRTC_ERROR_COMPILATION = 6, + NVRTC_ERROR_BUILTIN_OPERATION_FAILURE = 7, + NVRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION = 8, + NVRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = 9, + NVRTC_ERROR_NAME_EXPRESSION_NOT_VALID = 10, + NVRTC_ERROR_INTERNAL_ERROR = 11, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _nvrtcProgram { + _unused: [u8; 0], +} +pub type nvrtcProgram = *mut _nvrtcProgram; +extern crate libloading; +pub struct Lib { + __library: ::libloading::Library, + pub nvrtcGetErrorString: Result< + unsafe extern "C" fn(result: nvrtcResult) -> *const ::core::ffi::c_char, + ::libloading::Error, + >, + pub nvrtcVersion: Result< + unsafe extern "C" fn( + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNumSupportedArchs: Result< + unsafe extern "C" fn(numArchs: *mut ::core::ffi::c_int) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetSupportedArchs: Result< + unsafe extern "C" fn(supportedArchs: *mut ::core::ffi::c_int) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcCreateProgram: Result< + unsafe extern "C" fn( + prog: *mut nvrtcProgram, + src: *const ::core::ffi::c_char, + name: *const ::core::ffi::c_char, + numHeaders: ::core::ffi::c_int, + headers: *const *const ::core::ffi::c_char, + includeNames: *const *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcDestroyProgram: + Result nvrtcResult, ::libloading::Error>, + pub nvrtcCompileProgram: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + numOptions: ::core::ffi::c_int, + options: *const *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetPTXSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, ptxSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetPTX: Result< + unsafe extern "C" fn(prog: nvrtcProgram, ptx: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetCUBINSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, cubinSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetCUBIN: Result< + unsafe extern "C" fn(prog: nvrtcProgram, cubin: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNVVMSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, nvvmSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetNVVM: Result< + unsafe extern "C" fn(prog: nvrtcProgram, nvvm: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetProgramLogSize: Result< + unsafe extern "C" fn(prog: nvrtcProgram, logSizeRet: *mut usize) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetProgramLog: Result< + unsafe extern "C" fn(prog: nvrtcProgram, log: *mut ::core::ffi::c_char) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcAddNameExpression: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, + pub nvrtcGetLoweredName: Result< + unsafe extern "C" fn( + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + lowered_name: *mut *const ::core::ffi::c_char, + ) -> nvrtcResult, + ::libloading::Error, + >, +} +impl Lib { + pub unsafe fn new

(path: P) -> Result + where + P: AsRef<::std::ffi::OsStr>, + { + let library = ::libloading::Library::new(path)?; + Self::from_library(library) + } + pub unsafe fn from_library(library: L) -> Result + where + L: Into<::libloading::Library>, + { + let __library = library.into(); + let nvrtcGetErrorString = __library.get(b"nvrtcGetErrorString\0").map(|sym| *sym); + let nvrtcVersion = __library.get(b"nvrtcVersion\0").map(|sym| *sym); + let nvrtcGetNumSupportedArchs = __library + .get(b"nvrtcGetNumSupportedArchs\0") + .map(|sym| *sym); + let nvrtcGetSupportedArchs = __library.get(b"nvrtcGetSupportedArchs\0").map(|sym| *sym); + let nvrtcCreateProgram = __library.get(b"nvrtcCreateProgram\0").map(|sym| *sym); + let nvrtcDestroyProgram = __library.get(b"nvrtcDestroyProgram\0").map(|sym| *sym); + let nvrtcCompileProgram = __library.get(b"nvrtcCompileProgram\0").map(|sym| *sym); + let nvrtcGetPTXSize = __library.get(b"nvrtcGetPTXSize\0").map(|sym| *sym); + let nvrtcGetPTX = __library.get(b"nvrtcGetPTX\0").map(|sym| *sym); + let nvrtcGetCUBINSize = __library.get(b"nvrtcGetCUBINSize\0").map(|sym| *sym); + let nvrtcGetCUBIN = __library.get(b"nvrtcGetCUBIN\0").map(|sym| *sym); + let nvrtcGetNVVMSize = __library.get(b"nvrtcGetNVVMSize\0").map(|sym| *sym); + let nvrtcGetNVVM = __library.get(b"nvrtcGetNVVM\0").map(|sym| *sym); + let nvrtcGetProgramLogSize = __library.get(b"nvrtcGetProgramLogSize\0").map(|sym| *sym); + let nvrtcGetProgramLog = __library.get(b"nvrtcGetProgramLog\0").map(|sym| *sym); + let nvrtcAddNameExpression = __library.get(b"nvrtcAddNameExpression\0").map(|sym| *sym); + let nvrtcGetLoweredName = __library.get(b"nvrtcGetLoweredName\0").map(|sym| *sym); + Ok(Lib { + __library, + nvrtcGetErrorString, + nvrtcVersion, + nvrtcGetNumSupportedArchs, + nvrtcGetSupportedArchs, + nvrtcCreateProgram, + nvrtcDestroyProgram, + nvrtcCompileProgram, + nvrtcGetPTXSize, + nvrtcGetPTX, + nvrtcGetCUBINSize, + nvrtcGetCUBIN, + nvrtcGetNVVMSize, + nvrtcGetNVVM, + nvrtcGetProgramLogSize, + nvrtcGetProgramLog, + nvrtcAddNameExpression, + nvrtcGetLoweredName, + }) + } + pub unsafe fn nvrtcGetErrorString(&self, result: nvrtcResult) -> *const ::core::ffi::c_char { + (self + .nvrtcGetErrorString + .as_ref() + .expect("Expected function, got error."))(result) + } + pub unsafe fn nvrtcVersion( + &self, + major: *mut ::core::ffi::c_int, + minor: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcVersion + .as_ref() + .expect("Expected function, got error."))(major, minor) + } + pub unsafe fn nvrtcGetNumSupportedArchs( + &self, + numArchs: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcGetNumSupportedArchs + .as_ref() + .expect("Expected function, got error."))(numArchs) + } + pub unsafe fn nvrtcGetSupportedArchs( + &self, + supportedArchs: *mut ::core::ffi::c_int, + ) -> nvrtcResult { + (self + .nvrtcGetSupportedArchs + .as_ref() + .expect("Expected function, got error."))(supportedArchs) + } + pub unsafe fn nvrtcCreateProgram( + &self, + prog: *mut nvrtcProgram, + src: *const ::core::ffi::c_char, + name: *const ::core::ffi::c_char, + numHeaders: ::core::ffi::c_int, + headers: *const *const ::core::ffi::c_char, + includeNames: *const *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcCreateProgram + .as_ref() + .expect("Expected function, got error."))( + prog, + src, + name, + numHeaders, + headers, + includeNames, + ) + } + pub unsafe fn nvrtcDestroyProgram(&self, prog: *mut nvrtcProgram) -> nvrtcResult { + (self + .nvrtcDestroyProgram + .as_ref() + .expect("Expected function, got error."))(prog) + } + pub unsafe fn nvrtcCompileProgram( + &self, + prog: nvrtcProgram, + numOptions: ::core::ffi::c_int, + options: *const *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcCompileProgram + .as_ref() + .expect("Expected function, got error."))(prog, numOptions, options) + } + pub unsafe fn nvrtcGetPTXSize( + &self, + prog: nvrtcProgram, + ptxSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetPTXSize + .as_ref() + .expect("Expected function, got error."))(prog, ptxSizeRet) + } + pub unsafe fn nvrtcGetPTX( + &self, + prog: nvrtcProgram, + ptx: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetPTX + .as_ref() + .expect("Expected function, got error."))(prog, ptx) + } + pub unsafe fn nvrtcGetCUBINSize( + &self, + prog: nvrtcProgram, + cubinSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetCUBINSize + .as_ref() + .expect("Expected function, got error."))(prog, cubinSizeRet) + } + pub unsafe fn nvrtcGetCUBIN( + &self, + prog: nvrtcProgram, + cubin: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetCUBIN + .as_ref() + .expect("Expected function, got error."))(prog, cubin) + } + pub unsafe fn nvrtcGetNVVMSize( + &self, + prog: nvrtcProgram, + nvvmSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetNVVMSize + .as_ref() + .expect("Expected function, got error."))(prog, nvvmSizeRet) + } + pub unsafe fn nvrtcGetNVVM( + &self, + prog: nvrtcProgram, + nvvm: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetNVVM + .as_ref() + .expect("Expected function, got error."))(prog, nvvm) + } + pub unsafe fn nvrtcGetProgramLogSize( + &self, + prog: nvrtcProgram, + logSizeRet: *mut usize, + ) -> nvrtcResult { + (self + .nvrtcGetProgramLogSize + .as_ref() + .expect("Expected function, got error."))(prog, logSizeRet) + } + pub unsafe fn nvrtcGetProgramLog( + &self, + prog: nvrtcProgram, + log: *mut ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetProgramLog + .as_ref() + .expect("Expected function, got error."))(prog, log) + } + pub unsafe fn nvrtcAddNameExpression( + &self, + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcAddNameExpression + .as_ref() + .expect("Expected function, got error."))(prog, name_expression) + } + pub unsafe fn nvrtcGetLoweredName( + &self, + prog: nvrtcProgram, + name_expression: *const ::core::ffi::c_char, + lowered_name: *mut *const ::core::ffi::c_char, + ) -> nvrtcResult { + (self + .nvrtcGetLoweredName + .as_ref() + .expect("Expected function, got error."))(prog, name_expression, lowered_name) + } +}