#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaRoundMode {
cudaRoundNearest = 0,
cudaRoundZero = 1,
cudaRoundPosInf = 2,
cudaRoundMinInf = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct dim3 {
pub x: ::libc::c_uint,
pub y: ::libc::c_uint,
pub z: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_dim3() {
assert_eq!(
::std::mem::size_of::<dim3>(),
12usize,
concat!("Size of: ", stringify!(dim3))
);
assert_eq!(
::std::mem::align_of::<dim3>(),
4usize,
concat!("Alignment of ", stringify!(dim3))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<dim3>())).x as *const _ as usize },
0usize,
concat!("Offset of field: ", stringify!(dim3), "::", stringify!(x))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<dim3>())).y as *const _ as usize },
4usize,
concat!("Offset of field: ", stringify!(dim3), "::", stringify!(y))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<dim3>())).z as *const _ as usize },
8usize,
concat!("Offset of field: ", stringify!(dim3), "::", stringify!(z))
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaError {
cudaSuccess = 0,
cudaErrorInvalidValue = 1,
cudaErrorMemoryAllocation = 2,
cudaErrorInitializationError = 3,
cudaErrorCudartUnloading = 4,
cudaErrorProfilerDisabled = 5,
cudaErrorProfilerNotInitialized = 6,
cudaErrorProfilerAlreadyStarted = 7,
cudaErrorProfilerAlreadyStopped = 8,
cudaErrorInvalidConfiguration = 9,
cudaErrorInvalidPitchValue = 12,
cudaErrorInvalidSymbol = 13,
cudaErrorInvalidHostPointer = 16,
cudaErrorInvalidDevicePointer = 17,
cudaErrorInvalidTexture = 18,
cudaErrorInvalidTextureBinding = 19,
cudaErrorInvalidChannelDescriptor = 20,
cudaErrorInvalidMemcpyDirection = 21,
cudaErrorAddressOfConstant = 22,
cudaErrorTextureFetchFailed = 23,
cudaErrorTextureNotBound = 24,
cudaErrorSynchronizationError = 25,
cudaErrorInvalidFilterSetting = 26,
cudaErrorInvalidNormSetting = 27,
cudaErrorMixedDeviceExecution = 28,
cudaErrorNotYetImplemented = 31,
cudaErrorMemoryValueTooLarge = 32,
cudaErrorInsufficientDriver = 35,
cudaErrorInvalidSurface = 37,
cudaErrorDuplicateVariableName = 43,
cudaErrorDuplicateTextureName = 44,
cudaErrorDuplicateSurfaceName = 45,
cudaErrorDevicesUnavailable = 46,
cudaErrorIncompatibleDriverContext = 49,
cudaErrorMissingConfiguration = 52,
cudaErrorPriorLaunchFailure = 53,
cudaErrorLaunchMaxDepthExceeded = 65,
cudaErrorLaunchFileScopedTex = 66,
cudaErrorLaunchFileScopedSurf = 67,
cudaErrorSyncDepthExceeded = 68,
cudaErrorLaunchPendingCountExceeded = 69,
cudaErrorInvalidDeviceFunction = 98,
cudaErrorNoDevice = 100,
cudaErrorInvalidDevice = 101,
cudaErrorStartupFailure = 127,
cudaErrorInvalidKernelImage = 200,
cudaErrorDeviceUninitialized = 201,
cudaErrorMapBufferObjectFailed = 205,
cudaErrorUnmapBufferObjectFailed = 206,
cudaErrorArrayIsMapped = 207,
cudaErrorAlreadyMapped = 208,
cudaErrorNoKernelImageForDevice = 209,
cudaErrorAlreadyAcquired = 210,
cudaErrorNotMapped = 211,
cudaErrorNotMappedAsArray = 212,
cudaErrorNotMappedAsPointer = 213,
cudaErrorECCUncorrectable = 214,
cudaErrorUnsupportedLimit = 215,
cudaErrorDeviceAlreadyInUse = 216,
cudaErrorPeerAccessUnsupported = 217,
cudaErrorInvalidPtx = 218,
cudaErrorInvalidGraphicsContext = 219,
cudaErrorNvlinkUncorrectable = 220,
cudaErrorJitCompilerNotFound = 221,
cudaErrorInvalidSource = 300,
cudaErrorFileNotFound = 301,
cudaErrorSharedObjectSymbolNotFound = 302,
cudaErrorSharedObjectInitFailed = 303,
cudaErrorOperatingSystem = 304,
cudaErrorInvalidResourceHandle = 400,
cudaErrorIllegalState = 401,
cudaErrorSymbolNotFound = 500,
cudaErrorNotReady = 600,
cudaErrorIllegalAddress = 700,
cudaErrorLaunchOutOfResources = 701,
cudaErrorLaunchTimeout = 702,
cudaErrorLaunchIncompatibleTexturing = 703,
cudaErrorPeerAccessAlreadyEnabled = 704,
cudaErrorPeerAccessNotEnabled = 705,
cudaErrorSetOnActiveProcess = 708,
cudaErrorContextIsDestroyed = 709,
cudaErrorAssert = 710,
cudaErrorTooManyPeers = 711,
cudaErrorHostMemoryAlreadyRegistered = 712,
cudaErrorHostMemoryNotRegistered = 713,
cudaErrorHardwareStackError = 714,
cudaErrorIllegalInstruction = 715,
cudaErrorMisalignedAddress = 716,
cudaErrorInvalidAddressSpace = 717,
cudaErrorInvalidPc = 718,
cudaErrorLaunchFailure = 719,
cudaErrorCooperativeLaunchTooLarge = 720,
cudaErrorNotPermitted = 800,
cudaErrorNotSupported = 801,
cudaErrorSystemNotReady = 802,
cudaErrorSystemDriverMismatch = 803,
cudaErrorCompatNotSupportedOnDevice = 804,
cudaErrorStreamCaptureUnsupported = 900,
cudaErrorStreamCaptureInvalidated = 901,
cudaErrorStreamCaptureMerge = 902,
cudaErrorStreamCaptureUnmatched = 903,
cudaErrorStreamCaptureUnjoined = 904,
cudaErrorStreamCaptureIsolation = 905,
cudaErrorStreamCaptureImplicit = 906,
cudaErrorCapturedEvent = 907,
cudaErrorStreamCaptureWrongThread = 908,
cudaErrorTimeout = 909,
cudaErrorGraphExecUpdateFailure = 910,
cudaErrorUnknown = 999,
cudaErrorApiFailureBase = 10000,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaChannelFormatKind {
cudaChannelFormatKindSigned = 0,
cudaChannelFormatKindUnsigned = 1,
cudaChannelFormatKindFloat = 2,
cudaChannelFormatKindNone = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaChannelFormatDesc {
pub x: ::libc::c_int,
pub y: ::libc::c_int,
pub z: ::libc::c_int,
pub w: ::libc::c_int,
pub f: cudaChannelFormatKind,
}
#[test]
fn bindgen_test_layout_cudaChannelFormatDesc() {
assert_eq!(
::std::mem::size_of::<cudaChannelFormatDesc>(),
20usize,
concat!("Size of: ", stringify!(cudaChannelFormatDesc))
);
assert_eq!(
::std::mem::align_of::<cudaChannelFormatDesc>(),
4usize,
concat!("Alignment of ", stringify!(cudaChannelFormatDesc))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaChannelFormatDesc>())).x as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaChannelFormatDesc),
"::",
stringify!(x)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaChannelFormatDesc>())).y as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(cudaChannelFormatDesc),
"::",
stringify!(y)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaChannelFormatDesc>())).z as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaChannelFormatDesc),
"::",
stringify!(z)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaChannelFormatDesc>())).w as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(cudaChannelFormatDesc),
"::",
stringify!(w)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaChannelFormatDesc>())).f as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaChannelFormatDesc),
"::",
stringify!(f)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaArray {
_unused: [u8; 0],
}
pub type cudaArray_t = *mut cudaArray;
pub type cudaArray_const_t = *const cudaArray;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaMipmappedArray {
_unused: [u8; 0],
}
pub type cudaMipmappedArray_t = *mut cudaMipmappedArray;
pub type cudaMipmappedArray_const_t = *const cudaMipmappedArray;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaMemoryType {
cudaMemoryTypeUnregistered = 0,
cudaMemoryTypeHost = 1,
cudaMemoryTypeDevice = 2,
cudaMemoryTypeManaged = 3,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaMemcpyKind {
cudaMemcpyHostToHost = 0,
cudaMemcpyHostToDevice = 1,
cudaMemcpyDeviceToHost = 2,
cudaMemcpyDeviceToDevice = 3,
cudaMemcpyDefault = 4,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaPitchedPtr {
pub ptr: *mut ::libc::c_void,
pub pitch: usize,
pub xsize: usize,
pub ysize: usize,
}
#[test]
fn bindgen_test_layout_cudaPitchedPtr() {
assert_eq!(
::std::mem::size_of::<cudaPitchedPtr>(),
32usize,
concat!("Size of: ", stringify!(cudaPitchedPtr))
);
assert_eq!(
::std::mem::align_of::<cudaPitchedPtr>(),
8usize,
concat!("Alignment of ", stringify!(cudaPitchedPtr))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPitchedPtr>())).ptr as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaPitchedPtr),
"::",
stringify!(ptr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPitchedPtr>())).pitch as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaPitchedPtr),
"::",
stringify!(pitch)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPitchedPtr>())).xsize as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaPitchedPtr),
"::",
stringify!(xsize)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPitchedPtr>())).ysize as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudaPitchedPtr),
"::",
stringify!(ysize)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExtent {
pub width: usize,
pub height: usize,
pub depth: usize,
}
#[test]
fn bindgen_test_layout_cudaExtent() {
assert_eq!(
::std::mem::size_of::<cudaExtent>(),
24usize,
concat!("Size of: ", stringify!(cudaExtent))
);
assert_eq!(
::std::mem::align_of::<cudaExtent>(),
8usize,
concat!("Alignment of ", stringify!(cudaExtent))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaExtent>())).width as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExtent),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaExtent>())).height as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExtent),
"::",
stringify!(height)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaExtent>())).depth as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaExtent),
"::",
stringify!(depth)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaPos {
pub x: usize,
pub y: usize,
pub z: usize,
}
#[test]
fn bindgen_test_layout_cudaPos() {
assert_eq!(
::std::mem::size_of::<cudaPos>(),
24usize,
concat!("Size of: ", stringify!(cudaPos))
);
assert_eq!(
::std::mem::align_of::<cudaPos>(),
8usize,
concat!("Alignment of ", stringify!(cudaPos))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPos>())).x as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaPos),
"::",
stringify!(x)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPos>())).y as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaPos),
"::",
stringify!(y)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPos>())).z as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaPos),
"::",
stringify!(z)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaMemcpy3DParms {
pub srcArray: cudaArray_t,
pub srcPos: cudaPos,
pub srcPtr: cudaPitchedPtr,
pub dstArray: cudaArray_t,
pub dstPos: cudaPos,
pub dstPtr: cudaPitchedPtr,
pub extent: cudaExtent,
pub kind: cudaMemcpyKind,
}
#[test]
fn bindgen_test_layout_cudaMemcpy3DParms() {
assert_eq!(
::std::mem::size_of::<cudaMemcpy3DParms>(),
160usize,
concat!("Size of: ", stringify!(cudaMemcpy3DParms))
);
assert_eq!(
::std::mem::align_of::<cudaMemcpy3DParms>(),
8usize,
concat!("Alignment of ", stringify!(cudaMemcpy3DParms))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).srcArray as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(srcArray)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).srcPos as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(srcPos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).srcPtr as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(srcPtr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).dstArray as *const _ as usize },
64usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(dstArray)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).dstPos as *const _ as usize },
72usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(dstPos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).dstPtr as *const _ as usize },
96usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(dstPtr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).extent as *const _ as usize },
128usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(extent)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DParms>())).kind as *const _ as usize },
152usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DParms),
"::",
stringify!(kind)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaMemcpy3DPeerParms {
pub srcArray: cudaArray_t,
pub srcPos: cudaPos,
pub srcPtr: cudaPitchedPtr,
pub srcDevice: ::libc::c_int,
pub dstArray: cudaArray_t,
pub dstPos: cudaPos,
pub dstPtr: cudaPitchedPtr,
pub dstDevice: ::libc::c_int,
pub extent: cudaExtent,
}
#[test]
fn bindgen_test_layout_cudaMemcpy3DPeerParms() {
assert_eq!(
::std::mem::size_of::<cudaMemcpy3DPeerParms>(),
168usize,
concat!("Size of: ", stringify!(cudaMemcpy3DPeerParms))
);
assert_eq!(
::std::mem::align_of::<cudaMemcpy3DPeerParms>(),
8usize,
concat!("Alignment of ", stringify!(cudaMemcpy3DPeerParms))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).srcArray as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(srcArray)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).srcPos as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(srcPos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).srcPtr as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(srcPtr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).srcDevice as *const _ as usize },
64usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(srcDevice)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).dstArray as *const _ as usize },
72usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(dstArray)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).dstPos as *const _ as usize },
80usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(dstPos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).dstPtr as *const _ as usize },
104usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(dstPtr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).dstDevice as *const _ as usize },
136usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(dstDevice)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemcpy3DPeerParms>())).extent as *const _ as usize },
144usize,
concat!(
"Offset of field: ",
stringify!(cudaMemcpy3DPeerParms),
"::",
stringify!(extent)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaMemsetParams {
pub dst: *mut ::libc::c_void,
pub pitch: usize,
pub value: ::libc::c_uint,
pub elementSize: ::libc::c_uint,
pub width: usize,
pub height: usize,
}
#[test]
fn bindgen_test_layout_cudaMemsetParams() {
assert_eq!(
::std::mem::size_of::<cudaMemsetParams>(),
40usize,
concat!("Size of: ", stringify!(cudaMemsetParams))
);
assert_eq!(
::std::mem::align_of::<cudaMemsetParams>(),
8usize,
concat!("Alignment of ", stringify!(cudaMemsetParams))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).dst as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(dst)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).pitch as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(pitch)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).value as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(value)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).elementSize as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(elementSize)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).width as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaMemsetParams>())).height as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudaMemsetParams),
"::",
stringify!(height)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaAccessProperty {
cudaAccessPropertyNormal = 0,
cudaAccessPropertyStreaming = 1,
cudaAccessPropertyPersisting = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaAccessPolicyWindow {
pub base_ptr: *mut ::libc::c_void,
pub num_bytes: usize,
pub hitRatio: f32,
pub hitProp: cudaAccessProperty,
pub missProp: cudaAccessProperty,
}
#[test]
fn bindgen_test_layout_cudaAccessPolicyWindow() {
assert_eq!(
::std::mem::size_of::<cudaAccessPolicyWindow>(),
32usize,
concat!("Size of: ", stringify!(cudaAccessPolicyWindow))
);
assert_eq!(
::std::mem::align_of::<cudaAccessPolicyWindow>(),
8usize,
concat!("Alignment of ", stringify!(cudaAccessPolicyWindow))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaAccessPolicyWindow>())).base_ptr as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaAccessPolicyWindow),
"::",
stringify!(base_ptr)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaAccessPolicyWindow>())).num_bytes as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaAccessPolicyWindow),
"::",
stringify!(num_bytes)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaAccessPolicyWindow>())).hitRatio as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaAccessPolicyWindow),
"::",
stringify!(hitRatio)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaAccessPolicyWindow>())).hitProp as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(cudaAccessPolicyWindow),
"::",
stringify!(hitProp)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaAccessPolicyWindow>())).missProp as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudaAccessPolicyWindow),
"::",
stringify!(missProp)
)
);
}
pub type cudaHostFn_t = ::std::option::Option<unsafe extern "C" fn(userData: *mut ::libc::c_void)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaHostNodeParams {
pub fn_: cudaHostFn_t,
pub userData: *mut ::libc::c_void,
}
#[test]
fn bindgen_test_layout_cudaHostNodeParams() {
assert_eq!(
::std::mem::size_of::<cudaHostNodeParams>(),
16usize,
concat!("Size of: ", stringify!(cudaHostNodeParams))
);
assert_eq!(
::std::mem::align_of::<cudaHostNodeParams>(),
8usize,
concat!("Alignment of ", stringify!(cudaHostNodeParams))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaHostNodeParams>())).fn_ as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaHostNodeParams),
"::",
stringify!(fn_)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaHostNodeParams>())).userData as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaHostNodeParams),
"::",
stringify!(userData)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaStreamCaptureStatus {
cudaStreamCaptureStatusNone = 0,
cudaStreamCaptureStatusActive = 1,
cudaStreamCaptureStatusInvalidated = 2,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaStreamCaptureMode {
cudaStreamCaptureModeGlobal = 0,
cudaStreamCaptureModeThreadLocal = 1,
cudaStreamCaptureModeRelaxed = 2,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaSynchronizationPolicy {
cudaSyncPolicyAuto = 1,
cudaSyncPolicySpin = 2,
cudaSyncPolicyYield = 3,
cudaSyncPolicyBlockingSync = 4,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaStreamAttrID {
cudaStreamAttributeAccessPolicyWindow = 1,
cudaStreamAttributeSynchronizationPolicy = 3,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaStreamAttrValue {
pub accessPolicyWindow: cudaAccessPolicyWindow,
pub syncPolicy: cudaSynchronizationPolicy,
_bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout_cudaStreamAttrValue() {
assert_eq!(
::std::mem::size_of::<cudaStreamAttrValue>(),
32usize,
concat!("Size of: ", stringify!(cudaStreamAttrValue))
);
assert_eq!(
::std::mem::align_of::<cudaStreamAttrValue>(),
8usize,
concat!("Alignment of ", stringify!(cudaStreamAttrValue))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaStreamAttrValue>())).accessPolicyWindow as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaStreamAttrValue),
"::",
stringify!(accessPolicyWindow)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaStreamAttrValue>())).syncPolicy as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaStreamAttrValue),
"::",
stringify!(syncPolicy)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaGraphicsResource {
_unused: [u8; 0],
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaGraphicsRegisterFlags {
cudaGraphicsRegisterFlagsNone = 0,
cudaGraphicsRegisterFlagsReadOnly = 1,
cudaGraphicsRegisterFlagsWriteDiscard = 2,
cudaGraphicsRegisterFlagsSurfaceLoadStore = 4,
cudaGraphicsRegisterFlagsTextureGather = 8,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaGraphicsMapFlags {
cudaGraphicsMapFlagsNone = 0,
cudaGraphicsMapFlagsReadOnly = 1,
cudaGraphicsMapFlagsWriteDiscard = 2,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaGraphicsCubeFace {
cudaGraphicsCubeFacePositiveX = 0,
cudaGraphicsCubeFaceNegativeX = 1,
cudaGraphicsCubeFacePositiveY = 2,
cudaGraphicsCubeFaceNegativeY = 3,
cudaGraphicsCubeFacePositiveZ = 4,
cudaGraphicsCubeFaceNegativeZ = 5,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaKernelNodeAttrID {
cudaKernelNodeAttributeAccessPolicyWindow = 1,
cudaKernelNodeAttributeCooperative = 2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaKernelNodeAttrValue {
pub accessPolicyWindow: cudaAccessPolicyWindow,
pub cooperative: ::libc::c_int,
_bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout_cudaKernelNodeAttrValue() {
assert_eq!(
::std::mem::size_of::<cudaKernelNodeAttrValue>(),
32usize,
concat!("Size of: ", stringify!(cudaKernelNodeAttrValue))
);
assert_eq!(
::std::mem::align_of::<cudaKernelNodeAttrValue>(),
8usize,
concat!("Alignment of ", stringify!(cudaKernelNodeAttrValue))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaKernelNodeAttrValue>())).accessPolicyWindow as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeAttrValue),
"::",
stringify!(accessPolicyWindow)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaKernelNodeAttrValue>())).cooperative as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeAttrValue),
"::",
stringify!(cooperative)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaResourceType {
cudaResourceTypeArray = 0,
cudaResourceTypeMipmappedArray = 1,
cudaResourceTypeLinear = 2,
cudaResourceTypePitch2D = 3,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaResourceViewFormat {
cudaResViewFormatNone = 0,
cudaResViewFormatUnsignedChar1 = 1,
cudaResViewFormatUnsignedChar2 = 2,
cudaResViewFormatUnsignedChar4 = 3,
cudaResViewFormatSignedChar1 = 4,
cudaResViewFormatSignedChar2 = 5,
cudaResViewFormatSignedChar4 = 6,
cudaResViewFormatUnsignedShort1 = 7,
cudaResViewFormatUnsignedShort2 = 8,
cudaResViewFormatUnsignedShort4 = 9,
cudaResViewFormatSignedShort1 = 10,
cudaResViewFormatSignedShort2 = 11,
cudaResViewFormatSignedShort4 = 12,
cudaResViewFormatUnsignedInt1 = 13,
cudaResViewFormatUnsignedInt2 = 14,
cudaResViewFormatUnsignedInt4 = 15,
cudaResViewFormatSignedInt1 = 16,
cudaResViewFormatSignedInt2 = 17,
cudaResViewFormatSignedInt4 = 18,
cudaResViewFormatHalf1 = 19,
cudaResViewFormatHalf2 = 20,
cudaResViewFormatHalf4 = 21,
cudaResViewFormatFloat1 = 22,
cudaResViewFormatFloat2 = 23,
cudaResViewFormatFloat4 = 24,
cudaResViewFormatUnsignedBlockCompressed1 = 25,
cudaResViewFormatUnsignedBlockCompressed2 = 26,
cudaResViewFormatUnsignedBlockCompressed3 = 27,
cudaResViewFormatUnsignedBlockCompressed4 = 28,
cudaResViewFormatSignedBlockCompressed4 = 29,
cudaResViewFormatUnsignedBlockCompressed5 = 30,
cudaResViewFormatSignedBlockCompressed5 = 31,
cudaResViewFormatUnsignedBlockCompressed6H = 32,
cudaResViewFormatSignedBlockCompressed6H = 33,
cudaResViewFormatUnsignedBlockCompressed7 = 34,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaResourceDesc {
pub resType: cudaResourceType,
pub res: cudaResourceDesc__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaResourceDesc__bindgen_ty_1 {
pub array: cudaResourceDesc__bindgen_ty_1__bindgen_ty_1,
pub mipmap: cudaResourceDesc__bindgen_ty_1__bindgen_ty_2,
pub linear: cudaResourceDesc__bindgen_ty_1__bindgen_ty_3,
pub pitch2D: cudaResourceDesc__bindgen_ty_1__bindgen_ty_4,
_bindgen_union_align: [u64; 7usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaResourceDesc__bindgen_ty_1__bindgen_ty_1 {
pub array: cudaArray_t,
}
#[test]
fn bindgen_test_layout_cudaResourceDesc__bindgen_ty_1__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_1>())).array
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(array)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaResourceDesc__bindgen_ty_1__bindgen_ty_2 {
pub mipmap: cudaMipmappedArray_t,
}
#[test]
fn bindgen_test_layout_cudaResourceDesc__bindgen_ty_1__bindgen_ty_2() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_2>())).mipmap
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_2),
"::",
stringify!(mipmap)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaResourceDesc__bindgen_ty_1__bindgen_ty_3 {
pub devPtr: *mut ::libc::c_void,
pub desc: cudaChannelFormatDesc,
pub sizeInBytes: usize,
}
#[test]
fn bindgen_test_layout_cudaResourceDesc__bindgen_ty_1__bindgen_ty_3() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_3>(),
40usize,
concat!(
"Size of: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_3>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_3>())).devPtr
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(devPtr)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_3>())).desc
as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(desc)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_3>())).sizeInBytes
as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(sizeInBytes)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaResourceDesc__bindgen_ty_1__bindgen_ty_4 {
pub devPtr: *mut ::libc::c_void,
pub desc: cudaChannelFormatDesc,
pub width: usize,
pub height: usize,
pub pitchInBytes: usize,
}
#[test]
fn bindgen_test_layout_cudaResourceDesc__bindgen_ty_1__bindgen_ty_4() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>(),
56usize,
concat!(
"Size of: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4)
)
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>())).devPtr
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4),
"::",
stringify!(devPtr)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>())).desc
as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4),
"::",
stringify!(desc)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>())).width
as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>())).height
as *const _ as usize
},
40usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4),
"::",
stringify!(height)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1__bindgen_ty_4>())).pitchInBytes
as *const _ as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1__bindgen_ty_4),
"::",
stringify!(pitchInBytes)
)
);
}
#[test]
fn bindgen_test_layout_cudaResourceDesc__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc__bindgen_ty_1>(),
56usize,
concat!("Size of: ", stringify!(cudaResourceDesc__bindgen_ty_1))
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc__bindgen_ty_1>(),
8usize,
concat!("Alignment of ", stringify!(cudaResourceDesc__bindgen_ty_1))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1>())).array as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1),
"::",
stringify!(array)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1>())).mipmap as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1),
"::",
stringify!(mipmap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1>())).linear as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1),
"::",
stringify!(linear)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceDesc__bindgen_ty_1>())).pitch2D as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc__bindgen_ty_1),
"::",
stringify!(pitch2D)
)
);
}
#[test]
fn bindgen_test_layout_cudaResourceDesc() {
assert_eq!(
::std::mem::size_of::<cudaResourceDesc>(),
64usize,
concat!("Size of: ", stringify!(cudaResourceDesc))
);
assert_eq!(
::std::mem::align_of::<cudaResourceDesc>(),
8usize,
concat!("Alignment of ", stringify!(cudaResourceDesc))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceDesc>())).resType as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc),
"::",
stringify!(resType)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceDesc>())).res as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceDesc),
"::",
stringify!(res)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaResourceViewDesc {
pub format: cudaResourceViewFormat,
pub width: usize,
pub height: usize,
pub depth: usize,
pub firstMipmapLevel: ::libc::c_uint,
pub lastMipmapLevel: ::libc::c_uint,
pub firstLayer: ::libc::c_uint,
pub lastLayer: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_cudaResourceViewDesc() {
assert_eq!(
::std::mem::size_of::<cudaResourceViewDesc>(),
48usize,
concat!("Size of: ", stringify!(cudaResourceViewDesc))
);
assert_eq!(
::std::mem::align_of::<cudaResourceViewDesc>(),
8usize,
concat!("Alignment of ", stringify!(cudaResourceViewDesc))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).format as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(format)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).width as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).height as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(height)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).depth as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(depth)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceViewDesc>())).firstMipmapLevel as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(firstMipmapLevel)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaResourceViewDesc>())).lastMipmapLevel as *const _ as usize
},
36usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(lastMipmapLevel)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).firstLayer as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(firstLayer)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaResourceViewDesc>())).lastLayer as *const _ as usize },
44usize,
concat!(
"Offset of field: ",
stringify!(cudaResourceViewDesc),
"::",
stringify!(lastLayer)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaPointerAttributes {
pub type_: cudaMemoryType,
pub device: ::libc::c_int,
pub devicePointer: *mut ::libc::c_void,
pub hostPointer: *mut ::libc::c_void,
}
#[test]
fn bindgen_test_layout_cudaPointerAttributes() {
assert_eq!(
::std::mem::size_of::<cudaPointerAttributes>(),
24usize,
concat!("Size of: ", stringify!(cudaPointerAttributes))
);
assert_eq!(
::std::mem::align_of::<cudaPointerAttributes>(),
8usize,
concat!("Alignment of ", stringify!(cudaPointerAttributes))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPointerAttributes>())).type_ as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaPointerAttributes),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaPointerAttributes>())).device as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(cudaPointerAttributes),
"::",
stringify!(device)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaPointerAttributes>())).devicePointer as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaPointerAttributes),
"::",
stringify!(devicePointer)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaPointerAttributes>())).hostPointer as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudaPointerAttributes),
"::",
stringify!(hostPointer)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaFuncAttributes {
pub sharedSizeBytes: usize,
pub constSizeBytes: usize,
pub localSizeBytes: usize,
pub maxThreadsPerBlock: ::libc::c_int,
pub numRegs: ::libc::c_int,
pub ptxVersion: ::libc::c_int,
pub binaryVersion: ::libc::c_int,
pub cacheModeCA: ::libc::c_int,
pub maxDynamicSharedSizeBytes: ::libc::c_int,
pub preferredShmemCarveout: ::libc::c_int,
}
#[test]
fn bindgen_test_layout_cudaFuncAttributes() {
assert_eq!(
::std::mem::size_of::<cudaFuncAttributes>(),
56usize,
concat!("Size of: ", stringify!(cudaFuncAttributes))
);
assert_eq!(
::std::mem::align_of::<cudaFuncAttributes>(),
8usize,
concat!("Alignment of ", stringify!(cudaFuncAttributes))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).sharedSizeBytes as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(sharedSizeBytes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).constSizeBytes as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(constSizeBytes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).localSizeBytes as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(localSizeBytes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).maxThreadsPerBlock as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(maxThreadsPerBlock)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaFuncAttributes>())).numRegs as *const _ as usize },
28usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(numRegs)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaFuncAttributes>())).ptxVersion as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(ptxVersion)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).binaryVersion as *const _ as usize
},
36usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(binaryVersion)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaFuncAttributes>())).cacheModeCA as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(cacheModeCA)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).maxDynamicSharedSizeBytes as *const _
as usize
},
44usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(maxDynamicSharedSizeBytes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaFuncAttributes>())).preferredShmemCarveout as *const _
as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(cudaFuncAttributes),
"::",
stringify!(preferredShmemCarveout)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaFuncAttribute {
cudaFuncAttributeMaxDynamicSharedMemorySize = 8,
cudaFuncAttributePreferredSharedMemoryCarveout = 9,
cudaFuncAttributeMax = 10,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaFuncCache {
cudaFuncCachePreferNone = 0,
cudaFuncCachePreferShared = 1,
cudaFuncCachePreferL1 = 2,
cudaFuncCachePreferEqual = 3,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaSharedMemConfig {
cudaSharedMemBankSizeDefault = 0,
cudaSharedMemBankSizeFourByte = 1,
cudaSharedMemBankSizeEightByte = 2,
}
#[repr(i32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaSharedCarveout {
cudaSharedmemCarveoutDefault = -1,
cudaSharedmemCarveoutMaxShared = 100,
cudaSharedmemCarveoutMaxL1 = 0,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaComputeMode {
cudaComputeModeDefault = 0,
cudaComputeModeExclusive = 1,
cudaComputeModeProhibited = 2,
cudaComputeModeExclusiveProcess = 3,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaLimit {
cudaLimitStackSize = 0,
cudaLimitPrintfFifoSize = 1,
cudaLimitMallocHeapSize = 2,
cudaLimitDevRuntimeSyncDepth = 3,
cudaLimitDevRuntimePendingLaunchCount = 4,
cudaLimitMaxL2FetchGranularity = 5,
cudaLimitPersistingL2CacheSize = 6,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaMemoryAdvise {
cudaMemAdviseSetReadMostly = 1,
cudaMemAdviseUnsetReadMostly = 2,
cudaMemAdviseSetPreferredLocation = 3,
cudaMemAdviseUnsetPreferredLocation = 4,
cudaMemAdviseSetAccessedBy = 5,
cudaMemAdviseUnsetAccessedBy = 6,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaMemRangeAttribute {
cudaMemRangeAttributeReadMostly = 1,
cudaMemRangeAttributePreferredLocation = 2,
cudaMemRangeAttributeAccessedBy = 3,
cudaMemRangeAttributeLastPrefetchLocation = 4,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaOutputMode {
cudaKeyValuePair = 0,
cudaCSV = 1,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaDeviceAttr {
cudaDevAttrMaxThreadsPerBlock = 1,
cudaDevAttrMaxBlockDimX = 2,
cudaDevAttrMaxBlockDimY = 3,
cudaDevAttrMaxBlockDimZ = 4,
cudaDevAttrMaxGridDimX = 5,
cudaDevAttrMaxGridDimY = 6,
cudaDevAttrMaxGridDimZ = 7,
cudaDevAttrMaxSharedMemoryPerBlock = 8,
cudaDevAttrTotalConstantMemory = 9,
cudaDevAttrWarpSize = 10,
cudaDevAttrMaxPitch = 11,
cudaDevAttrMaxRegistersPerBlock = 12,
cudaDevAttrClockRate = 13,
cudaDevAttrTextureAlignment = 14,
cudaDevAttrGpuOverlap = 15,
cudaDevAttrMultiProcessorCount = 16,
cudaDevAttrKernelExecTimeout = 17,
cudaDevAttrIntegrated = 18,
cudaDevAttrCanMapHostMemory = 19,
cudaDevAttrComputeMode = 20,
cudaDevAttrMaxTexture1DWidth = 21,
cudaDevAttrMaxTexture2DWidth = 22,
cudaDevAttrMaxTexture2DHeight = 23,
cudaDevAttrMaxTexture3DWidth = 24,
cudaDevAttrMaxTexture3DHeight = 25,
cudaDevAttrMaxTexture3DDepth = 26,
cudaDevAttrMaxTexture2DLayeredWidth = 27,
cudaDevAttrMaxTexture2DLayeredHeight = 28,
cudaDevAttrMaxTexture2DLayeredLayers = 29,
cudaDevAttrSurfaceAlignment = 30,
cudaDevAttrConcurrentKernels = 31,
cudaDevAttrEccEnabled = 32,
cudaDevAttrPciBusId = 33,
cudaDevAttrPciDeviceId = 34,
cudaDevAttrTccDriver = 35,
cudaDevAttrMemoryClockRate = 36,
cudaDevAttrGlobalMemoryBusWidth = 37,
cudaDevAttrL2CacheSize = 38,
cudaDevAttrMaxThreadsPerMultiProcessor = 39,
cudaDevAttrAsyncEngineCount = 40,
cudaDevAttrUnifiedAddressing = 41,
cudaDevAttrMaxTexture1DLayeredWidth = 42,
cudaDevAttrMaxTexture1DLayeredLayers = 43,
cudaDevAttrMaxTexture2DGatherWidth = 45,
cudaDevAttrMaxTexture2DGatherHeight = 46,
cudaDevAttrMaxTexture3DWidthAlt = 47,
cudaDevAttrMaxTexture3DHeightAlt = 48,
cudaDevAttrMaxTexture3DDepthAlt = 49,
cudaDevAttrPciDomainId = 50,
cudaDevAttrTexturePitchAlignment = 51,
cudaDevAttrMaxTextureCubemapWidth = 52,
cudaDevAttrMaxTextureCubemapLayeredWidth = 53,
cudaDevAttrMaxTextureCubemapLayeredLayers = 54,
cudaDevAttrMaxSurface1DWidth = 55,
cudaDevAttrMaxSurface2DWidth = 56,
cudaDevAttrMaxSurface2DHeight = 57,
cudaDevAttrMaxSurface3DWidth = 58,
cudaDevAttrMaxSurface3DHeight = 59,
cudaDevAttrMaxSurface3DDepth = 60,
cudaDevAttrMaxSurface1DLayeredWidth = 61,
cudaDevAttrMaxSurface1DLayeredLayers = 62,
cudaDevAttrMaxSurface2DLayeredWidth = 63,
cudaDevAttrMaxSurface2DLayeredHeight = 64,
cudaDevAttrMaxSurface2DLayeredLayers = 65,
cudaDevAttrMaxSurfaceCubemapWidth = 66,
cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67,
cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68,
cudaDevAttrMaxTexture1DLinearWidth = 69,
cudaDevAttrMaxTexture2DLinearWidth = 70,
cudaDevAttrMaxTexture2DLinearHeight = 71,
cudaDevAttrMaxTexture2DLinearPitch = 72,
cudaDevAttrMaxTexture2DMipmappedWidth = 73,
cudaDevAttrMaxTexture2DMipmappedHeight = 74,
cudaDevAttrComputeCapabilityMajor = 75,
cudaDevAttrComputeCapabilityMinor = 76,
cudaDevAttrMaxTexture1DMipmappedWidth = 77,
cudaDevAttrStreamPrioritiesSupported = 78,
cudaDevAttrGlobalL1CacheSupported = 79,
cudaDevAttrLocalL1CacheSupported = 80,
cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81,
cudaDevAttrMaxRegistersPerMultiprocessor = 82,
cudaDevAttrManagedMemory = 83,
cudaDevAttrIsMultiGpuBoard = 84,
cudaDevAttrMultiGpuBoardGroupID = 85,
cudaDevAttrHostNativeAtomicSupported = 86,
cudaDevAttrSingleToDoublePrecisionPerfRatio = 87,
cudaDevAttrPageableMemoryAccess = 88,
cudaDevAttrConcurrentManagedAccess = 89,
cudaDevAttrComputePreemptionSupported = 90,
cudaDevAttrCanUseHostPointerForRegisteredMem = 91,
cudaDevAttrReserved92 = 92,
cudaDevAttrReserved93 = 93,
cudaDevAttrReserved94 = 94,
cudaDevAttrCooperativeLaunch = 95,
cudaDevAttrCooperativeMultiDeviceLaunch = 96,
cudaDevAttrMaxSharedMemoryPerBlockOptin = 97,
cudaDevAttrCanFlushRemoteWrites = 98,
cudaDevAttrHostRegisterSupported = 99,
cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100,
cudaDevAttrDirectManagedMemAccessFromHost = 101,
cudaDevAttrMaxBlocksPerMultiprocessor = 106,
cudaDevAttrReservedSharedMemoryPerBlock = 111,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaDeviceP2PAttr {
cudaDevP2PAttrPerformanceRank = 1,
cudaDevP2PAttrAccessSupported = 2,
cudaDevP2PAttrNativeAtomicSupported = 3,
cudaDevP2PAttrCudaArrayAccessSupported = 4,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUuuid_st {
pub bytes: [::libc::c_char; 16usize],
}
#[test]
fn bindgen_test_layout_CUuuid_st() {
assert_eq!(
::std::mem::size_of::<CUuuid_st>(),
16usize,
concat!("Size of: ", stringify!(CUuuid_st))
);
assert_eq!(
::std::mem::align_of::<CUuuid_st>(),
1usize,
concat!("Alignment of ", stringify!(CUuuid_st))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<CUuuid_st>())).bytes as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(CUuuid_st),
"::",
stringify!(bytes)
)
);
}
pub type CUuuid = CUuuid_st;
pub type cudaUUID_t = CUuuid_st;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaDeviceProp {
pub name: [::libc::c_char; 256usize],
pub uuid: cudaUUID_t,
pub luid: [::libc::c_char; 8usize],
pub luidDeviceNodeMask: ::libc::c_uint,
pub totalGlobalMem: usize,
pub sharedMemPerBlock: usize,
pub regsPerBlock: ::libc::c_int,
pub warpSize: ::libc::c_int,
pub memPitch: usize,
pub maxThreadsPerBlock: ::libc::c_int,
pub maxThreadsDim: [::libc::c_int; 3usize],
pub maxGridSize: [::libc::c_int; 3usize],
pub clockRate: ::libc::c_int,
pub totalConstMem: usize,
pub major: ::libc::c_int,
pub minor: ::libc::c_int,
pub textureAlignment: usize,
pub texturePitchAlignment: usize,
pub deviceOverlap: ::libc::c_int,
pub multiProcessorCount: ::libc::c_int,
pub kernelExecTimeoutEnabled: ::libc::c_int,
pub integrated: ::libc::c_int,
pub canMapHostMemory: ::libc::c_int,
pub computeMode: ::libc::c_int,
pub maxTexture1D: ::libc::c_int,
pub maxTexture1DMipmap: ::libc::c_int,
pub maxTexture1DLinear: ::libc::c_int,
pub maxTexture2D: [::libc::c_int; 2usize],
pub maxTexture2DMipmap: [::libc::c_int; 2usize],
pub maxTexture2DLinear: [::libc::c_int; 3usize],
pub maxTexture2DGather: [::libc::c_int; 2usize],
pub maxTexture3D: [::libc::c_int; 3usize],
pub maxTexture3DAlt: [::libc::c_int; 3usize],
pub maxTextureCubemap: ::libc::c_int,
pub maxTexture1DLayered: [::libc::c_int; 2usize],
pub maxTexture2DLayered: [::libc::c_int; 3usize],
pub maxTextureCubemapLayered: [::libc::c_int; 2usize],
pub maxSurface1D: ::libc::c_int,
pub maxSurface2D: [::libc::c_int; 2usize],
pub maxSurface3D: [::libc::c_int; 3usize],
pub maxSurface1DLayered: [::libc::c_int; 2usize],
pub maxSurface2DLayered: [::libc::c_int; 3usize],
pub maxSurfaceCubemap: ::libc::c_int,
pub maxSurfaceCubemapLayered: [::libc::c_int; 2usize],
pub surfaceAlignment: usize,
pub concurrentKernels: ::libc::c_int,
pub ECCEnabled: ::libc::c_int,
pub pciBusID: ::libc::c_int,
pub pciDeviceID: ::libc::c_int,
pub pciDomainID: ::libc::c_int,
pub tccDriver: ::libc::c_int,
pub asyncEngineCount: ::libc::c_int,
pub unifiedAddressing: ::libc::c_int,
pub memoryClockRate: ::libc::c_int,
pub memoryBusWidth: ::libc::c_int,
pub l2CacheSize: ::libc::c_int,
pub persistingL2CacheMaxSize: ::libc::c_int,
pub maxThreadsPerMultiProcessor: ::libc::c_int,
pub streamPrioritiesSupported: ::libc::c_int,
pub globalL1CacheSupported: ::libc::c_int,
pub localL1CacheSupported: ::libc::c_int,
pub sharedMemPerMultiprocessor: usize,
pub regsPerMultiprocessor: ::libc::c_int,
pub managedMemory: ::libc::c_int,
pub isMultiGpuBoard: ::libc::c_int,
pub multiGpuBoardGroupID: ::libc::c_int,
pub hostNativeAtomicSupported: ::libc::c_int,
pub singleToDoublePrecisionPerfRatio: ::libc::c_int,
pub pageableMemoryAccess: ::libc::c_int,
pub concurrentManagedAccess: ::libc::c_int,
pub computePreemptionSupported: ::libc::c_int,
pub canUseHostPointerForRegisteredMem: ::libc::c_int,
pub cooperativeLaunch: ::libc::c_int,
pub cooperativeMultiDeviceLaunch: ::libc::c_int,
pub sharedMemPerBlockOptin: usize,
pub pageableMemoryAccessUsesHostPageTables: ::libc::c_int,
pub directManagedMemAccessFromHost: ::libc::c_int,
pub maxBlocksPerMultiProcessor: ::libc::c_int,
pub accessPolicyMaxWindowSize: ::libc::c_int,
pub reservedSharedMemPerBlock: usize,
}
#[test]
fn bindgen_test_layout_cudaDeviceProp() {
assert_eq!(
::std::mem::size_of::<cudaDeviceProp>(),
728usize,
concat!("Size of: ", stringify!(cudaDeviceProp))
);
assert_eq!(
::std::mem::align_of::<cudaDeviceProp>(),
8usize,
concat!("Alignment of ", stringify!(cudaDeviceProp))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).name as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(name)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).uuid as *const _ as usize },
256usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(uuid)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).luid as *const _ as usize },
272usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(luid)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).luidDeviceNodeMask as *const _ as usize
},
280usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(luidDeviceNodeMask)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).totalGlobalMem as *const _ as usize },
288usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(totalGlobalMem)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).sharedMemPerBlock as *const _ as usize
},
296usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(sharedMemPerBlock)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).regsPerBlock as *const _ as usize },
304usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(regsPerBlock)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).warpSize as *const _ as usize },
308usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(warpSize)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).memPitch as *const _ as usize },
312usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(memPitch)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxThreadsPerBlock as *const _ as usize
},
320usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxThreadsPerBlock)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxThreadsDim as *const _ as usize },
324usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxThreadsDim)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxGridSize as *const _ as usize },
336usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxGridSize)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).clockRate as *const _ as usize },
348usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(clockRate)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).totalConstMem as *const _ as usize },
352usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(totalConstMem)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).major as *const _ as usize },
360usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(major)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).minor as *const _ as usize },
364usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(minor)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).textureAlignment as *const _ as usize },
368usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(textureAlignment)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).texturePitchAlignment as *const _ as usize
},
376usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(texturePitchAlignment)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).deviceOverlap as *const _ as usize },
384usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(deviceOverlap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).multiProcessorCount as *const _ as usize
},
388usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(multiProcessorCount)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).kernelExecTimeoutEnabled as *const _ as usize
},
392usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(kernelExecTimeoutEnabled)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).integrated as *const _ as usize },
396usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(integrated)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).canMapHostMemory as *const _ as usize },
400usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(canMapHostMemory)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).computeMode as *const _ as usize },
404usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(computeMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture1D as *const _ as usize },
408usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture1D)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture1DMipmap as *const _ as usize
},
412usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture1DMipmap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture1DLinear as *const _ as usize
},
416usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture1DLinear)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture2D as *const _ as usize },
420usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture2D)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture2DMipmap as *const _ as usize
},
428usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture2DMipmap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture2DLinear as *const _ as usize
},
436usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture2DLinear)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture2DGather as *const _ as usize
},
448usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture2DGather)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture3D as *const _ as usize },
456usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture3D)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture3DAlt as *const _ as usize },
468usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture3DAlt)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTextureCubemap as *const _ as usize
},
480usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTextureCubemap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture1DLayered as *const _ as usize
},
484usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture1DLayered)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTexture2DLayered as *const _ as usize
},
492usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTexture2DLayered)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxTextureCubemapLayered as *const _ as usize
},
504usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxTextureCubemapLayered)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxSurface1D as *const _ as usize },
512usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurface1D)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxSurface2D as *const _ as usize },
516usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurface2D)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).maxSurface3D as *const _ as usize },
524usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurface3D)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxSurface1DLayered as *const _ as usize
},
536usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurface1DLayered)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxSurface2DLayered as *const _ as usize
},
544usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurface2DLayered)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxSurfaceCubemap as *const _ as usize
},
556usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurfaceCubemap)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxSurfaceCubemapLayered as *const _ as usize
},
560usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxSurfaceCubemapLayered)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).surfaceAlignment as *const _ as usize },
568usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(surfaceAlignment)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).concurrentKernels as *const _ as usize
},
576usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(concurrentKernels)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).ECCEnabled as *const _ as usize },
580usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(ECCEnabled)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).pciBusID as *const _ as usize },
584usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(pciBusID)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).pciDeviceID as *const _ as usize },
588usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(pciDeviceID)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).pciDomainID as *const _ as usize },
592usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(pciDomainID)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).tccDriver as *const _ as usize },
596usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(tccDriver)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).asyncEngineCount as *const _ as usize },
600usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(asyncEngineCount)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).unifiedAddressing as *const _ as usize
},
604usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(unifiedAddressing)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).memoryClockRate as *const _ as usize },
608usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(memoryClockRate)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).memoryBusWidth as *const _ as usize },
612usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(memoryBusWidth)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).l2CacheSize as *const _ as usize },
616usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(l2CacheSize)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).persistingL2CacheMaxSize as *const _ as usize
},
620usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(persistingL2CacheMaxSize)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxThreadsPerMultiProcessor as *const _
as usize
},
624usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxThreadsPerMultiProcessor)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).streamPrioritiesSupported as *const _
as usize
},
628usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(streamPrioritiesSupported)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).globalL1CacheSupported as *const _ as usize
},
632usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(globalL1CacheSupported)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).localL1CacheSupported as *const _ as usize
},
636usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(localL1CacheSupported)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).sharedMemPerMultiprocessor as *const _
as usize
},
640usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(sharedMemPerMultiprocessor)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).regsPerMultiprocessor as *const _ as usize
},
648usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(regsPerMultiprocessor)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).managedMemory as *const _ as usize },
652usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(managedMemory)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaDeviceProp>())).isMultiGpuBoard as *const _ as usize },
656usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(isMultiGpuBoard)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).multiGpuBoardGroupID as *const _ as usize
},
660usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(multiGpuBoardGroupID)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).hostNativeAtomicSupported as *const _
as usize
},
664usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(hostNativeAtomicSupported)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).singleToDoublePrecisionPerfRatio as *const _
as usize
},
668usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(singleToDoublePrecisionPerfRatio)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).pageableMemoryAccess as *const _ as usize
},
672usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(pageableMemoryAccess)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).concurrentManagedAccess as *const _ as usize
},
676usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(concurrentManagedAccess)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).computePreemptionSupported as *const _
as usize
},
680usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(computePreemptionSupported)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).canUseHostPointerForRegisteredMem as *const _
as usize
},
684usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(canUseHostPointerForRegisteredMem)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).cooperativeLaunch as *const _ as usize
},
688usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(cooperativeLaunch)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).cooperativeMultiDeviceLaunch as *const _
as usize
},
692usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(cooperativeMultiDeviceLaunch)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).sharedMemPerBlockOptin as *const _ as usize
},
696usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(sharedMemPerBlockOptin)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).pageableMemoryAccessUsesHostPageTables
as *const _ as usize
},
704usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(pageableMemoryAccessUsesHostPageTables)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).directManagedMemAccessFromHost as *const _
as usize
},
708usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(directManagedMemAccessFromHost)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).maxBlocksPerMultiProcessor as *const _
as usize
},
712usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(maxBlocksPerMultiProcessor)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).accessPolicyMaxWindowSize as *const _
as usize
},
716usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(accessPolicyMaxWindowSize)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaDeviceProp>())).reservedSharedMemPerBlock as *const _
as usize
},
720usize,
concat!(
"Offset of field: ",
stringify!(cudaDeviceProp),
"::",
stringify!(reservedSharedMemPerBlock)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaIpcEventHandle_st {
pub reserved: [::libc::c_char; 64usize],
}
#[test]
fn bindgen_test_layout_cudaIpcEventHandle_st() {
assert_eq!(
::std::mem::size_of::<cudaIpcEventHandle_st>(),
64usize,
concat!("Size of: ", stringify!(cudaIpcEventHandle_st))
);
assert_eq!(
::std::mem::align_of::<cudaIpcEventHandle_st>(),
1usize,
concat!("Alignment of ", stringify!(cudaIpcEventHandle_st))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaIpcEventHandle_st>())).reserved as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaIpcEventHandle_st),
"::",
stringify!(reserved)
)
);
}
pub type cudaIpcEventHandle_t = cudaIpcEventHandle_st;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaIpcMemHandle_st {
pub reserved: [::libc::c_char; 64usize],
}
#[test]
fn bindgen_test_layout_cudaIpcMemHandle_st() {
assert_eq!(
::std::mem::size_of::<cudaIpcMemHandle_st>(),
64usize,
concat!("Size of: ", stringify!(cudaIpcMemHandle_st))
);
assert_eq!(
::std::mem::align_of::<cudaIpcMemHandle_st>(),
1usize,
concat!("Alignment of ", stringify!(cudaIpcMemHandle_st))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaIpcMemHandle_st>())).reserved as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaIpcMemHandle_st),
"::",
stringify!(reserved)
)
);
}
pub type cudaIpcMemHandle_t = cudaIpcMemHandle_st;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaExternalMemoryHandleType {
cudaExternalMemoryHandleTypeOpaqueFd = 1,
cudaExternalMemoryHandleTypeOpaqueWin32 = 2,
cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3,
cudaExternalMemoryHandleTypeD3D12Heap = 4,
cudaExternalMemoryHandleTypeD3D12Resource = 5,
cudaExternalMemoryHandleTypeD3D11Resource = 6,
cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7,
cudaExternalMemoryHandleTypeNvSciBuf = 8,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalMemoryHandleDesc {
pub type_: cudaExternalMemoryHandleType,
pub handle: cudaExternalMemoryHandleDesc__bindgen_ty_1,
pub size: ::libc::c_ulonglong,
pub flags: ::libc::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaExternalMemoryHandleDesc__bindgen_ty_1 {
pub fd: ::libc::c_int,
pub win32: cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1,
pub nvSciBufObject: *const ::libc::c_void,
_bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1 {
pub handle: *mut ::libc::c_void,
pub name: *const ::libc::c_void,
}
#[test]
fn bindgen_test_layout_cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1>(),
16usize,
concat!(
"Size of: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1>()))
.handle as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(handle)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1>()))
.name as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(name)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalMemoryHandleDesc__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalMemoryHandleDesc__bindgen_ty_1>(),
16usize,
concat!(
"Size of: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalMemoryHandleDesc__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc__bindgen_ty_1>())).fd as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1),
"::",
stringify!(fd)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc__bindgen_ty_1>())).win32 as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1),
"::",
stringify!(win32)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc__bindgen_ty_1>())).nvSciBufObject
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc__bindgen_ty_1),
"::",
stringify!(nvSciBufObject)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalMemoryHandleDesc() {
assert_eq!(
::std::mem::size_of::<cudaExternalMemoryHandleDesc>(),
40usize,
concat!("Size of: ", stringify!(cudaExternalMemoryHandleDesc))
);
assert_eq!(
::std::mem::align_of::<cudaExternalMemoryHandleDesc>(),
8usize,
concat!("Alignment of ", stringify!(cudaExternalMemoryHandleDesc))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc>())).type_ as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc>())).handle as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc),
"::",
stringify!(handle)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc>())).size as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryHandleDesc>())).flags as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryHandleDesc),
"::",
stringify!(flags)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalMemoryBufferDesc {
pub offset: ::libc::c_ulonglong,
pub size: ::libc::c_ulonglong,
pub flags: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_cudaExternalMemoryBufferDesc() {
assert_eq!(
::std::mem::size_of::<cudaExternalMemoryBufferDesc>(),
24usize,
concat!("Size of: ", stringify!(cudaExternalMemoryBufferDesc))
);
assert_eq!(
::std::mem::align_of::<cudaExternalMemoryBufferDesc>(),
8usize,
concat!("Alignment of ", stringify!(cudaExternalMemoryBufferDesc))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryBufferDesc>())).offset as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryBufferDesc),
"::",
stringify!(offset)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryBufferDesc>())).size as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryBufferDesc),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryBufferDesc>())).flags as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryBufferDesc),
"::",
stringify!(flags)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalMemoryMipmappedArrayDesc {
pub offset: ::libc::c_ulonglong,
pub formatDesc: cudaChannelFormatDesc,
pub extent: cudaExtent,
pub flags: ::libc::c_uint,
pub numLevels: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_cudaExternalMemoryMipmappedArrayDesc() {
assert_eq!(
::std::mem::size_of::<cudaExternalMemoryMipmappedArrayDesc>(),
64usize,
concat!(
"Size of: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalMemoryMipmappedArrayDesc>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalMemoryMipmappedArrayDesc)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryMipmappedArrayDesc>())).offset as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc),
"::",
stringify!(offset)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryMipmappedArrayDesc>())).formatDesc as *const _
as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc),
"::",
stringify!(formatDesc)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryMipmappedArrayDesc>())).extent as *const _
as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc),
"::",
stringify!(extent)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryMipmappedArrayDesc>())).flags as *const _
as usize
},
56usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc),
"::",
stringify!(flags)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalMemoryMipmappedArrayDesc>())).numLevels as *const _
as usize
},
60usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalMemoryMipmappedArrayDesc),
"::",
stringify!(numLevels)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaExternalSemaphoreHandleType {
cudaExternalSemaphoreHandleTypeOpaqueFd = 1,
cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2,
cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3,
cudaExternalSemaphoreHandleTypeD3D12Fence = 4,
cudaExternalSemaphoreHandleTypeD3D11Fence = 5,
cudaExternalSemaphoreHandleTypeNvSciSync = 6,
cudaExternalSemaphoreHandleTypeKeyedMutex = 7,
cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalSemaphoreHandleDesc {
pub type_: cudaExternalSemaphoreHandleType,
pub handle: cudaExternalSemaphoreHandleDesc__bindgen_ty_1,
pub flags: ::libc::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaExternalSemaphoreHandleDesc__bindgen_ty_1 {
pub fd: ::libc::c_int,
pub win32: cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1,
pub nvSciSyncObj: *const ::libc::c_void,
_bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1 {
pub handle: *mut ::libc::c_void,
pub name: *const ::libc::c_void,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1>(),
16usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1>()))
.handle as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(handle)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1>()))
.name as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(name)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreHandleDesc__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1>(),
16usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1>())).fd as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1),
"::",
stringify!(fd)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1>())).win32
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1),
"::",
stringify!(win32)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc__bindgen_ty_1>())).nvSciSyncObj
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc__bindgen_ty_1),
"::",
stringify!(nvSciSyncObj)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreHandleDesc() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreHandleDesc>(),
32usize,
concat!("Size of: ", stringify!(cudaExternalSemaphoreHandleDesc))
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreHandleDesc>(),
8usize,
concat!("Alignment of ", stringify!(cudaExternalSemaphoreHandleDesc))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc>())).type_ as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc>())).handle as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc),
"::",
stringify!(handle)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreHandleDesc>())).flags as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreHandleDesc),
"::",
stringify!(flags)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalSemaphoreSignalParams {
pub params: cudaExternalSemaphoreSignalParams__bindgen_ty_1,
pub flags: ::libc::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalSemaphoreSignalParams__bindgen_ty_1 {
pub fence: cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1,
pub nvSciSync: cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2,
pub keyedMutex: cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1 {
pub value: ::libc::c_ulonglong,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1>(
)))
.value as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(value)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2 {
pub fence: *mut ::libc::c_void,
pub reserved: ::libc::c_ulonglong,
_bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2>(
)))
.fence as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2),
"::",
stringify!(fence)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2>(
)))
.reserved as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_2),
"::",
stringify!(reserved)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3 {
pub key: ::libc::c_ulonglong,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3>(
)))
.key as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(key)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreSignalParams__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1>(),
24usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreSignalParams__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1>())).fence
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1),
"::",
stringify!(fence)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1>())).nvSciSync
as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1),
"::",
stringify!(nvSciSync)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams__bindgen_ty_1>())).keyedMutex
as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams__bindgen_ty_1),
"::",
stringify!(keyedMutex)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreSignalParams() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreSignalParams>(),
32usize,
concat!("Size of: ", stringify!(cudaExternalSemaphoreSignalParams))
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreSignalParams>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreSignalParams)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams>())).params as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams),
"::",
stringify!(params)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreSignalParams>())).flags as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreSignalParams),
"::",
stringify!(flags)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalSemaphoreWaitParams {
pub params: cudaExternalSemaphoreWaitParams__bindgen_ty_1,
pub flags: ::libc::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudaExternalSemaphoreWaitParams__bindgen_ty_1 {
pub fence: cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1,
pub nvSciSync: cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2,
pub keyedMutex: cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1 {
pub value: ::libc::c_ulonglong,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1>()))
.value as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_1),
"::",
stringify!(value)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2 {
pub fence: *mut ::libc::c_void,
pub reserved: ::libc::c_ulonglong,
_bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2>()))
.fence as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2),
"::",
stringify!(fence)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2>()))
.reserved as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_2),
"::",
stringify!(reserved)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3 {
pub key: ::libc::c_ulonglong,
pub timeoutMs: ::libc::c_uint,
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3>(),
16usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3>()))
.key as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(key)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3>()))
.timeoutMs as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1__bindgen_ty_3),
"::",
stringify!(timeoutMs)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreWaitParams__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1>(),
32usize,
concat!(
"Size of: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1)
)
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreWaitParams__bindgen_ty_1>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1>())).fence
as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1),
"::",
stringify!(fence)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1>())).nvSciSync
as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1),
"::",
stringify!(nvSciSync)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams__bindgen_ty_1>())).keyedMutex
as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams__bindgen_ty_1),
"::",
stringify!(keyedMutex)
)
);
}
#[test]
fn bindgen_test_layout_cudaExternalSemaphoreWaitParams() {
assert_eq!(
::std::mem::size_of::<cudaExternalSemaphoreWaitParams>(),
40usize,
concat!("Size of: ", stringify!(cudaExternalSemaphoreWaitParams))
);
assert_eq!(
::std::mem::align_of::<cudaExternalSemaphoreWaitParams>(),
8usize,
concat!("Alignment of ", stringify!(cudaExternalSemaphoreWaitParams))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams>())).params as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams),
"::",
stringify!(params)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaExternalSemaphoreWaitParams>())).flags as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaExternalSemaphoreWaitParams),
"::",
stringify!(flags)
)
);
}
pub use self::cudaError as cudaError_t;
#[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 CUevent_st {
_unused: [u8; 0],
}
pub type cudaEvent_t = *mut CUevent_st;
pub type cudaGraphicsResource_t = *mut cudaGraphicsResource;
pub use self::cudaOutputMode as cudaOutputMode_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUexternalMemory_st {
_unused: [u8; 0],
}
pub type cudaExternalMemory_t = *mut CUexternalMemory_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUexternalSemaphore_st {
_unused: [u8; 0],
}
pub type cudaExternalSemaphore_t = *mut CUexternalSemaphore_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUgraph_st {
_unused: [u8; 0],
}
pub type cudaGraph_t = *mut CUgraph_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUgraphNode_st {
_unused: [u8; 0],
}
pub type cudaGraphNode_t = *mut CUgraphNode_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUfunc_st {
_unused: [u8; 0],
}
pub type cudaFunction_t = *mut CUfunc_st;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaCGScope {
cudaCGScopeInvalid = 0,
cudaCGScopeGrid = 1,
cudaCGScopeMultiGrid = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaLaunchParams {
pub func: *mut ::libc::c_void,
pub gridDim: dim3,
pub blockDim: dim3,
pub args: *mut *mut ::libc::c_void,
pub sharedMem: usize,
pub stream: cudaStream_t,
}
#[test]
fn bindgen_test_layout_cudaLaunchParams() {
assert_eq!(
::std::mem::size_of::<cudaLaunchParams>(),
56usize,
concat!("Size of: ", stringify!(cudaLaunchParams))
);
assert_eq!(
::std::mem::align_of::<cudaLaunchParams>(),
8usize,
concat!("Alignment of ", stringify!(cudaLaunchParams))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).func as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(func)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).gridDim as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(gridDim)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).blockDim as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(blockDim)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).args as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(args)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).sharedMem as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(sharedMem)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaLaunchParams>())).stream as *const _ as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(cudaLaunchParams),
"::",
stringify!(stream)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaKernelNodeParams {
pub func: *mut ::libc::c_void,
pub gridDim: dim3,
pub blockDim: dim3,
pub sharedMemBytes: ::libc::c_uint,
pub kernelParams: *mut *mut ::libc::c_void,
pub extra: *mut *mut ::libc::c_void,
}
#[test]
fn bindgen_test_layout_cudaKernelNodeParams() {
assert_eq!(
::std::mem::size_of::<cudaKernelNodeParams>(),
56usize,
concat!("Size of: ", stringify!(cudaKernelNodeParams))
);
assert_eq!(
::std::mem::align_of::<cudaKernelNodeParams>(),
8usize,
concat!("Alignment of ", stringify!(cudaKernelNodeParams))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaKernelNodeParams>())).func as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(func)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaKernelNodeParams>())).gridDim as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(gridDim)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaKernelNodeParams>())).blockDim as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(blockDim)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaKernelNodeParams>())).sharedMemBytes as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(sharedMemBytes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaKernelNodeParams>())).kernelParams as *const _ as usize
},
40usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(kernelParams)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaKernelNodeParams>())).extra as *const _ as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(cudaKernelNodeParams),
"::",
stringify!(extra)
)
);
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaGraphNodeType {
cudaGraphNodeTypeKernel = 0,
cudaGraphNodeTypeMemcpy = 1,
cudaGraphNodeTypeMemset = 2,
cudaGraphNodeTypeHost = 3,
cudaGraphNodeTypeGraph = 4,
cudaGraphNodeTypeEmpty = 5,
cudaGraphNodeTypeCount = 6,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUgraphExec_st {
_unused: [u8; 0],
}
pub type cudaGraphExec_t = *mut CUgraphExec_st;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaGraphExecUpdateResult {
cudaGraphExecUpdateSuccess = 0,
cudaGraphExecUpdateError = 1,
cudaGraphExecUpdateErrorTopologyChanged = 2,
cudaGraphExecUpdateErrorNodeTypeChanged = 3,
cudaGraphExecUpdateErrorFunctionChanged = 4,
cudaGraphExecUpdateErrorParametersChanged = 5,
cudaGraphExecUpdateErrorNotSupported = 6,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaSurfaceBoundaryMode {
cudaBoundaryModeZero = 0,
cudaBoundaryModeClamp = 1,
cudaBoundaryModeTrap = 2,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaSurfaceFormatMode {
cudaFormatModeForced = 0,
cudaFormatModeAuto = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct surfaceReference {
pub channelDesc: cudaChannelFormatDesc,
}
#[test]
fn bindgen_test_layout_surfaceReference() {
assert_eq!(
::std::mem::size_of::<surfaceReference>(),
20usize,
concat!("Size of: ", stringify!(surfaceReference))
);
assert_eq!(
::std::mem::align_of::<surfaceReference>(),
4usize,
concat!("Alignment of ", stringify!(surfaceReference))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<surfaceReference>())).channelDesc as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(surfaceReference),
"::",
stringify!(channelDesc)
)
);
}
pub type cudaSurfaceObject_t = ::libc::c_ulonglong;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaTextureAddressMode {
cudaAddressModeWrap = 0,
cudaAddressModeClamp = 1,
cudaAddressModeMirror = 2,
cudaAddressModeBorder = 3,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaTextureFilterMode {
cudaFilterModePoint = 0,
cudaFilterModeLinear = 1,
}
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum cudaTextureReadMode {
cudaReadModeElementType = 0,
cudaReadModeNormalizedFloat = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct textureReference {
pub normalized: ::libc::c_int,
pub filterMode: cudaTextureFilterMode,
pub addressMode: [cudaTextureAddressMode; 3usize],
pub channelDesc: cudaChannelFormatDesc,
pub sRGB: ::libc::c_int,
pub maxAnisotropy: ::libc::c_uint,
pub mipmapFilterMode: cudaTextureFilterMode,
pub mipmapLevelBias: f32,
pub minMipmapLevelClamp: f32,
pub maxMipmapLevelClamp: f32,
pub disableTrilinearOptimization: ::libc::c_int,
pub __cudaReserved: [::libc::c_int; 14usize],
}
#[test]
fn bindgen_test_layout_textureReference() {
assert_eq!(
::std::mem::size_of::<textureReference>(),
124usize,
concat!("Size of: ", stringify!(textureReference))
);
assert_eq!(
::std::mem::align_of::<textureReference>(),
4usize,
concat!("Alignment of ", stringify!(textureReference))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).normalized as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(normalized)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).filterMode as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(filterMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).addressMode as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(addressMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).channelDesc as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(channelDesc)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).sRGB as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(sRGB)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).maxAnisotropy as *const _ as usize },
44usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(maxAnisotropy)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<textureReference>())).mipmapFilterMode as *const _ as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(mipmapFilterMode)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<textureReference>())).mipmapLevelBias as *const _ as usize
},
52usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(mipmapLevelBias)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<textureReference>())).minMipmapLevelClamp as *const _ as usize
},
56usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(minMipmapLevelClamp)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<textureReference>())).maxMipmapLevelClamp as *const _ as usize
},
60usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(maxMipmapLevelClamp)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<textureReference>())).disableTrilinearOptimization as *const _
as usize
},
64usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(disableTrilinearOptimization)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<textureReference>())).__cudaReserved as *const _ as usize },
68usize,
concat!(
"Offset of field: ",
stringify!(textureReference),
"::",
stringify!(__cudaReserved)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudaTextureDesc {
pub addressMode: [cudaTextureAddressMode; 3usize],
pub filterMode: cudaTextureFilterMode,
pub readMode: cudaTextureReadMode,
pub sRGB: ::libc::c_int,
pub borderColor: [f32; 4usize],
pub normalizedCoords: ::libc::c_int,
pub maxAnisotropy: ::libc::c_uint,
pub mipmapFilterMode: cudaTextureFilterMode,
pub mipmapLevelBias: f32,
pub minMipmapLevelClamp: f32,
pub maxMipmapLevelClamp: f32,
pub disableTrilinearOptimization: ::libc::c_int,
}
#[test]
fn bindgen_test_layout_cudaTextureDesc() {
assert_eq!(
::std::mem::size_of::<cudaTextureDesc>(),
68usize,
concat!("Size of: ", stringify!(cudaTextureDesc))
);
assert_eq!(
::std::mem::align_of::<cudaTextureDesc>(),
4usize,
concat!("Alignment of ", stringify!(cudaTextureDesc))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).addressMode as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(addressMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).filterMode as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(filterMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).readMode as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(readMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).sRGB as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(sRGB)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).borderColor as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(borderColor)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaTextureDesc>())).normalizedCoords as *const _ as usize
},
40usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(normalizedCoords)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).maxAnisotropy as *const _ as usize },
44usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(maxAnisotropy)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaTextureDesc>())).mipmapFilterMode as *const _ as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(mipmapFilterMode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudaTextureDesc>())).mipmapLevelBias as *const _ as usize },
52usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(mipmapLevelBias)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaTextureDesc>())).minMipmapLevelClamp as *const _ as usize
},
56usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(minMipmapLevelClamp)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaTextureDesc>())).maxMipmapLevelClamp as *const _ as usize
},
60usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(maxMipmapLevelClamp)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudaTextureDesc>())).disableTrilinearOptimization as *const _
as usize
},
64usize,
concat!(
"Offset of field: ",
stringify!(cudaTextureDesc),
"::",
stringify!(disableTrilinearOptimization)
)
);
}
pub type cudaTextureObject_t = ::libc::c_ulonglong;
#[repr(u32)]
#[non_exhaustive]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
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;
pub const libraryPropertyType_t_MAJOR_VERSION: libraryPropertyType_t = 0;
pub const libraryPropertyType_t_MINOR_VERSION: libraryPropertyType_t = 1;
pub const libraryPropertyType_t_PATCH_LEVEL: libraryPropertyType_t = 2;
pub type libraryPropertyType_t = u32;
pub use self::libraryPropertyType_t as libraryPropertyType;
extern "C" {
pub fn cudaDeviceReset() -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceSynchronize() -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceSetLimit(limit: cudaLimit, value: usize) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetLimit(pValue: *mut usize, limit: cudaLimit) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetCacheConfig(pCacheConfig: *mut cudaFuncCache) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetStreamPriorityRange(
leastPriority: *mut ::libc::c_int,
greatestPriority: *mut ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceSetCacheConfig(cacheConfig: cudaFuncCache) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetSharedMemConfig(pConfig: *mut cudaSharedMemConfig) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceSetSharedMemConfig(config: cudaSharedMemConfig) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetByPCIBusId(
device: *mut ::libc::c_int,
pciBusId: *const ::libc::c_char,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetPCIBusId(
pciBusId: *mut ::libc::c_char,
len: ::libc::c_int,
device: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaIpcGetEventHandle(
handle: *mut cudaIpcEventHandle_t,
event: cudaEvent_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaIpcOpenEventHandle(
event: *mut cudaEvent_t,
handle: cudaIpcEventHandle_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaIpcGetMemHandle(
handle: *mut cudaIpcMemHandle_t,
devPtr: *mut ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaIpcOpenMemHandle(
devPtr: *mut *mut ::libc::c_void,
handle: cudaIpcMemHandle_t,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaIpcCloseMemHandle(devPtr: *mut ::libc::c_void) -> cudaError_t;
}
extern "C" {
pub fn cudaThreadExit() -> cudaError_t;
}
extern "C" {
pub fn cudaThreadSynchronize() -> cudaError_t;
}
extern "C" {
pub fn cudaThreadSetLimit(limit: cudaLimit, value: usize) -> cudaError_t;
}
extern "C" {
pub fn cudaThreadGetLimit(pValue: *mut usize, limit: cudaLimit) -> cudaError_t;
}
extern "C" {
pub fn cudaThreadGetCacheConfig(pCacheConfig: *mut cudaFuncCache) -> cudaError_t;
}
extern "C" {
pub fn cudaThreadSetCacheConfig(cacheConfig: cudaFuncCache) -> cudaError_t;
}
extern "C" {
pub fn cudaGetLastError() -> cudaError_t;
}
extern "C" {
pub fn cudaPeekAtLastError() -> cudaError_t;
}
extern "C" {
pub fn cudaGetErrorName(error: cudaError_t) -> *const ::libc::c_char;
}
extern "C" {
pub fn cudaGetErrorString(error: cudaError_t) -> *const ::libc::c_char;
}
extern "C" {
pub fn cudaGetDeviceCount(count: *mut ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaGetDeviceProperties(prop: *mut cudaDeviceProp, device: ::libc::c_int)
-> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetAttribute(
value: *mut ::libc::c_int,
attr: cudaDeviceAttr,
device: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetNvSciSyncAttributes(
nvSciSyncAttrList: *mut ::libc::c_void,
device: ::libc::c_int,
flags: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceGetP2PAttribute(
value: *mut ::libc::c_int,
attr: cudaDeviceP2PAttr,
srcDevice: ::libc::c_int,
dstDevice: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaChooseDevice(device: *mut ::libc::c_int, prop: *const cudaDeviceProp)
-> cudaError_t;
}
extern "C" {
pub fn cudaSetDevice(device: ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaGetDevice(device: *mut ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaSetValidDevices(device_arr: *mut ::libc::c_int, len: ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaSetDeviceFlags(flags: ::libc::c_uint) -> cudaError_t;
}
extern "C" {
pub fn cudaGetDeviceFlags(flags: *mut ::libc::c_uint) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamCreate(pStream: *mut cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamCreateWithFlags(
pStream: *mut cudaStream_t,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamCreateWithPriority(
pStream: *mut cudaStream_t,
flags: ::libc::c_uint,
priority: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamGetPriority(
hStream: cudaStream_t,
priority: *mut ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamGetFlags(hStream: cudaStream_t, flags: *mut ::libc::c_uint) -> cudaError_t;
}
extern "C" {
pub fn cudaCtxResetPersistingL2Cache() -> cudaError_t;
}
extern "C" {
pub fn cudaStreamCopyAttributes(dst: cudaStream_t, src: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamGetAttribute(
hStream: cudaStream_t,
attr: cudaStreamAttrID,
value_out: *mut cudaStreamAttrValue,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamSetAttribute(
hStream: cudaStream_t,
attr: cudaStreamAttrID,
value: *const cudaStreamAttrValue,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamDestroy(stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamWaitEvent(
stream: cudaStream_t,
event: cudaEvent_t,
flags: ::libc::c_uint,
) -> cudaError_t;
}
pub type cudaStreamCallback_t = ::std::option::Option<
unsafe extern "C" fn(stream: cudaStream_t, status: cudaError_t, userData: *mut ::libc::c_void),
>;
extern "C" {
pub fn cudaStreamAddCallback(
stream: cudaStream_t,
callback: cudaStreamCallback_t,
userData: *mut ::libc::c_void,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamSynchronize(stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamQuery(stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamAttachMemAsync(
stream: cudaStream_t,
devPtr: *mut ::libc::c_void,
length: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamBeginCapture(stream: cudaStream_t, mode: cudaStreamCaptureMode)
-> cudaError_t;
}
extern "C" {
pub fn cudaThreadExchangeStreamCaptureMode(mode: *mut cudaStreamCaptureMode) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamEndCapture(stream: cudaStream_t, pGraph: *mut cudaGraph_t) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamIsCapturing(
stream: cudaStream_t,
pCaptureStatus: *mut cudaStreamCaptureStatus,
) -> cudaError_t;
}
extern "C" {
pub fn cudaStreamGetCaptureInfo(
stream: cudaStream_t,
pCaptureStatus: *mut cudaStreamCaptureStatus,
pId: *mut ::libc::c_ulonglong,
) -> cudaError_t;
}
extern "C" {
pub fn cudaEventCreate(event: *mut cudaEvent_t) -> cudaError_t;
}
extern "C" {
pub fn cudaEventCreateWithFlags(event: *mut cudaEvent_t, flags: ::libc::c_uint) -> cudaError_t;
}
extern "C" {
pub fn cudaEventRecord(event: cudaEvent_t, stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaEventQuery(event: cudaEvent_t) -> cudaError_t;
}
extern "C" {
pub fn cudaEventSynchronize(event: cudaEvent_t) -> cudaError_t;
}
extern "C" {
pub fn cudaEventDestroy(event: cudaEvent_t) -> cudaError_t;
}
extern "C" {
pub fn cudaEventElapsedTime(ms: *mut f32, start: cudaEvent_t, end: cudaEvent_t) -> cudaError_t;
}
extern "C" {
pub fn cudaImportExternalMemory(
extMem_out: *mut cudaExternalMemory_t,
memHandleDesc: *const cudaExternalMemoryHandleDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaExternalMemoryGetMappedBuffer(
devPtr: *mut *mut ::libc::c_void,
extMem: cudaExternalMemory_t,
bufferDesc: *const cudaExternalMemoryBufferDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaExternalMemoryGetMappedMipmappedArray(
mipmap: *mut cudaMipmappedArray_t,
extMem: cudaExternalMemory_t,
mipmapDesc: *const cudaExternalMemoryMipmappedArrayDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDestroyExternalMemory(extMem: cudaExternalMemory_t) -> cudaError_t;
}
extern "C" {
pub fn cudaImportExternalSemaphore(
extSem_out: *mut cudaExternalSemaphore_t,
semHandleDesc: *const cudaExternalSemaphoreHandleDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaSignalExternalSemaphoresAsync(
extSemArray: *const cudaExternalSemaphore_t,
paramsArray: *const cudaExternalSemaphoreSignalParams,
numExtSems: ::libc::c_uint,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaWaitExternalSemaphoresAsync(
extSemArray: *const cudaExternalSemaphore_t,
paramsArray: *const cudaExternalSemaphoreWaitParams,
numExtSems: ::libc::c_uint,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDestroyExternalSemaphore(extSem: cudaExternalSemaphore_t) -> cudaError_t;
}
extern "C" {
pub fn cudaLaunchKernel(
func: *const ::libc::c_void,
gridDim: dim3,
blockDim: dim3,
args: *mut *mut ::libc::c_void,
sharedMem: usize,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaLaunchCooperativeKernel(
func: *const ::libc::c_void,
gridDim: dim3,
blockDim: dim3,
args: *mut *mut ::libc::c_void,
sharedMem: usize,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaLaunchCooperativeKernelMultiDevice(
launchParamsList: *mut cudaLaunchParams,
numDevices: ::libc::c_uint,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaFuncSetCacheConfig(
func: *const ::libc::c_void,
cacheConfig: cudaFuncCache,
) -> cudaError_t;
}
extern "C" {
pub fn cudaFuncSetSharedMemConfig(
func: *const ::libc::c_void,
config: cudaSharedMemConfig,
) -> cudaError_t;
}
extern "C" {
pub fn cudaFuncGetAttributes(
attr: *mut cudaFuncAttributes,
func: *const ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaFuncSetAttribute(
func: *const ::libc::c_void,
attr: cudaFuncAttribute,
value: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaSetDoubleForDevice(d: *mut f64) -> cudaError_t;
}
extern "C" {
pub fn cudaSetDoubleForHost(d: *mut f64) -> cudaError_t;
}
extern "C" {
pub fn cudaLaunchHostFunc(
stream: cudaStream_t,
fn_: cudaHostFn_t,
userData: *mut ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaOccupancyMaxActiveBlocksPerMultiprocessor(
numBlocks: *mut ::libc::c_int,
func: *const ::libc::c_void,
blockSize: ::libc::c_int,
dynamicSMemSize: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaOccupancyAvailableDynamicSMemPerBlock(
dynamicSmemSize: *mut usize,
func: *const ::libc::c_void,
numBlocks: ::libc::c_int,
blockSize: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(
numBlocks: *mut ::libc::c_int,
func: *const ::libc::c_void,
blockSize: ::libc::c_int,
dynamicSMemSize: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMallocManaged(
devPtr: *mut *mut ::libc::c_void,
size: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMalloc(devPtr: *mut *mut ::libc::c_void, size: usize) -> cudaError_t;
}
extern "C" {
pub fn cudaMallocHost(ptr: *mut *mut ::libc::c_void, size: usize) -> cudaError_t;
}
extern "C" {
pub fn cudaMallocPitch(
devPtr: *mut *mut ::libc::c_void,
pitch: *mut usize,
width: usize,
height: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMallocArray(
array: *mut cudaArray_t,
desc: *const cudaChannelFormatDesc,
width: usize,
height: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaFree(devPtr: *mut ::libc::c_void) -> cudaError_t;
}
extern "C" {
pub fn cudaFreeHost(ptr: *mut ::libc::c_void) -> cudaError_t;
}
extern "C" {
pub fn cudaFreeArray(array: cudaArray_t) -> cudaError_t;
}
extern "C" {
pub fn cudaFreeMipmappedArray(mipmappedArray: cudaMipmappedArray_t) -> cudaError_t;
}
extern "C" {
pub fn cudaHostAlloc(
pHost: *mut *mut ::libc::c_void,
size: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaHostRegister(
ptr: *mut ::libc::c_void,
size: usize,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaHostUnregister(ptr: *mut ::libc::c_void) -> cudaError_t;
}
extern "C" {
pub fn cudaHostGetDevicePointer(
pDevice: *mut *mut ::libc::c_void,
pHost: *mut ::libc::c_void,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaHostGetFlags(pFlags: *mut ::libc::c_uint, pHost: *mut ::libc::c_void)
-> cudaError_t;
}
extern "C" {
pub fn cudaMalloc3D(pitchedDevPtr: *mut cudaPitchedPtr, extent: cudaExtent) -> cudaError_t;
}
extern "C" {
pub fn cudaMalloc3DArray(
array: *mut cudaArray_t,
desc: *const cudaChannelFormatDesc,
extent: cudaExtent,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMallocMipmappedArray(
mipmappedArray: *mut cudaMipmappedArray_t,
desc: *const cudaChannelFormatDesc,
extent: cudaExtent,
numLevels: ::libc::c_uint,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetMipmappedArrayLevel(
levelArray: *mut cudaArray_t,
mipmappedArray: cudaMipmappedArray_const_t,
level: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy3D(p: *const cudaMemcpy3DParms) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy3DPeer(p: *const cudaMemcpy3DPeerParms) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy3DAsync(p: *const cudaMemcpy3DParms, stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy3DPeerAsync(
p: *const cudaMemcpy3DPeerParms,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemGetInfo(free: *mut usize, total: *mut usize) -> cudaError_t;
}
extern "C" {
pub fn cudaArrayGetInfo(
desc: *mut cudaChannelFormatDesc,
extent: *mut cudaExtent,
flags: *mut ::libc::c_uint,
array: cudaArray_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy(
dst: *mut ::libc::c_void,
src: *const ::libc::c_void,
count: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyPeer(
dst: *mut ::libc::c_void,
dstDevice: ::libc::c_int,
src: *const ::libc::c_void,
srcDevice: ::libc::c_int,
count: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2D(
dst: *mut ::libc::c_void,
dpitch: usize,
src: *const ::libc::c_void,
spitch: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DToArray(
dst: cudaArray_t,
wOffset: usize,
hOffset: usize,
src: *const ::libc::c_void,
spitch: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DFromArray(
dst: *mut ::libc::c_void,
dpitch: usize,
src: cudaArray_const_t,
wOffset: usize,
hOffset: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DArrayToArray(
dst: cudaArray_t,
wOffsetDst: usize,
hOffsetDst: usize,
src: cudaArray_const_t,
wOffsetSrc: usize,
hOffsetSrc: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyToSymbol(
symbol: *const ::libc::c_void,
src: *const ::libc::c_void,
count: usize,
offset: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyFromSymbol(
dst: *mut ::libc::c_void,
symbol: *const ::libc::c_void,
count: usize,
offset: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyAsync(
dst: *mut ::libc::c_void,
src: *const ::libc::c_void,
count: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyPeerAsync(
dst: *mut ::libc::c_void,
dstDevice: ::libc::c_int,
src: *const ::libc::c_void,
srcDevice: ::libc::c_int,
count: usize,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DAsync(
dst: *mut ::libc::c_void,
dpitch: usize,
src: *const ::libc::c_void,
spitch: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DToArrayAsync(
dst: cudaArray_t,
wOffset: usize,
hOffset: usize,
src: *const ::libc::c_void,
spitch: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpy2DFromArrayAsync(
dst: *mut ::libc::c_void,
dpitch: usize,
src: cudaArray_const_t,
wOffset: usize,
hOffset: usize,
width: usize,
height: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyToSymbolAsync(
symbol: *const ::libc::c_void,
src: *const ::libc::c_void,
count: usize,
offset: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyFromSymbolAsync(
dst: *mut ::libc::c_void,
symbol: *const ::libc::c_void,
count: usize,
offset: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemset(
devPtr: *mut ::libc::c_void,
value: ::libc::c_int,
count: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemset2D(
devPtr: *mut ::libc::c_void,
pitch: usize,
value: ::libc::c_int,
width: usize,
height: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemset3D(
pitchedDevPtr: cudaPitchedPtr,
value: ::libc::c_int,
extent: cudaExtent,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemsetAsync(
devPtr: *mut ::libc::c_void,
value: ::libc::c_int,
count: usize,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemset2DAsync(
devPtr: *mut ::libc::c_void,
pitch: usize,
value: ::libc::c_int,
width: usize,
height: usize,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemset3DAsync(
pitchedDevPtr: cudaPitchedPtr,
value: ::libc::c_int,
extent: cudaExtent,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetSymbolAddress(
devPtr: *mut *mut ::libc::c_void,
symbol: *const ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetSymbolSize(size: *mut usize, symbol: *const ::libc::c_void) -> cudaError_t;
}
extern "C" {
pub fn cudaMemPrefetchAsync(
devPtr: *const ::libc::c_void,
count: usize,
dstDevice: ::libc::c_int,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemAdvise(
devPtr: *const ::libc::c_void,
count: usize,
advice: cudaMemoryAdvise,
device: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemRangeGetAttribute(
data: *mut ::libc::c_void,
dataSize: usize,
attribute: cudaMemRangeAttribute,
devPtr: *const ::libc::c_void,
count: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemRangeGetAttributes(
data: *mut *mut ::libc::c_void,
dataSizes: *mut usize,
attributes: *mut cudaMemRangeAttribute,
numAttributes: usize,
devPtr: *const ::libc::c_void,
count: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyToArray(
dst: cudaArray_t,
wOffset: usize,
hOffset: usize,
src: *const ::libc::c_void,
count: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyFromArray(
dst: *mut ::libc::c_void,
src: cudaArray_const_t,
wOffset: usize,
hOffset: usize,
count: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyArrayToArray(
dst: cudaArray_t,
wOffsetDst: usize,
hOffsetDst: usize,
src: cudaArray_const_t,
wOffsetSrc: usize,
hOffsetSrc: usize,
count: usize,
kind: cudaMemcpyKind,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyToArrayAsync(
dst: cudaArray_t,
wOffset: usize,
hOffset: usize,
src: *const ::libc::c_void,
count: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaMemcpyFromArrayAsync(
dst: *mut ::libc::c_void,
src: cudaArray_const_t,
wOffset: usize,
hOffset: usize,
count: usize,
kind: cudaMemcpyKind,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaPointerGetAttributes(
attributes: *mut cudaPointerAttributes,
ptr: *const ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceCanAccessPeer(
canAccessPeer: *mut ::libc::c_int,
device: ::libc::c_int,
peerDevice: ::libc::c_int,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceEnablePeerAccess(
peerDevice: ::libc::c_int,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDeviceDisablePeerAccess(peerDevice: ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsUnregisterResource(resource: cudaGraphicsResource_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsResourceSetMapFlags(
resource: cudaGraphicsResource_t,
flags: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsMapResources(
count: ::libc::c_int,
resources: *mut cudaGraphicsResource_t,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsUnmapResources(
count: ::libc::c_int,
resources: *mut cudaGraphicsResource_t,
stream: cudaStream_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsResourceGetMappedPointer(
devPtr: *mut *mut ::libc::c_void,
size: *mut usize,
resource: cudaGraphicsResource_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsSubResourceGetMappedArray(
array: *mut cudaArray_t,
resource: cudaGraphicsResource_t,
arrayIndex: ::libc::c_uint,
mipLevel: ::libc::c_uint,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphicsResourceGetMappedMipmappedArray(
mipmappedArray: *mut cudaMipmappedArray_t,
resource: cudaGraphicsResource_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaBindTexture(
offset: *mut usize,
texref: *const textureReference,
devPtr: *const ::libc::c_void,
desc: *const cudaChannelFormatDesc,
size: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaBindTexture2D(
offset: *mut usize,
texref: *const textureReference,
devPtr: *const ::libc::c_void,
desc: *const cudaChannelFormatDesc,
width: usize,
height: usize,
pitch: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaBindTextureToArray(
texref: *const textureReference,
array: cudaArray_const_t,
desc: *const cudaChannelFormatDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaBindTextureToMipmappedArray(
texref: *const textureReference,
mipmappedArray: cudaMipmappedArray_const_t,
desc: *const cudaChannelFormatDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaUnbindTexture(texref: *const textureReference) -> cudaError_t;
}
extern "C" {
pub fn cudaGetTextureAlignmentOffset(
offset: *mut usize,
texref: *const textureReference,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetTextureReference(
texref: *mut *const textureReference,
symbol: *const ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaBindSurfaceToArray(
surfref: *const surfaceReference,
array: cudaArray_const_t,
desc: *const cudaChannelFormatDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetSurfaceReference(
surfref: *mut *const surfaceReference,
symbol: *const ::libc::c_void,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetChannelDesc(
desc: *mut cudaChannelFormatDesc,
array: cudaArray_const_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaCreateChannelDesc(
x: ::libc::c_int,
y: ::libc::c_int,
z: ::libc::c_int,
w: ::libc::c_int,
f: cudaChannelFormatKind,
) -> cudaChannelFormatDesc;
}
extern "C" {
pub fn cudaCreateTextureObject(
pTexObject: *mut cudaTextureObject_t,
pResDesc: *const cudaResourceDesc,
pTexDesc: *const cudaTextureDesc,
pResViewDesc: *const cudaResourceViewDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDestroyTextureObject(texObject: cudaTextureObject_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGetTextureObjectResourceDesc(
pResDesc: *mut cudaResourceDesc,
texObject: cudaTextureObject_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetTextureObjectTextureDesc(
pTexDesc: *mut cudaTextureDesc,
texObject: cudaTextureObject_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetTextureObjectResourceViewDesc(
pResViewDesc: *mut cudaResourceViewDesc,
texObject: cudaTextureObject_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaCreateSurfaceObject(
pSurfObject: *mut cudaSurfaceObject_t,
pResDesc: *const cudaResourceDesc,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDestroySurfaceObject(surfObject: cudaSurfaceObject_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGetSurfaceObjectResourceDesc(
pResDesc: *mut cudaResourceDesc,
surfObject: cudaSurfaceObject_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaDriverGetVersion(driverVersion: *mut ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaRuntimeGetVersion(runtimeVersion: *mut ::libc::c_int) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphCreate(pGraph: *mut cudaGraph_t, flags: ::libc::c_uint) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddKernelNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
pNodeParams: *const cudaKernelNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphKernelNodeGetParams(
node: cudaGraphNode_t,
pNodeParams: *mut cudaKernelNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphKernelNodeSetParams(
node: cudaGraphNode_t,
pNodeParams: *const cudaKernelNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphKernelNodeCopyAttributes(
hSrc: cudaGraphNode_t,
hDst: cudaGraphNode_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphKernelNodeGetAttribute(
hNode: cudaGraphNode_t,
attr: cudaKernelNodeAttrID,
value_out: *mut cudaKernelNodeAttrValue,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphKernelNodeSetAttribute(
hNode: cudaGraphNode_t,
attr: cudaKernelNodeAttrID,
value: *const cudaKernelNodeAttrValue,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddMemcpyNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
pCopyParams: *const cudaMemcpy3DParms,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphMemcpyNodeGetParams(
node: cudaGraphNode_t,
pNodeParams: *mut cudaMemcpy3DParms,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphMemcpyNodeSetParams(
node: cudaGraphNode_t,
pNodeParams: *const cudaMemcpy3DParms,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddMemsetNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
pMemsetParams: *const cudaMemsetParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphMemsetNodeGetParams(
node: cudaGraphNode_t,
pNodeParams: *mut cudaMemsetParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphMemsetNodeSetParams(
node: cudaGraphNode_t,
pNodeParams: *const cudaMemsetParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddHostNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
pNodeParams: *const cudaHostNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphHostNodeGetParams(
node: cudaGraphNode_t,
pNodeParams: *mut cudaHostNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphHostNodeSetParams(
node: cudaGraphNode_t,
pNodeParams: *const cudaHostNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddChildGraphNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
childGraph: cudaGraph_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphChildGraphNodeGetGraph(
node: cudaGraphNode_t,
pGraph: *mut cudaGraph_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddEmptyNode(
pGraphNode: *mut cudaGraphNode_t,
graph: cudaGraph_t,
pDependencies: *const cudaGraphNode_t,
numDependencies: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphClone(pGraphClone: *mut cudaGraph_t, originalGraph: cudaGraph_t)
-> cudaError_t;
}
extern "C" {
pub fn cudaGraphNodeFindInClone(
pNode: *mut cudaGraphNode_t,
originalNode: cudaGraphNode_t,
clonedGraph: cudaGraph_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphNodeGetType(
node: cudaGraphNode_t,
pType: *mut cudaGraphNodeType,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphGetNodes(
graph: cudaGraph_t,
nodes: *mut cudaGraphNode_t,
numNodes: *mut usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphGetRootNodes(
graph: cudaGraph_t,
pRootNodes: *mut cudaGraphNode_t,
pNumRootNodes: *mut usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphGetEdges(
graph: cudaGraph_t,
from: *mut cudaGraphNode_t,
to: *mut cudaGraphNode_t,
numEdges: *mut usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphNodeGetDependencies(
node: cudaGraphNode_t,
pDependencies: *mut cudaGraphNode_t,
pNumDependencies: *mut usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphNodeGetDependentNodes(
node: cudaGraphNode_t,
pDependentNodes: *mut cudaGraphNode_t,
pNumDependentNodes: *mut usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphAddDependencies(
graph: cudaGraph_t,
from: *const cudaGraphNode_t,
to: *const cudaGraphNode_t,
numDependencies: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphRemoveDependencies(
graph: cudaGraph_t,
from: *const cudaGraphNode_t,
to: *const cudaGraphNode_t,
numDependencies: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphDestroyNode(node: cudaGraphNode_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphInstantiate(
pGraphExec: *mut cudaGraphExec_t,
graph: cudaGraph_t,
pErrorNode: *mut cudaGraphNode_t,
pLogBuffer: *mut ::libc::c_char,
bufferSize: usize,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecKernelNodeSetParams(
hGraphExec: cudaGraphExec_t,
node: cudaGraphNode_t,
pNodeParams: *const cudaKernelNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecMemcpyNodeSetParams(
hGraphExec: cudaGraphExec_t,
node: cudaGraphNode_t,
pNodeParams: *const cudaMemcpy3DParms,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecMemsetNodeSetParams(
hGraphExec: cudaGraphExec_t,
node: cudaGraphNode_t,
pNodeParams: *const cudaMemsetParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecHostNodeSetParams(
hGraphExec: cudaGraphExec_t,
node: cudaGraphNode_t,
pNodeParams: *const cudaHostNodeParams,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecUpdate(
hGraphExec: cudaGraphExec_t,
hGraph: cudaGraph_t,
hErrorNode_out: *mut cudaGraphNode_t,
updateResult_out: *mut cudaGraphExecUpdateResult,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphLaunch(graphExec: cudaGraphExec_t, stream: cudaStream_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphExecDestroy(graphExec: cudaGraphExec_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGraphDestroy(graph: cudaGraph_t) -> cudaError_t;
}
extern "C" {
pub fn cudaGetExportTable(
ppExportTable: *mut *const ::libc::c_void,
pExportTableId: *const cudaUUID_t,
) -> cudaError_t;
}
extern "C" {
pub fn cudaGetFuncBySymbol(
functionPtr: *mut cudaFunction_t,
symbolPtr: *const ::libc::c_void,
) -> cudaError_t;
}
pub type __int32_t = ::libc::c_int;
pub type __uint32_t = ::libc::c_uint;
pub type __int64_t = ::libc::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnContext {
_unused: [u8; 0],
}
pub type cudnnHandle_t = *mut cudnnContext;
extern "C" {
pub fn cudnnGetVersion() -> usize;
}
extern "C" {
pub fn cudnnGetCudartVersion() -> usize;
}
pub const cudnnStatus_t_CUDNN_STATUS_SUCCESS: cudnnStatus_t = 0;
pub const cudnnStatus_t_CUDNN_STATUS_NOT_INITIALIZED: cudnnStatus_t = 1;
pub const cudnnStatus_t_CUDNN_STATUS_ALLOC_FAILED: cudnnStatus_t = 2;
pub const cudnnStatus_t_CUDNN_STATUS_BAD_PARAM: cudnnStatus_t = 3;
pub const cudnnStatus_t_CUDNN_STATUS_INTERNAL_ERROR: cudnnStatus_t = 4;
pub const cudnnStatus_t_CUDNN_STATUS_INVALID_VALUE: cudnnStatus_t = 5;
pub const cudnnStatus_t_CUDNN_STATUS_ARCH_MISMATCH: cudnnStatus_t = 6;
pub const cudnnStatus_t_CUDNN_STATUS_MAPPING_ERROR: cudnnStatus_t = 7;
pub const cudnnStatus_t_CUDNN_STATUS_EXECUTION_FAILED: cudnnStatus_t = 8;
pub const cudnnStatus_t_CUDNN_STATUS_NOT_SUPPORTED: cudnnStatus_t = 9;
pub const cudnnStatus_t_CUDNN_STATUS_LICENSE_ERROR: cudnnStatus_t = 10;
pub const cudnnStatus_t_CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING: cudnnStatus_t = 11;
pub const cudnnStatus_t_CUDNN_STATUS_RUNTIME_IN_PROGRESS: cudnnStatus_t = 12;
pub const cudnnStatus_t_CUDNN_STATUS_RUNTIME_FP_OVERFLOW: cudnnStatus_t = 13;
pub const cudnnStatus_t_CUDNN_STATUS_VERSION_MISMATCH: cudnnStatus_t = 14;
pub type cudnnStatus_t = u32;
extern "C" {
pub fn cudnnGetErrorString(status: cudnnStatus_t) -> *const ::libc::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnRuntimeTag_t {
_unused: [u8; 0],
}
pub const cudnnErrQueryMode_t_CUDNN_ERRQUERY_RAWCODE: cudnnErrQueryMode_t = 0;
pub const cudnnErrQueryMode_t_CUDNN_ERRQUERY_NONBLOCKING: cudnnErrQueryMode_t = 1;
pub const cudnnErrQueryMode_t_CUDNN_ERRQUERY_BLOCKING: cudnnErrQueryMode_t = 2;
pub type cudnnErrQueryMode_t = u32;
extern "C" {
pub fn cudnnQueryRuntimeError(
handle: cudnnHandle_t,
rstatus: *mut cudnnStatus_t,
mode: cudnnErrQueryMode_t,
tag: *mut cudnnRuntimeTag_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetProperty(type_: libraryPropertyType, value: *mut ::libc::c_int)
-> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreate(handle: *mut cudnnHandle_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroy(handle: cudnnHandle_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetStream(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetStream(handle: cudnnHandle_t, streamId: *mut cudaStream_t) -> cudnnStatus_t;
}
#[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;
pub const cudnnDataType_t_CUDNN_DATA_FLOAT: cudnnDataType_t = 0;
pub const cudnnDataType_t_CUDNN_DATA_DOUBLE: cudnnDataType_t = 1;
pub const cudnnDataType_t_CUDNN_DATA_HALF: cudnnDataType_t = 2;
pub const cudnnDataType_t_CUDNN_DATA_INT8: cudnnDataType_t = 3;
pub const cudnnDataType_t_CUDNN_DATA_INT32: cudnnDataType_t = 4;
pub const cudnnDataType_t_CUDNN_DATA_INT8x4: cudnnDataType_t = 5;
pub const cudnnDataType_t_CUDNN_DATA_UINT8: cudnnDataType_t = 6;
pub const cudnnDataType_t_CUDNN_DATA_UINT8x4: cudnnDataType_t = 7;
pub const cudnnDataType_t_CUDNN_DATA_INT8x32: cudnnDataType_t = 8;
pub type cudnnDataType_t = u32;
pub const cudnnMathType_t_CUDNN_DEFAULT_MATH: cudnnMathType_t = 0;
pub const cudnnMathType_t_CUDNN_TENSOR_OP_MATH: cudnnMathType_t = 1;
pub const cudnnMathType_t_CUDNN_TENSOR_OP_MATH_ALLOW_CONVERSION: cudnnMathType_t = 2;
pub const cudnnMathType_t_CUDNN_FMA_MATH: cudnnMathType_t = 3;
pub type cudnnMathType_t = u32;
pub const cudnnNanPropagation_t_CUDNN_NOT_PROPAGATE_NAN: cudnnNanPropagation_t = 0;
pub const cudnnNanPropagation_t_CUDNN_PROPAGATE_NAN: cudnnNanPropagation_t = 1;
pub type cudnnNanPropagation_t = u32;
pub const cudnnDeterminism_t_CUDNN_NON_DETERMINISTIC: cudnnDeterminism_t = 0;
pub const cudnnDeterminism_t_CUDNN_DETERMINISTIC: cudnnDeterminism_t = 1;
pub type cudnnDeterminism_t = u32;
extern "C" {
pub fn cudnnCreateTensorDescriptor(tensorDesc: *mut cudnnTensorDescriptor_t) -> cudnnStatus_t;
}
pub const cudnnTensorFormat_t_CUDNN_TENSOR_NCHW: cudnnTensorFormat_t = 0;
pub const cudnnTensorFormat_t_CUDNN_TENSOR_NHWC: cudnnTensorFormat_t = 1;
pub const cudnnTensorFormat_t_CUDNN_TENSOR_NCHW_VECT_C: cudnnTensorFormat_t = 2;
pub type cudnnTensorFormat_t = u32;
extern "C" {
pub fn cudnnSetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
n: ::libc::c_int,
c: ::libc::c_int,
h: ::libc::c_int,
w: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetTensor4dDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
n: ::libc::c_int,
c: ::libc::c_int,
h: ::libc::c_int,
w: ::libc::c_int,
nStride: ::libc::c_int,
cStride: ::libc::c_int,
hStride: ::libc::c_int,
wStride: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: *mut cudnnDataType_t,
n: *mut ::libc::c_int,
c: *mut ::libc::c_int,
h: *mut ::libc::c_int,
w: *mut ::libc::c_int,
nStride: *mut ::libc::c_int,
cStride: *mut ::libc::c_int,
hStride: *mut ::libc::c_int,
wStride: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::libc::c_int,
dimA: *const ::libc::c_int,
strideA: *const ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetTensorNdDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
nbDims: ::libc::c_int,
dimA: *const ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
nbDimsRequested: ::libc::c_int,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::libc::c_int,
dimA: *mut ::libc::c_int,
strideA: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetTensorSizeInBytes(
tensorDesc: cudnnTensorDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyTensorDescriptor(tensorDesc: cudnnTensorDescriptor_t) -> cudnnStatus_t;
}
pub const cudnnFoldingDirection_t_CUDNN_TRANSFORM_FOLD: cudnnFoldingDirection_t = 0;
pub const cudnnFoldingDirection_t_CUDNN_TRANSFORM_UNFOLD: cudnnFoldingDirection_t = 1;
pub type cudnnFoldingDirection_t = u32;
extern "C" {
pub fn cudnnInitTransformDest(
transformDesc: cudnnTensorTransformDescriptor_t,
srcDesc: cudnnTensorDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
destSizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateTensorTransformDescriptor(
transformDesc: *mut cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDims: u32,
destFormat: cudnnTensorFormat_t,
padBeforeA: *const i32,
padAfterA: *const i32,
foldA: *const u32,
direction: cudnnFoldingDirection_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDimsRequested: u32,
destFormat: *mut cudnnTensorFormat_t,
padBeforeA: *mut i32,
padAfterA: *mut i32,
foldA: *mut u32,
direction: *mut cudnnFoldingDirection_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnTransformTensor(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnTransformTensorEx(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::libc::c_void,
srcDesc: cudnnTensorDescriptor_t,
srcData: *const ::libc::c_void,
beta: *const ::libc::c_void,
destDesc: cudnnTensorDescriptor_t,
destData: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnAddTensor(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::libc::c_void,
beta: *const ::libc::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_ADD: cudnnOpTensorOp_t = 0;
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_MUL: cudnnOpTensorOp_t = 1;
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_MIN: cudnnOpTensorOp_t = 2;
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_MAX: cudnnOpTensorOp_t = 3;
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_SQRT: cudnnOpTensorOp_t = 4;
pub const cudnnOpTensorOp_t_CUDNN_OP_TENSOR_NOT: cudnnOpTensorOp_t = 5;
pub type cudnnOpTensorOp_t = u32;
extern "C" {
pub fn cudnnCreateOpTensorDescriptor(
opTensorDesc: *mut cudnnOpTensorDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: cudnnOpTensorOp_t,
opTensorCompType: cudnnDataType_t,
opTensorNanOpt: cudnnNanPropagation_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: *mut cudnnOpTensorOp_t,
opTensorCompType: *mut cudnnDataType_t,
opTensorNanOpt: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyOpTensorDescriptor(opTensorDesc: cudnnOpTensorDescriptor_t)
-> cudnnStatus_t;
}
extern "C" {
pub fn cudnnOpTensor(
handle: cudnnHandle_t,
opTensorDesc: cudnnOpTensorDescriptor_t,
alpha1: *const ::libc::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::libc::c_void,
alpha2: *const ::libc::c_void,
bDesc: cudnnTensorDescriptor_t,
B: *const ::libc::c_void,
beta: *const ::libc::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_ADD: cudnnReduceTensorOp_t = 0;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_MUL: cudnnReduceTensorOp_t = 1;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_MIN: cudnnReduceTensorOp_t = 2;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_MAX: cudnnReduceTensorOp_t = 3;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_AMAX: cudnnReduceTensorOp_t = 4;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_AVG: cudnnReduceTensorOp_t = 5;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_NORM1: cudnnReduceTensorOp_t = 6;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_NORM2: cudnnReduceTensorOp_t = 7;
pub const cudnnReduceTensorOp_t_CUDNN_REDUCE_TENSOR_MUL_NO_ZEROS: cudnnReduceTensorOp_t = 8;
pub type cudnnReduceTensorOp_t = u32;
pub const cudnnReduceTensorIndices_t_CUDNN_REDUCE_TENSOR_NO_INDICES: cudnnReduceTensorIndices_t = 0;
pub const cudnnReduceTensorIndices_t_CUDNN_REDUCE_TENSOR_FLATTENED_INDICES:
cudnnReduceTensorIndices_t = 1;
pub type cudnnReduceTensorIndices_t = u32;
pub const cudnnIndicesType_t_CUDNN_32BIT_INDICES: cudnnIndicesType_t = 0;
pub const cudnnIndicesType_t_CUDNN_64BIT_INDICES: cudnnIndicesType_t = 1;
pub const cudnnIndicesType_t_CUDNN_16BIT_INDICES: cudnnIndicesType_t = 2;
pub const cudnnIndicesType_t_CUDNN_8BIT_INDICES: cudnnIndicesType_t = 3;
pub type cudnnIndicesType_t = u32;
extern "C" {
pub fn cudnnCreateReduceTensorDescriptor(
reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: cudnnReduceTensorOp_t,
reduceTensorCompType: cudnnDataType_t,
reduceTensorNanOpt: cudnnNanPropagation_t,
reduceTensorIndices: cudnnReduceTensorIndices_t,
reduceTensorIndicesType: cudnnIndicesType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetReduceTensorDescriptor(
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;
}
extern "C" {
pub fn cudnnDestroyReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetReductionIndicesSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetReductionWorkspaceSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnReduceTensor(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
indices: *mut ::libc::c_void,
indicesSizeInBytes: usize,
workspace: *mut ::libc::c_void,
workspaceSizeInBytes: usize,
alpha: *const ::libc::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::libc::c_void,
beta: *const ::libc::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
valuePtr: *const ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnScaleTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
alpha: *const ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateFilterDescriptor(filterDesc: *mut cudnnFilterDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
k: ::libc::c_int,
c: ::libc::c_int,
h: ::libc::c_int,
w: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
k: *mut ::libc::c_int,
c: *mut ::libc::c_int,
h: *mut ::libc::c_int,
w: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
nbDims: ::libc::c_int,
filterDimA: *const ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
nbDimsRequested: ::libc::c_int,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
nbDims: *mut ::libc::c_int,
filterDimA: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFilterSizeInBytes(
filterDesc: cudnnFilterDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnTransformFilter(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::libc::c_void,
srcDesc: cudnnFilterDescriptor_t,
srcData: *const ::libc::c_void,
beta: *const ::libc::c_void,
destDesc: cudnnFilterDescriptor_t,
destData: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyFilterDescriptor(filterDesc: cudnnFilterDescriptor_t) -> cudnnStatus_t;
}
pub const cudnnSoftmaxAlgorithm_t_CUDNN_SOFTMAX_FAST: cudnnSoftmaxAlgorithm_t = 0;
pub const cudnnSoftmaxAlgorithm_t_CUDNN_SOFTMAX_ACCURATE: cudnnSoftmaxAlgorithm_t = 1;
pub const cudnnSoftmaxAlgorithm_t_CUDNN_SOFTMAX_LOG: cudnnSoftmaxAlgorithm_t = 2;
pub type cudnnSoftmaxAlgorithm_t = u32;
pub const cudnnSoftmaxMode_t_CUDNN_SOFTMAX_MODE_INSTANCE: cudnnSoftmaxMode_t = 0;
pub const cudnnSoftmaxMode_t_CUDNN_SOFTMAX_MODE_CHANNEL: cudnnSoftmaxMode_t = 1;
pub type cudnnSoftmaxMode_t = u32;
extern "C" {
pub fn cudnnSoftmaxForward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnPoolingMode_t_CUDNN_POOLING_MAX: cudnnPoolingMode_t = 0;
pub const cudnnPoolingMode_t_CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING: cudnnPoolingMode_t = 1;
pub const cudnnPoolingMode_t_CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING: cudnnPoolingMode_t = 2;
pub const cudnnPoolingMode_t_CUDNN_POOLING_MAX_DETERMINISTIC: cudnnPoolingMode_t = 3;
pub type cudnnPoolingMode_t = u32;
extern "C" {
pub fn cudnnCreatePoolingDescriptor(
poolingDesc: *mut cudnnPoolingDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
windowHeight: ::libc::c_int,
windowWidth: ::libc::c_int,
verticalPadding: ::libc::c_int,
horizontalPadding: ::libc::c_int,
verticalStride: ::libc::c_int,
horizontalStride: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
windowHeight: *mut ::libc::c_int,
windowWidth: *mut ::libc::c_int,
verticalPadding: *mut ::libc::c_int,
horizontalPadding: *mut ::libc::c_int,
verticalStride: *mut ::libc::c_int,
horizontalStride: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
nbDims: ::libc::c_int,
windowDimA: *const ::libc::c_int,
paddingA: *const ::libc::c_int,
strideA: *const ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
nbDimsRequested: ::libc::c_int,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
nbDims: *mut ::libc::c_int,
windowDimA: *mut ::libc::c_int,
paddingA: *mut ::libc::c_int,
strideA: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetPoolingNdForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
nbDims: ::libc::c_int,
outputTensorDimA: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetPooling2dForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
n: *mut ::libc::c_int,
c: *mut ::libc::c_int,
h: *mut ::libc::c_int,
w: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyPoolingDescriptor(poolingDesc: cudnnPoolingDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnPoolingForward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_SIGMOID: cudnnActivationMode_t = 0;
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_RELU: cudnnActivationMode_t = 1;
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_TANH: cudnnActivationMode_t = 2;
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_CLIPPED_RELU: cudnnActivationMode_t = 3;
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_ELU: cudnnActivationMode_t = 4;
pub const cudnnActivationMode_t_CUDNN_ACTIVATION_IDENTITY: cudnnActivationMode_t = 5;
pub type cudnnActivationMode_t = u32;
extern "C" {
pub fn cudnnCreateActivationDescriptor(
activationDesc: *mut cudnnActivationDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: cudnnActivationMode_t,
reluNanOpt: cudnnNanPropagation_t,
coef: f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: *mut cudnnActivationMode_t,
reluNanOpt: *mut cudnnNanPropagation_t,
coef: *mut f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnActivationForward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateLRNDescriptor(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t;
}
pub const cudnnLRNMode_t_CUDNN_LRN_CROSS_CHANNEL_DIM1: cudnnLRNMode_t = 0;
pub type cudnnLRNMode_t = u32;
extern "C" {
pub fn cudnnSetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: ::libc::c_uint,
lrnAlpha: f64,
lrnBeta: f64,
lrnK: f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: *mut ::libc::c_uint,
lrnAlpha: *mut f64,
lrnBeta: *mut f64,
lrnK: *mut f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyLRNDescriptor(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnLRNCrossChannelForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnDivNormMode_t_CUDNN_DIVNORM_PRECOMPUTED_MEANS: cudnnDivNormMode_t = 0;
pub type cudnnDivNormMode_t = u32;
extern "C" {
pub fn cudnnDivisiveNormalizationForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
means: *const ::libc::c_void,
temp: *mut ::libc::c_void,
temp2: *mut ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnBatchNormMode_t_CUDNN_BATCHNORM_PER_ACTIVATION: cudnnBatchNormMode_t = 0;
pub const cudnnBatchNormMode_t_CUDNN_BATCHNORM_SPATIAL: cudnnBatchNormMode_t = 1;
pub const cudnnBatchNormMode_t_CUDNN_BATCHNORM_SPATIAL_PERSISTENT: cudnnBatchNormMode_t = 2;
pub type cudnnBatchNormMode_t = u32;
extern "C" {
pub fn cudnnDeriveBNTensorDescriptor(
derivedBnDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnBatchNormMode_t,
) -> cudnnStatus_t;
}
pub const cudnnBatchNormOps_t_CUDNN_BATCHNORM_OPS_BN: cudnnBatchNormOps_t = 0;
pub const cudnnBatchNormOps_t_CUDNN_BATCHNORM_OPS_BN_ACTIVATION: cudnnBatchNormOps_t = 1;
pub const cudnnBatchNormOps_t_CUDNN_BATCHNORM_OPS_BN_ADD_ACTIVATION: cudnnBatchNormOps_t = 2;
pub type cudnnBatchNormOps_t = u32;
extern "C" {
pub fn cudnnBatchNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::libc::c_void,
beta: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::libc::c_void,
bnBias: *const ::libc::c_void,
estimatedMean: *const ::libc::c_void,
estimatedVariance: *const ::libc::c_void,
epsilon: f64,
) -> cudnnStatus_t;
}
pub const cudnnNormMode_t_CUDNN_NORM_PER_ACTIVATION: cudnnNormMode_t = 0;
pub const cudnnNormMode_t_CUDNN_NORM_PER_CHANNEL: cudnnNormMode_t = 1;
pub type cudnnNormMode_t = u32;
pub const cudnnNormAlgo_t_CUDNN_NORM_ALGO_STANDARD: cudnnNormAlgo_t = 0;
pub const cudnnNormAlgo_t_CUDNN_NORM_ALGO_PERSIST: cudnnNormAlgo_t = 1;
pub type cudnnNormAlgo_t = u32;
extern "C" {
pub fn cudnnDeriveNormTensorDescriptor(
derivedNormScaleBiasDesc: cudnnTensorDescriptor_t,
derivedNormMeanVarDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnNormMode_t,
groupCnt: ::libc::c_int,
) -> cudnnStatus_t;
}
pub const cudnnNormOps_t_CUDNN_NORM_OPS_NORM: cudnnNormOps_t = 0;
pub const cudnnNormOps_t_CUDNN_NORM_OPS_NORM_ACTIVATION: cudnnNormOps_t = 1;
pub const cudnnNormOps_t_CUDNN_NORM_OPS_NORM_ADD_ACTIVATION: cudnnNormOps_t = 2;
pub type cudnnNormOps_t = u32;
extern "C" {
pub fn cudnnNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::libc::c_void,
beta: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::libc::c_void,
normBias: *const ::libc::c_void,
normMeanVarDesc: cudnnTensorDescriptor_t,
estimatedMean: *const ::libc::c_void,
estimatedVariance: *const ::libc::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
epsilon: f64,
groupCnt: ::libc::c_int,
) -> cudnnStatus_t;
}
pub const cudnnSamplerType_t_CUDNN_SAMPLER_BILINEAR: cudnnSamplerType_t = 0;
pub type cudnnSamplerType_t = u32;
extern "C" {
pub fn cudnnCreateSpatialTransformerDescriptor(
stDesc: *mut cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetSpatialTransformerNdDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
samplerType: cudnnSamplerType_t,
dataType: cudnnDataType_t,
nbDims: ::libc::c_int,
dimA: *const ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroySpatialTransformerDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSpatialTfGridGeneratorForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
theta: *const ::libc::c_void,
grid: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSpatialTfSamplerForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
grid: *const ::libc::c_void,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnDropoutStruct {
_unused: [u8; 0],
}
pub type cudnnDropoutDescriptor_t = *mut cudnnDropoutStruct;
extern "C" {
pub fn cudnnCreateDropoutDescriptor(
dropoutDesc: *mut cudnnDropoutDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyDropoutDescriptor(dropoutDesc: cudnnDropoutDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDropoutGetStatesSize(
handle: cudnnHandle_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDropoutGetReserveSpaceSize(
xdesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::libc::c_void,
stateSizeInBytes: usize,
seed: ::libc::c_ulonglong,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRestoreDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::libc::c_void,
stateSizeInBytes: usize,
seed: ::libc::c_ulonglong,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: *mut f32,
states: *mut *mut ::libc::c_void,
seed: *mut ::libc::c_ulonglong,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDropoutForward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
xdesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
ydesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
#[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;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM:
cudnnConvolutionFwdAlgo_t = 0;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM:
cudnnConvolutionFwdAlgo_t = 1;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_GEMM: cudnnConvolutionFwdAlgo_t = 2;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_DIRECT: cudnnConvolutionFwdAlgo_t =
3;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_FFT: cudnnConvolutionFwdAlgo_t = 4;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING:
cudnnConvolutionFwdAlgo_t = 5;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD: cudnnConvolutionFwdAlgo_t =
6;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED:
cudnnConvolutionFwdAlgo_t = 7;
pub const cudnnConvolutionFwdAlgo_t_CUDNN_CONVOLUTION_FWD_ALGO_COUNT: cudnnConvolutionFwdAlgo_t = 8;
pub type cudnnConvolutionFwdAlgo_t = u32;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0:
cudnnConvolutionBwdFilterAlgo_t = 0;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1:
cudnnConvolutionBwdFilterAlgo_t = 1;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT:
cudnnConvolutionBwdFilterAlgo_t = 2;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3:
cudnnConvolutionBwdFilterAlgo_t = 3;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD:
cudnnConvolutionBwdFilterAlgo_t = 4;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED:
cudnnConvolutionBwdFilterAlgo_t = 5;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING:
cudnnConvolutionBwdFilterAlgo_t = 6;
pub const cudnnConvolutionBwdFilterAlgo_t_CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT:
cudnnConvolutionBwdFilterAlgo_t = 7;
pub type cudnnConvolutionBwdFilterAlgo_t = u32;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_0:
cudnnConvolutionBwdDataAlgo_t = 0;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_1:
cudnnConvolutionBwdDataAlgo_t = 1;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT:
cudnnConvolutionBwdDataAlgo_t = 2;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT_TILING:
cudnnConvolutionBwdDataAlgo_t = 3;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD:
cudnnConvolutionBwdDataAlgo_t = 4;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD_NONFUSED:
cudnnConvolutionBwdDataAlgo_t = 5;
pub const cudnnConvolutionBwdDataAlgo_t_CUDNN_CONVOLUTION_BWD_DATA_ALGO_COUNT:
cudnnConvolutionBwdDataAlgo_t = 6;
pub type cudnnConvolutionBwdDataAlgo_t = u32;
pub const cudnnRNNAlgo_t_CUDNN_RNN_ALGO_STANDARD: cudnnRNNAlgo_t = 0;
pub const cudnnRNNAlgo_t_CUDNN_RNN_ALGO_PERSIST_STATIC: cudnnRNNAlgo_t = 1;
pub const cudnnRNNAlgo_t_CUDNN_RNN_ALGO_PERSIST_DYNAMIC: cudnnRNNAlgo_t = 2;
pub const cudnnRNNAlgo_t_CUDNN_RNN_ALGO_COUNT: cudnnRNNAlgo_t = 3;
pub type cudnnRNNAlgo_t = u32;
pub const cudnnCTCLossAlgo_t_CUDNN_CTC_LOSS_ALGO_DETERMINISTIC: cudnnCTCLossAlgo_t = 0;
pub const cudnnCTCLossAlgo_t_CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC: cudnnCTCLossAlgo_t = 1;
pub type cudnnCTCLossAlgo_t = u32;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct cudnnAlgorithm_t {
pub algo: cudnnAlgorithm_t_Algorithm,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union cudnnAlgorithm_t_Algorithm {
pub convFwdAlgo: cudnnConvolutionFwdAlgo_t,
pub convBwdFilterAlgo: cudnnConvolutionBwdFilterAlgo_t,
pub convBwdDataAlgo: cudnnConvolutionBwdDataAlgo_t,
pub RNNAlgo: cudnnRNNAlgo_t,
pub CTCLossAlgo: cudnnCTCLossAlgo_t,
_bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_cudnnAlgorithm_t_Algorithm() {
assert_eq!(
::std::mem::size_of::<cudnnAlgorithm_t_Algorithm>(),
4usize,
concat!("Size of: ", stringify!(cudnnAlgorithm_t_Algorithm))
);
assert_eq!(
::std::mem::align_of::<cudnnAlgorithm_t_Algorithm>(),
4usize,
concat!("Alignment of ", stringify!(cudnnAlgorithm_t_Algorithm))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnAlgorithm_t_Algorithm>())).convFwdAlgo as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t_Algorithm),
"::",
stringify!(convFwdAlgo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnAlgorithm_t_Algorithm>())).convBwdFilterAlgo as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t_Algorithm),
"::",
stringify!(convBwdFilterAlgo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnAlgorithm_t_Algorithm>())).convBwdDataAlgo as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t_Algorithm),
"::",
stringify!(convBwdDataAlgo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnAlgorithm_t_Algorithm>())).RNNAlgo as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t_Algorithm),
"::",
stringify!(RNNAlgo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnAlgorithm_t_Algorithm>())).CTCLossAlgo as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t_Algorithm),
"::",
stringify!(CTCLossAlgo)
)
);
}
#[test]
fn bindgen_test_layout_cudnnAlgorithm_t() {
assert_eq!(
::std::mem::size_of::<cudnnAlgorithm_t>(),
4usize,
concat!("Size of: ", stringify!(cudnnAlgorithm_t))
);
assert_eq!(
::std::mem::align_of::<cudnnAlgorithm_t>(),
4usize,
concat!("Alignment of ", stringify!(cudnnAlgorithm_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnAlgorithm_t>())).algo as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnAlgorithm_t),
"::",
stringify!(algo)
)
);
}
extern "C" {
pub fn cudnnCreateAlgorithmDescriptor(
algoDesc: *mut cudnnAlgorithmDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetAlgorithmDescriptor(
algoDesc: cudnnAlgorithmDescriptor_t,
algorithm: cudnnAlgorithm_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetAlgorithmDescriptor(
algoDesc: cudnnAlgorithmDescriptor_t,
algorithm: *mut cudnnAlgorithm_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCopyAlgorithmDescriptor(
src: cudnnAlgorithmDescriptor_t,
dest: cudnnAlgorithmDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyAlgorithmDescriptor(algoDesc: cudnnAlgorithmDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateAlgorithmPerformance(
algoPerf: *mut cudnnAlgorithmPerformance_t,
numberToCreate: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetAlgorithmPerformance(
algoPerf: cudnnAlgorithmPerformance_t,
algoDesc: cudnnAlgorithmDescriptor_t,
status: cudnnStatus_t,
time: f32,
memory: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetAlgorithmPerformance(
algoPerf: cudnnAlgorithmPerformance_t,
algoDesc: *mut cudnnAlgorithmDescriptor_t,
status: *mut cudnnStatus_t,
time: *mut f32,
memory: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyAlgorithmPerformance(
algoPerf: *mut cudnnAlgorithmPerformance_t,
numberToDestroy: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetAlgorithmSpaceSize(
handle: cudnnHandle_t,
algoDesc: cudnnAlgorithmDescriptor_t,
algoSpaceSizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSaveAlgorithm(
handle: cudnnHandle_t,
algoDesc: cudnnAlgorithmDescriptor_t,
algoSpace: *mut ::libc::c_void,
algoSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRestoreAlgorithm(
handle: cudnnHandle_t,
algoSpace: *mut ::libc::c_void,
algoSpaceSizeInBytes: usize,
algoDesc: cudnnAlgorithmDescriptor_t,
) -> cudnnStatus_t;
}
pub const cudnnSeverity_t_CUDNN_SEV_FATAL: cudnnSeverity_t = 0;
pub const cudnnSeverity_t_CUDNN_SEV_ERROR: cudnnSeverity_t = 1;
pub const cudnnSeverity_t_CUDNN_SEV_WARNING: cudnnSeverity_t = 2;
pub const cudnnSeverity_t_CUDNN_SEV_INFO: cudnnSeverity_t = 3;
pub type cudnnSeverity_t = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnDebug_t {
pub cudnn_version: ::libc::c_uint,
pub cudnnStatus: cudnnStatus_t,
pub time_sec: ::libc::c_uint,
pub time_usec: ::libc::c_uint,
pub time_delta: ::libc::c_uint,
pub handle: cudnnHandle_t,
pub stream: cudaStream_t,
pub pid: ::libc::c_ulonglong,
pub tid: ::libc::c_ulonglong,
pub cudaDeviceId: ::libc::c_int,
pub reserved: [::libc::c_int; 15usize],
}
#[test]
fn bindgen_test_layout_cudnnDebug_t() {
assert_eq!(
::std::mem::size_of::<cudnnDebug_t>(),
120usize,
concat!("Size of: ", stringify!(cudnnDebug_t))
);
assert_eq!(
::std::mem::align_of::<cudnnDebug_t>(),
8usize,
concat!("Alignment of ", stringify!(cudnnDebug_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).cudnn_version as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(cudnn_version)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).cudnnStatus as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(cudnnStatus)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).time_sec as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(time_sec)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).time_usec as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(time_usec)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).time_delta as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(time_delta)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).handle as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(handle)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).stream as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(stream)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).pid as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(pid)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).tid as *const _ as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(tid)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).cudaDeviceId as *const _ as usize },
56usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(cudaDeviceId)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<cudnnDebug_t>())).reserved as *const _ as usize },
60usize,
concat!(
"Offset of field: ",
stringify!(cudnnDebug_t),
"::",
stringify!(reserved)
)
);
}
pub type cudnnCallback_t = ::std::option::Option<
unsafe extern "C" fn(
sev: cudnnSeverity_t,
udata: *mut ::libc::c_void,
dbg: *const cudnnDebug_t,
msg: *const ::libc::c_char,
),
>;
extern "C" {
pub fn cudnnSetCallback(
mask: ::libc::c_uint,
udata: *mut ::libc::c_void,
fptr: cudnnCallback_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCallback(
mask: *mut ::libc::c_uint,
udata: *mut *mut ::libc::c_void,
fptr: *mut cudnnCallback_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnOpsInferVersionCheck() -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSoftmaxBackward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnPoolingBackward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnActivationBackward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnLRNCrossChannelBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDivisiveNormalizationBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
means: *const ::libc::c_void,
dy: *const ::libc::c_void,
temp: *mut ::libc::c_void,
temp2: *mut ::libc::c_void,
beta: *const ::libc::c_void,
dXdMeansDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
dMeans: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize(
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;
}
extern "C" {
pub fn cudnnGetBatchNormalizationBackwardExWorkspaceSize(
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;
}
extern "C" {
pub fn cudnnGetBatchNormalizationTrainingExReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBatchNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::libc::c_void,
beta: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::libc::c_void,
bnBias: *const ::libc::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::libc::c_void,
resultRunningVariance: *mut ::libc::c_void,
epsilon: f64,
resultSaveMean: *mut ::libc::c_void,
resultSaveInvVariance: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBatchNormalizationForwardTrainingEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alpha: *const ::libc::c_void,
beta: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::libc::c_void,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::libc::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::libc::c_void,
bnBias: *const ::libc::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::libc::c_void,
resultRunningVariance: *mut ::libc::c_void,
epsilon: f64,
resultSaveMean: *mut ::libc::c_void,
resultSaveInvVariance: *mut ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBatchNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alphaDataDiff: *const ::libc::c_void,
betaDataDiff: *const ::libc::c_void,
alphaParamDiff: *const ::libc::c_void,
betaParamDiff: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScale: *const ::libc::c_void,
dBnScaleResult: *mut ::libc::c_void,
dBnBiasResult: *mut ::libc::c_void,
epsilon: f64,
savedMean: *const ::libc::c_void,
savedInvVariance: *const ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBatchNormalizationBackwardEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alphaDataDiff: *const ::libc::c_void,
betaDataDiff: *const ::libc::c_void,
alphaParamDiff: *const ::libc::c_void,
betaParamDiff: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::libc::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::libc::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScaleData: *const ::libc::c_void,
bnBiasData: *const ::libc::c_void,
dBnScaleData: *mut ::libc::c_void,
dBnBiasData: *mut ::libc::c_void,
epsilon: f64,
savedMean: *const ::libc::c_void,
savedInvVariance: *const ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetNormalizationForwardTrainingWorkspaceSize(
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: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetNormalizationBackwardWorkspaceSize(
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: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetNormalizationTrainingReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::libc::c_void,
beta: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::libc::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::libc::c_void,
normBias: *const ::libc::c_void,
exponentialAverageFactor: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
resultRunningMean: *mut ::libc::c_void,
resultRunningVariance: *mut ::libc::c_void,
epsilon: f64,
resultSaveMean: *mut ::libc::c_void,
resultSaveInvVariance: *mut ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::libc::c_void,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alphaDataDiff: *const ::libc::c_void,
betaDataDiff: *const ::libc::c_void,
alphaParamDiff: *const ::libc::c_void,
betaParamDiff: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::libc::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::libc::c_void,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
normScaleData: *const ::libc::c_void,
normBiasData: *const ::libc::c_void,
dNormScaleData: *mut ::libc::c_void,
dNormBiasData: *mut ::libc::c_void,
epsilon: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
savedMean: *const ::libc::c_void,
savedInvVariance: *const ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSpatialTfGridGeneratorBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
dgrid: *const ::libc::c_void,
dtheta: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSpatialTfSamplerBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
alphaDgrid: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
grid: *const ::libc::c_void,
betaDgrid: *const ::libc::c_void,
dgrid: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDropoutBackward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
dydesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
dxdesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnOpsTrainVersionCheck() -> cudnnStatus_t;
}
pub const cudnnForwardMode_t_CUDNN_FWD_MODE_INFERENCE: cudnnForwardMode_t = 0;
pub const cudnnForwardMode_t_CUDNN_FWD_MODE_TRAINING: cudnnForwardMode_t = 1;
pub type cudnnForwardMode_t = u32;
pub const cudnnRNNMode_t_CUDNN_RNN_RELU: cudnnRNNMode_t = 0;
pub const cudnnRNNMode_t_CUDNN_RNN_TANH: cudnnRNNMode_t = 1;
pub const cudnnRNNMode_t_CUDNN_LSTM: cudnnRNNMode_t = 2;
pub const cudnnRNNMode_t_CUDNN_GRU: cudnnRNNMode_t = 3;
pub type cudnnRNNMode_t = u32;
pub const cudnnRNNBiasMode_t_CUDNN_RNN_NO_BIAS: cudnnRNNBiasMode_t = 0;
pub const cudnnRNNBiasMode_t_CUDNN_RNN_SINGLE_INP_BIAS: cudnnRNNBiasMode_t = 1;
pub const cudnnRNNBiasMode_t_CUDNN_RNN_DOUBLE_BIAS: cudnnRNNBiasMode_t = 2;
pub const cudnnRNNBiasMode_t_CUDNN_RNN_SINGLE_REC_BIAS: cudnnRNNBiasMode_t = 3;
pub type cudnnRNNBiasMode_t = u32;
pub const cudnnDirectionMode_t_CUDNN_UNIDIRECTIONAL: cudnnDirectionMode_t = 0;
pub const cudnnDirectionMode_t_CUDNN_BIDIRECTIONAL: cudnnDirectionMode_t = 1;
pub type cudnnDirectionMode_t = u32;
pub const cudnnRNNInputMode_t_CUDNN_LINEAR_INPUT: cudnnRNNInputMode_t = 0;
pub const cudnnRNNInputMode_t_CUDNN_SKIP_INPUT: cudnnRNNInputMode_t = 1;
pub type cudnnRNNInputMode_t = u32;
pub const cudnnRNNClipMode_t_CUDNN_RNN_CLIP_NONE: cudnnRNNClipMode_t = 0;
pub const cudnnRNNClipMode_t_CUDNN_RNN_CLIP_MINMAX: cudnnRNNClipMode_t = 1;
pub type cudnnRNNClipMode_t = u32;
pub const cudnnRNNDataLayout_t_CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED: cudnnRNNDataLayout_t = 0;
pub const cudnnRNNDataLayout_t_CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED: cudnnRNNDataLayout_t = 1;
pub const cudnnRNNDataLayout_t_CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED: cudnnRNNDataLayout_t = 2;
pub type cudnnRNNDataLayout_t = u32;
pub type cudnnRNNPaddingMode_t = ::libc::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;
extern "C" {
pub fn cudnnCreateRNNDescriptor(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyRNNDescriptor(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNDescriptor_v8(
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;
}
extern "C" {
pub fn cudnnGetRNNDescriptor_v8(
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;
}
extern "C" {
pub fn cudnnSetRNNDescriptor_v6(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
hiddenSize: ::libc::c_int,
numLayers: ::libc::c_int,
dropoutDesc: cudnnDropoutDescriptor_t,
inputMode: cudnnRNNInputMode_t,
direction: cudnnDirectionMode_t,
cellMode: cudnnRNNMode_t,
algo: cudnnRNNAlgo_t,
mathPrec: cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNDescriptor_v6(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
hiddenSize: *mut ::libc::c_int,
numLayers: *mut ::libc::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;
}
extern "C" {
pub fn cudnnSetRNNMatrixMathType(
rnnDesc: cudnnRNNDescriptor_t,
mType: cudnnMathType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNMatrixMathType(
rnnDesc: cudnnRNNDescriptor_t,
mType: *mut cudnnMathType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNBiasMode(
rnnDesc: cudnnRNNDescriptor_t,
biasMode: cudnnRNNBiasMode_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNBiasMode(
rnnDesc: cudnnRNNDescriptor_t,
biasMode: *mut cudnnRNNBiasMode_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNSetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
clipNanOpt: cudnnNanPropagation_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNGetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
clipNanOpt: *mut cudnnNanPropagation_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNSetClip(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
clipNanOpt: cudnnNanPropagation_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNGetClip(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
clipNanOpt: *mut cudnnNanPropagation_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNProjectionLayers(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
recProjSize: ::libc::c_int,
outProjSize: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNProjectionLayers(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
recProjSize: *mut ::libc::c_int,
outProjSize: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreatePersistentRNNPlan(
rnnDesc: cudnnRNNDescriptor_t,
minibatch: ::libc::c_int,
dataType: cudnnDataType_t,
plan: *mut cudnnPersistentRNNPlan_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyPersistentRNNPlan(plan: cudnnPersistentRNNPlan_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetPersistentRNNPlan(
rnnDesc: cudnnRNNDescriptor_t,
plan: cudnnPersistentRNNPlan_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBuildRNNDynamic(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
miniBatch: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNWorkspaceSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNTrainingReserveSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNTempSpaceSizes(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fMode: cudnnForwardMode_t,
xDesc: cudnnRNNDataDescriptor_t,
workSpaceSize: *mut usize,
reserveSpaceSize: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNParamsSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
dataType: cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNWeightSpaceSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
weightSpaceSize: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNLinLayerMatrixParams(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: ::libc::c_int,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
linLayerID: ::libc::c_int,
linLayerMatDesc: cudnnFilterDescriptor_t,
linLayerMat: *mut *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNLinLayerBiasParams(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: ::libc::c_int,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
linLayerID: ::libc::c_int,
linLayerBiasDesc: cudnnFilterDescriptor_t,
linLayerBias: *mut *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNWeightParams(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: i32,
weightSpaceSize: usize,
weightSpace: *const ::libc::c_void,
linLayerID: i32,
mDesc: cudnnTensorDescriptor_t,
mAddr: *mut *mut ::libc::c_void,
bDesc: cudnnTensorDescriptor_t,
bAddr: *mut *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNForwardInference(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNPaddingMode(
rnnDesc: cudnnRNNDescriptor_t,
paddingMode: ::libc::c_uint,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNPaddingMode(
rnnDesc: cudnnRNNDescriptor_t,
paddingMode: *mut ::libc::c_uint,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateRNNDataDescriptor(
rnnDataDesc: *mut cudnnRNNDataDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyRNNDataDescriptor(rnnDataDesc: cudnnRNNDataDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: cudnnDataType_t,
layout: cudnnRNNDataLayout_t,
maxSeqLength: ::libc::c_int,
batchSize: ::libc::c_int,
vectorSize: ::libc::c_int,
seqLengthArray: *const ::libc::c_int,
paddingFill: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: *mut cudnnDataType_t,
layout: *mut cudnnRNNDataLayout_t,
maxSeqLength: *mut ::libc::c_int,
batchSize: *mut ::libc::c_int,
vectorSize: *mut ::libc::c_int,
arrayLengthRequested: ::libc::c_int,
seqLengthArray: *mut ::libc::c_int,
paddingFill: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNForwardInferenceEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
kDesc: cudnnRNNDataDescriptor_t,
keys: *const ::libc::c_void,
cDesc: cudnnRNNDataDescriptor_t,
cAttn: *mut ::libc::c_void,
iDesc: cudnnRNNDataDescriptor_t,
iAttn: *mut ::libc::c_void,
qDesc: cudnnRNNDataDescriptor_t,
queries: *mut ::libc::c_void,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNForward(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::libc::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::libc::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
hy: *mut ::libc::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
cy: *mut ::libc::c_void,
weightSpaceSize: usize,
weightSpace: *const ::libc::c_void,
workSpaceSize: usize,
workSpace: *mut ::libc::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetRNNAlgorithmDescriptor(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
algoDesc: cudnnAlgorithmDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNForwardInferenceAlgorithmMaxCount(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindRNNForwardInferenceAlgorithmEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
findIntensity: f32,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnAlgorithmPerformance_t,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
pub const cudnnSeqDataAxis_t_CUDNN_SEQDATA_TIME_DIM: cudnnSeqDataAxis_t = 0;
pub const cudnnSeqDataAxis_t_CUDNN_SEQDATA_BATCH_DIM: cudnnSeqDataAxis_t = 1;
pub const cudnnSeqDataAxis_t_CUDNN_SEQDATA_BEAM_DIM: cudnnSeqDataAxis_t = 2;
pub const cudnnSeqDataAxis_t_CUDNN_SEQDATA_VECT_DIM: cudnnSeqDataAxis_t = 3;
pub type cudnnSeqDataAxis_t = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnSeqDataStruct {
_unused: [u8; 0],
}
pub type cudnnSeqDataDescriptor_t = *mut cudnnSeqDataStruct;
extern "C" {
pub fn cudnnCreateSeqDataDescriptor(
seqDataDesc: *mut cudnnSeqDataDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroySeqDataDescriptor(seqDataDesc: cudnnSeqDataDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::libc::c_int,
dimA: *const ::libc::c_int,
axes: *const cudnnSeqDataAxis_t,
seqLengthArraySize: usize,
seqLengthArray: *const ::libc::c_int,
paddingFill: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::libc::c_int,
nbDimsRequested: ::libc::c_int,
dimA: *mut ::libc::c_int,
axes: *mut cudnnSeqDataAxis_t,
seqLengthArraySize: *mut usize,
seqLengthSizeRequested: usize,
seqLengthArray: *mut ::libc::c_int,
paddingFill: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub type cudnnAttnQueryMap_t = ::libc::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnAttnStruct {
_unused: [u8; 0],
}
pub type cudnnAttnDescriptor_t = *mut cudnnAttnStruct;
extern "C" {
pub fn cudnnCreateAttnDescriptor(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyAttnDescriptor(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: ::libc::c_uint,
nHeads: ::libc::c_int,
smScaler: f64,
dataType: cudnnDataType_t,
computePrec: cudnnDataType_t,
mathType: cudnnMathType_t,
attnDropoutDesc: cudnnDropoutDescriptor_t,
postDropoutDesc: cudnnDropoutDescriptor_t,
qSize: ::libc::c_int,
kSize: ::libc::c_int,
vSize: ::libc::c_int,
qProjSize: ::libc::c_int,
kProjSize: ::libc::c_int,
vProjSize: ::libc::c_int,
oProjSize: ::libc::c_int,
qoMaxSeqLength: ::libc::c_int,
kvMaxSeqLength: ::libc::c_int,
maxBatchSize: ::libc::c_int,
maxBeamSize: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: *mut ::libc::c_uint,
nHeads: *mut ::libc::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 ::libc::c_int,
kSize: *mut ::libc::c_int,
vSize: *mut ::libc::c_int,
qProjSize: *mut ::libc::c_int,
kProjSize: *mut ::libc::c_int,
vProjSize: *mut ::libc::c_int,
oProjSize: *mut ::libc::c_int,
qoMaxSeqLength: *mut ::libc::c_int,
kvMaxSeqLength: *mut ::libc::c_int,
maxBatchSize: *mut ::libc::c_int,
maxBeamSize: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetMultiHeadAttnBuffers(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
weightSizeInBytes: *mut usize,
workSpaceSizeInBytes: *mut usize,
reserveSpaceSizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_Q_WEIGHTS: cudnnMultiHeadAttnWeightKind_t =
0;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_K_WEIGHTS: cudnnMultiHeadAttnWeightKind_t =
1;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_V_WEIGHTS: cudnnMultiHeadAttnWeightKind_t =
2;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_O_WEIGHTS: cudnnMultiHeadAttnWeightKind_t =
3;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_Q_BIASES: cudnnMultiHeadAttnWeightKind_t = 4;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_K_BIASES: cudnnMultiHeadAttnWeightKind_t = 5;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_V_BIASES: cudnnMultiHeadAttnWeightKind_t = 6;
pub const cudnnMultiHeadAttnWeightKind_t_CUDNN_MH_ATTN_O_BIASES: cudnnMultiHeadAttnWeightKind_t = 7;
pub type cudnnMultiHeadAttnWeightKind_t = u32;
extern "C" {
pub fn cudnnGetMultiHeadAttnWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
wKind: cudnnMultiHeadAttnWeightKind_t,
weightSizeInBytes: usize,
weights: *const ::libc::c_void,
wDesc: cudnnTensorDescriptor_t,
wAddr: *mut *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnMultiHeadAttnForward(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
currIdx: ::libc::c_int,
loWinIdx: *const ::libc::c_int,
hiWinIdx: *const ::libc::c_int,
devSeqLengthsQO: *const ::libc::c_int,
devSeqLengthsKV: *const ::libc::c_int,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::libc::c_void,
residuals: *const ::libc::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::libc::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::libc::c_void,
oDesc: cudnnSeqDataDescriptor_t,
out: *mut ::libc::c_void,
weightSizeInBytes: usize,
weights: *const ::libc::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnAdvInferVersionCheck() -> cudnnStatus_t;
}
pub const cudnnWgradMode_t_CUDNN_WGRAD_MODE_ADD: cudnnWgradMode_t = 0;
pub const cudnnWgradMode_t_CUDNN_WGRAD_MODE_SET: cudnnWgradMode_t = 1;
pub type cudnnWgradMode_t = u32;
extern "C" {
pub fn cudnnRNNForwardTraining(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNBackwardData(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
yDesc: *const cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: *const cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
dhyDesc: cudnnTensorDescriptor_t,
dhy: *const ::libc::c_void,
dcyDesc: cudnnTensorDescriptor_t,
dcy: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
dxDesc: *const cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
dhxDesc: cudnnTensorDescriptor_t,
dhx: *mut ::libc::c_void,
dcxDesc: cudnnTensorDescriptor_t,
dcx: *mut ::libc::c_void,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNBackwardWeights(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
workspace: *const ::libc::c_void,
workSpaceSizeInBytes: usize,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::libc::c_void,
reserveSpace: *const ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNForwardTrainingEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
kDesc: cudnnRNNDataDescriptor_t,
keys: *const ::libc::c_void,
cDesc: cudnnRNNDataDescriptor_t,
cAttn: *mut ::libc::c_void,
iDesc: cudnnRNNDataDescriptor_t,
iAttn: *mut ::libc::c_void,
qDesc: cudnnRNNDataDescriptor_t,
queries: *mut ::libc::c_void,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNBackwardDataEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::libc::c_void,
dyDesc: cudnnRNNDataDescriptor_t,
dy: *const ::libc::c_void,
dcDesc: cudnnRNNDataDescriptor_t,
dcAttn: *const ::libc::c_void,
dhyDesc: cudnnTensorDescriptor_t,
dhy: *const ::libc::c_void,
dcyDesc: cudnnTensorDescriptor_t,
dcy: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
dxDesc: cudnnRNNDataDescriptor_t,
dx: *mut ::libc::c_void,
dhxDesc: cudnnTensorDescriptor_t,
dhx: *mut ::libc::c_void,
dcxDesc: cudnnTensorDescriptor_t,
dcx: *mut ::libc::c_void,
dkDesc: cudnnRNNDataDescriptor_t,
dkeys: *mut ::libc::c_void,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnRNNBackwardWeightsEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::libc::c_void,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::libc::c_void,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNForwardTrainingAlgorithmMaxCount(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindRNNForwardTrainingAlgorithmEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
hyDesc: cudnnTensorDescriptor_t,
hy: *mut ::libc::c_void,
cyDesc: cudnnTensorDescriptor_t,
cy: *mut ::libc::c_void,
findIntensity: f32,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnAlgorithmPerformance_t,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNBackwardDataAlgorithmMaxCount(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindRNNBackwardDataAlgorithmEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
yDesc: *const cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
dyDesc: *const cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
dhyDesc: cudnnTensorDescriptor_t,
dhy: *const ::libc::c_void,
dcyDesc: cudnnTensorDescriptor_t,
dcy: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
cxDesc: cudnnTensorDescriptor_t,
cx: *const ::libc::c_void,
dxDesc: *const cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
dhxDesc: cudnnTensorDescriptor_t,
dhx: *mut ::libc::c_void,
dcxDesc: cudnnTensorDescriptor_t,
dcx: *mut ::libc::c_void,
findIntensity: f32,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnAlgorithmPerformance_t,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetRNNBackwardWeightsAlgorithmMaxCount(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindRNNBackwardWeightsAlgorithmEx(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
seqLength: ::libc::c_int,
xDesc: *const cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
hxDesc: cudnnTensorDescriptor_t,
hx: *const ::libc::c_void,
yDesc: *const cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
findIntensity: f32,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnAlgorithmPerformance_t,
workspace: *const ::libc::c_void,
workSpaceSizeInBytes: usize,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::libc::c_void,
reserveSpace: *const ::libc::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnMultiHeadAttnBackwardData(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
loWinIdx: *const ::libc::c_int,
hiWinIdx: *const ::libc::c_int,
devSeqLengthsDQDO: *const ::libc::c_int,
devSeqLengthsDKDV: *const ::libc::c_int,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::libc::c_void,
dqDesc: cudnnSeqDataDescriptor_t,
dqueries: *mut ::libc::c_void,
queries: *const ::libc::c_void,
dkDesc: cudnnSeqDataDescriptor_t,
dkeys: *mut ::libc::c_void,
keys: *const ::libc::c_void,
dvDesc: cudnnSeqDataDescriptor_t,
dvalues: *mut ::libc::c_void,
values: *const ::libc::c_void,
weightSizeInBytes: usize,
weights: *const ::libc::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnMultiHeadAttnBackwardWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
addGrad: cudnnWgradMode_t,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::libc::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::libc::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::libc::c_void,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::libc::c_void,
weightSizeInBytes: usize,
weights: *const ::libc::c_void,
dweights: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::libc::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
pub const cudnnLossNormalizationMode_t_CUDNN_LOSS_NORMALIZATION_NONE: cudnnLossNormalizationMode_t =
0;
pub const cudnnLossNormalizationMode_t_CUDNN_LOSS_NORMALIZATION_SOFTMAX:
cudnnLossNormalizationMode_t = 1;
pub type cudnnLossNormalizationMode_t = u32;
extern "C" {
pub fn cudnnCreateCTCLossDescriptor(
ctcLossDesc: *mut cudnnCTCLossDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
maxLabelLength: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
maxLabelLength: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyCTCLossDescriptor(ctcLossDesc: cudnnCTCLossDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCTCLoss(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::libc::c_void,
hostLabels: *const ::libc::c_int,
hostLabelLengths: *const ::libc::c_int,
hostInputLengths: *const ::libc::c_int,
costs: *mut ::libc::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::libc::c_void,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
workspace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCTCLoss_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::libc::c_void,
labels: *const ::libc::c_int,
labelLengths: *const ::libc::c_int,
inputLengths: *const ::libc::c_int,
costs: *mut ::libc::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
workspace: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCTCLossWorkspaceSize(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
labels: *const ::libc::c_int,
labelLengths: *const ::libc::c_int,
inputLengths: *const ::libc::c_int,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetCTCLossWorkspaceSize_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnAdvTrainVersionCheck() -> cudnnStatus_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnConvolutionStruct {
_unused: [u8; 0],
}
pub type cudnnConvolutionDescriptor_t = *mut cudnnConvolutionStruct;
pub const cudnnConvolutionMode_t_CUDNN_CONVOLUTION: cudnnConvolutionMode_t = 0;
pub const cudnnConvolutionMode_t_CUDNN_CROSS_CORRELATION: cudnnConvolutionMode_t = 1;
pub type cudnnConvolutionMode_t = u32;
pub const cudnnReorderType_t_CUDNN_DEFAULT_REORDER: cudnnReorderType_t = 0;
pub const cudnnReorderType_t_CUDNN_NO_REORDER: cudnnReorderType_t = 1;
pub type cudnnReorderType_t = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnConvolutionFwdAlgoPerf_t {
pub algo: cudnnConvolutionFwdAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::libc::c_int; 3usize],
}
#[test]
fn bindgen_test_layout_cudnnConvolutionFwdAlgoPerf_t() {
assert_eq!(
::std::mem::size_of::<cudnnConvolutionFwdAlgoPerf_t>(),
48usize,
concat!("Size of: ", stringify!(cudnnConvolutionFwdAlgoPerf_t))
);
assert_eq!(
::std::mem::align_of::<cudnnConvolutionFwdAlgoPerf_t>(),
8usize,
concat!("Alignment of ", stringify!(cudnnConvolutionFwdAlgoPerf_t))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).algo as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(algo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).status as *const _ as usize
},
4usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(status)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).time as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(time)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).memory as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(memory)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).determinism as *const _
as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(determinism)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).mathType as *const _ as usize
},
28usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(mathType)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionFwdAlgoPerf_t>())).reserved as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionFwdAlgoPerf_t),
"::",
stringify!(reserved)
)
);
}
extern "C" {
pub fn cudnnCreateConvolutionDescriptor(
convDesc: *mut cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyConvolutionDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: cudnnMathType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: *mut cudnnMathType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: cudnnReorderType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: *mut cudnnReorderType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: ::libc::c_int,
pad_w: ::libc::c_int,
u: ::libc::c_int,
v: ::libc::c_int,
dilation_h: ::libc::c_int,
dilation_w: ::libc::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: *mut ::libc::c_int,
pad_w: *mut ::libc::c_int,
u: *mut ::libc::c_int,
v: *mut ::libc::c_int,
dilation_h: *mut ::libc::c_int,
dilation_w: *mut ::libc::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLength: ::libc::c_int,
padA: *const ::libc::c_int,
filterStrideA: *const ::libc::c_int,
dilationA: *const ::libc::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLengthRequested: ::libc::c_int,
arrayLength: *mut ::libc::c_int,
padA: *mut ::libc::c_int,
strideA: *mut ::libc::c_int,
dilationA: *mut ::libc::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolution2dForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
n: *mut ::libc::c_int,
c: *mut ::libc::c_int,
h: *mut ::libc::c_int,
w: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionNdForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
nbDims: ::libc::c_int,
tensorOuputDimA: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionForwardAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionForwardAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionForwardAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionForwardAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnIm2Col(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
colBuffer: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnReorderFilterAndBias(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
reorderType: cudnnReorderType_t,
filterData: *const ::libc::c_void,
reorderedFilterData: *mut ::libc::c_void,
reorderBias: ::libc::c_int,
biasData: *const ::libc::c_void,
reorderedBiasData: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionForwardWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnConvolutionForward(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::libc::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnConvolutionBiasActivationForward(
handle: cudnnHandle_t,
alpha1: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
alpha2: *const ::libc::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::libc::c_void,
biasDesc: cudnnTensorDescriptor_t,
bias: *const ::libc::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnConvolutionBwdDataAlgoPerf_t {
pub algo: cudnnConvolutionBwdDataAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::libc::c_int; 3usize],
}
#[test]
fn bindgen_test_layout_cudnnConvolutionBwdDataAlgoPerf_t() {
assert_eq!(
::std::mem::size_of::<cudnnConvolutionBwdDataAlgoPerf_t>(),
48usize,
concat!("Size of: ", stringify!(cudnnConvolutionBwdDataAlgoPerf_t))
);
assert_eq!(
::std::mem::align_of::<cudnnConvolutionBwdDataAlgoPerf_t>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).algo as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(algo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).status as *const _
as usize
},
4usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(status)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).time as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(time)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).memory as *const _
as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(memory)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).determinism as *const _
as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(determinism)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).mathType as *const _
as usize
},
28usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(mathType)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdDataAlgoPerf_t>())).reserved as *const _
as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdDataAlgoPerf_t),
"::",
stringify!(reserved)
)
);
}
extern "C" {
pub fn cudnnGetConvolutionBackwardDataAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionBackwardDataAlgorithm(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionBackwardDataAlgorithmEx(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionBackwardDataAlgorithm_v7(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionBackwardDataWorkspaceSize(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnConvolutionBackwardData(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::libc::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFoldedConvBackwardDataDescriptors(
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;
}
#[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;
pub const cudnnFusedOps_t_CUDNN_FUSED_SCALE_BIAS_ACTIVATION_CONV_BNSTATS: cudnnFusedOps_t = 0;
pub const cudnnFusedOps_t_CUDNN_FUSED_SCALE_BIAS_ACTIVATION_WGRAD: cudnnFusedOps_t = 1;
pub const cudnnFusedOps_t_CUDNN_FUSED_BN_FINALIZE_STATISTICS_TRAINING: cudnnFusedOps_t = 2;
pub const cudnnFusedOps_t_CUDNN_FUSED_BN_FINALIZE_STATISTICS_INFERENCE: cudnnFusedOps_t = 3;
pub const cudnnFusedOps_t_CUDNN_FUSED_CONV_SCALE_BIAS_ADD_ACTIVATION: cudnnFusedOps_t = 4;
pub const cudnnFusedOps_t_CUDNN_FUSED_SCALE_BIAS_ADD_ACTIVATION_GEN_BITMASK: cudnnFusedOps_t = 5;
pub const cudnnFusedOps_t_CUDNN_FUSED_DACTIVATION_FORK_DBATCHNORM: cudnnFusedOps_t = 6;
pub type cudnnFusedOps_t = u32;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_XDESC: cudnnFusedOpsConstParamLabel_t = 0;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_XDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 1;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_MODE: cudnnFusedOpsConstParamLabel_t = 2;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_EQSCALEBIAS_DESC:
cudnnFusedOpsConstParamLabel_t = 3;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_EQSCALE_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 4;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_EQBIAS_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 5;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_ACTIVATION_DESC:
cudnnFusedOpsConstParamLabel_t = 6;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_CONV_DESC: cudnnFusedOpsConstParamLabel_t = 7;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_WDESC: cudnnFusedOpsConstParamLabel_t = 8;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_WDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 9;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DWDESC: cudnnFusedOpsConstParamLabel_t = 10;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DWDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 11;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_YDESC: cudnnFusedOpsConstParamLabel_t = 12;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_YDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 13;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DYDESC: cudnnFusedOpsConstParamLabel_t = 14;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DYDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 15;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_YSTATS_DESC: cudnnFusedOpsConstParamLabel_t =
16;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_YSUM_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 17;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_YSQSUM_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 18;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_SCALEBIAS_MEANVAR_DESC:
cudnnFusedOpsConstParamLabel_t = 19;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_SCALE_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 20;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_BIAS_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 21;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_SAVED_MEAN_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 22;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_SAVED_INVSTD_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 23;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_RUNNING_MEAN_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 24;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_RUNNING_VAR_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 25;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_ZDESC: cudnnFusedOpsConstParamLabel_t = 26;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_ZDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 27;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_Z_EQSCALEBIAS_DESC:
cudnnFusedOpsConstParamLabel_t = 28;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_Z_EQSCALE_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 29;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_Z_EQBIAS_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 30;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_ACTIVATION_BITMASK_DESC:
cudnnFusedOpsConstParamLabel_t = 31;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_ACTIVATION_BITMASK_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 32;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DXDESC: cudnnFusedOpsConstParamLabel_t = 33;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DXDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 34;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DZDESC: cudnnFusedOpsConstParamLabel_t = 35;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_DZDATA_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 36;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_DSCALE_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 37;
pub const cudnnFusedOpsConstParamLabel_t_CUDNN_PARAM_BN_DBIAS_PLACEHOLDER:
cudnnFusedOpsConstParamLabel_t = 38;
pub type cudnnFusedOpsConstParamLabel_t = u32;
pub const cudnnFusedOpsPointerPlaceHolder_t_CUDNN_PTR_NULL: cudnnFusedOpsPointerPlaceHolder_t = 0;
pub const cudnnFusedOpsPointerPlaceHolder_t_CUDNN_PTR_ELEM_ALIGNED:
cudnnFusedOpsPointerPlaceHolder_t = 1;
pub const cudnnFusedOpsPointerPlaceHolder_t_CUDNN_PTR_16B_ALIGNED:
cudnnFusedOpsPointerPlaceHolder_t = 2;
pub type cudnnFusedOpsPointerPlaceHolder_t = u32;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_XDATA: cudnnFusedOpsVariantParamLabel_t = 0;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_EQSCALE: cudnnFusedOpsVariantParamLabel_t =
1;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_EQBIAS: cudnnFusedOpsVariantParamLabel_t =
2;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_WDATA: cudnnFusedOpsVariantParamLabel_t = 3;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_DWDATA: cudnnFusedOpsVariantParamLabel_t = 4;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_YDATA: cudnnFusedOpsVariantParamLabel_t = 5;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_DYDATA: cudnnFusedOpsVariantParamLabel_t = 6;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_YSUM: cudnnFusedOpsVariantParamLabel_t = 7;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_YSQSUM: cudnnFusedOpsVariantParamLabel_t = 8;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_WORKSPACE: cudnnFusedOpsVariantParamLabel_t =
9;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_SCALE: cudnnFusedOpsVariantParamLabel_t =
10;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_BIAS: cudnnFusedOpsVariantParamLabel_t = 11;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_SAVED_MEAN:
cudnnFusedOpsVariantParamLabel_t = 12;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_SAVED_INVSTD:
cudnnFusedOpsVariantParamLabel_t = 13;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_RUNNING_MEAN:
cudnnFusedOpsVariantParamLabel_t = 14;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_RUNNING_VAR:
cudnnFusedOpsVariantParamLabel_t = 15;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_ZDATA: cudnnFusedOpsVariantParamLabel_t = 16;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_Z_EQSCALE:
cudnnFusedOpsVariantParamLabel_t = 17;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_Z_EQBIAS: cudnnFusedOpsVariantParamLabel_t =
18;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_ACTIVATION_BITMASK:
cudnnFusedOpsVariantParamLabel_t = 19;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_DXDATA: cudnnFusedOpsVariantParamLabel_t = 20;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_DZDATA: cudnnFusedOpsVariantParamLabel_t = 21;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_DSCALE: cudnnFusedOpsVariantParamLabel_t =
22;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_PTR_BN_DBIAS: cudnnFusedOpsVariantParamLabel_t =
23;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_SCALAR_SIZE_T_WORKSPACE_SIZE_IN_BYTES:
cudnnFusedOpsVariantParamLabel_t = 100;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_SCALAR_INT64_T_BN_ACCUMULATION_COUNT:
cudnnFusedOpsVariantParamLabel_t = 101;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_SCALAR_DOUBLE_BN_EXP_AVG_FACTOR:
cudnnFusedOpsVariantParamLabel_t = 102;
pub const cudnnFusedOpsVariantParamLabel_t_CUDNN_SCALAR_DOUBLE_BN_EPSILON:
cudnnFusedOpsVariantParamLabel_t = 103;
pub type cudnnFusedOpsVariantParamLabel_t = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnConvolutionBwdFilterAlgoPerf_t {
pub algo: cudnnConvolutionBwdFilterAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::libc::c_int; 3usize],
}
#[test]
fn bindgen_test_layout_cudnnConvolutionBwdFilterAlgoPerf_t() {
assert_eq!(
::std::mem::size_of::<cudnnConvolutionBwdFilterAlgoPerf_t>(),
48usize,
concat!("Size of: ", stringify!(cudnnConvolutionBwdFilterAlgoPerf_t))
);
assert_eq!(
::std::mem::align_of::<cudnnConvolutionBwdFilterAlgoPerf_t>(),
8usize,
concat!(
"Alignment of ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).algo as *const _
as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(algo)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).status as *const _
as usize
},
4usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(status)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).time as *const _
as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(time)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).memory as *const _
as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(memory)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).determinism as *const _
as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(determinism)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).mathType as *const _
as usize
},
28usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(mathType)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<cudnnConvolutionBwdFilterAlgoPerf_t>())).reserved as *const _
as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(cudnnConvolutionBwdFilterAlgoPerf_t),
"::",
stringify!(reserved)
)
);
}
extern "C" {
pub fn cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionBackwardFilterAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFindConvolutionBackwardFilterAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
y: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::libc::c_void,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionBackwardFilterAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::libc::c_int,
returnedAlgoCount: *mut ::libc::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetConvolutionBackwardFilterWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnConvolutionBackwardFilter(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
workSpace: *mut ::libc::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::libc::c_void,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnConvolutionBackwardBias(
handle: cudnnHandle_t,
alpha: *const ::libc::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::libc::c_void,
beta: *const ::libc::c_void,
dbDesc: cudnnTensorDescriptor_t,
db: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateFusedOpsConstParamPack(
constPack: *mut cudnnFusedOpsConstParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyFusedOpsConstParamPack(
constPack: cudnnFusedOpsConstParamPack_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *const ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *mut ::libc::c_void,
isNULL: *mut ::libc::c_int,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateFusedOpsVariantParamPack(
varPack: *mut cudnnFusedOpsVariantParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyFusedOpsVariantParamPack(
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnSetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnGetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnCreateFusedOpsPlan(
plan: *mut cudnnFusedOpsPlan_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnDestroyFusedOpsPlan(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnMakeFusedOpsPlan(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
constPack: cudnnFusedOpsConstParamPack_t,
workspaceSizeInBytes: *mut usize,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnFusedOpsExecute(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t;
}
pub type cudnnBackendDescriptor_t = *mut ::libc::c_void;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_ADD: cudnnPointwiseMode_t = 0;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_MUL: cudnnPointwiseMode_t = 1;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_MIN: cudnnPointwiseMode_t = 2;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_MAX: cudnnPointwiseMode_t = 3;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_SQRT: cudnnPointwiseMode_t = 4;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_IDENTITY_FWD: cudnnPointwiseMode_t = 100;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_RELU_FWD: cudnnPointwiseMode_t = 101;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_TANH_FWD: cudnnPointwiseMode_t = 102;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_SIGMOID_FWD: cudnnPointwiseMode_t = 103;
pub const cudnnPointwiseMode_t_CUDNN_POINTWISE_ELU_FWD: cudnnPointwiseMode_t = 104;
pub type cudnnPointwiseMode_t = u32;
pub const cudnnGenStatsMode_t_CUDNN_GENSTATS_SUM_SQSUM: cudnnGenStatsMode_t = 0;
pub type cudnnGenStatsMode_t = u32;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_POINTWISE_MODE: cudnnBackendAttributeName_t = 0;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_POINTWISE_MATH_PREC: cudnnBackendAttributeName_t =
1;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_POINTWISE_NAN_PROPAGATION:
cudnnBackendAttributeName_t = 2;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP:
cudnnBackendAttributeName_t = 3;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP:
cudnnBackendAttributeName_t = 4;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_COMP_TYPE:
cudnnBackendAttributeName_t = 100;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_CONVOLUTION_MODE:
cudnnBackendAttributeName_t = 101;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_DILATIONS:
cudnnBackendAttributeName_t = 102;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES:
cudnnBackendAttributeName_t = 103;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_MODE: cudnnBackendAttributeName_t =
104;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_POST_PADDINGS:
cudnnBackendAttributeName_t = 105;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS:
cudnnBackendAttributeName_t = 106;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS:
cudnnBackendAttributeName_t = 107;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_ACTIVATION_FORWARD_X:
cudnnBackendAttributeName_t = 200;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_ACTIVATION_FORWARD_Y:
cudnnBackendAttributeName_t = 201;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_ADD_TENSOR_A:
cudnnBackendAttributeName_t = 202;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_ADD_TENSOR_C:
cudnnBackendAttributeName_t = 203;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_CONVOLUTION_W:
cudnnBackendAttributeName_t = 204;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_CONVOLUTION_X:
cudnnBackendAttributeName_t = 205;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_DATA_PTR_OPERATION_CONVOLUTION_Y:
cudnnBackendAttributeName_t = 206;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINECFG_ENGINE: cudnnBackendAttributeName_t =
300;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO:
cudnnBackendAttributeName_t = 301;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINECFG_KNOB_CHOICES:
cudnnBackendAttributeName_t = 302;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_EXECUTION_PLAN_HANDLE:
cudnnBackendAttributeName_t = 400;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG:
cudnnBackendAttributeName_t = 401;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE:
cudnnBackendAttributeName_t = 402;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_EXECUTION_PLAN_INTERMEDIATES_USER_PROVIDED:
cudnnBackendAttributeName_t = 403;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE:
cudnnBackendAttributeName_t = 404;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_INTERMEDIATE_DEPENDENCY_ATTRIB_NAME:
cudnnBackendAttributeName_t = 500;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENCIES:
cudnnBackendAttributeName_t = 501;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_INTERMEDIATE_INFO_SIZE:
cudnnBackendAttributeName_t = 502;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_CHOICE_ENGINE: cudnnBackendAttributeName_t =
600;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE:
cudnnBackendAttributeName_t = 601;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE:
cudnnBackendAttributeName_t = 602;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA:
cudnnBackendAttributeName_t = 700;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA:
cudnnBackendAttributeName_t = 701;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC:
cudnnBackendAttributeName_t = 702;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W:
cudnnBackendAttributeName_t = 703;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X:
cudnnBackendAttributeName_t = 704;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y:
cudnnBackendAttributeName_t = 705;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA:
cudnnBackendAttributeName_t = 706;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA:
cudnnBackendAttributeName_t = 707;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC:
cudnnBackendAttributeName_t = 708;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W:
cudnnBackendAttributeName_t = 709;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX:
cudnnBackendAttributeName_t = 710;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY:
cudnnBackendAttributeName_t = 711;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA:
cudnnBackendAttributeName_t = 712;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA:
cudnnBackendAttributeName_t = 713;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC:
cudnnBackendAttributeName_t = 714;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW:
cudnnBackendAttributeName_t = 715;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X:
cudnnBackendAttributeName_t = 716;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY:
cudnnBackendAttributeName_t = 717;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR:
cudnnBackendAttributeName_t = 750;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_XDESC:
cudnnBackendAttributeName_t = 751;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_BDESC:
cudnnBackendAttributeName_t = 752;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_YDESC:
cudnnBackendAttributeName_t = 753;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1:
cudnnBackendAttributeName_t = 754;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2:
cudnnBackendAttributeName_t = 755;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_GENSTATS_MODE:
cudnnBackendAttributeName_t = 770;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC:
cudnnBackendAttributeName_t = 771;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_GENSTATS_XDESC:
cudnnBackendAttributeName_t = 772;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC:
cudnnBackendAttributeName_t = 773;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC:
cudnnBackendAttributeName_t = 774;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATIONGRAPH_HANDLE:
cudnnBackendAttributeName_t = 800;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATIONGRAPH_OPS: cudnnBackendAttributeName_t =
801;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT:
cudnnBackendAttributeName_t = 802;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_OPERATIONGRAPH_ENGINE_SUPPORTED_COUNT:
cudnnBackendAttributeName_t = 803;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT:
cudnnBackendAttributeName_t = 900;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_DATA_TYPE: cudnnBackendAttributeName_t =
901;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_DIMENSIONS: cudnnBackendAttributeName_t =
902;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_STRIDES: cudnnBackendAttributeName_t = 903;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_VECTOR_COUNT: cudnnBackendAttributeName_t =
904;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION:
cudnnBackendAttributeName_t = 905;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_UNIQUE_ID: cudnnBackendAttributeName_t =
906;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_TENSOR_IS_VIRTUAL: cudnnBackendAttributeName_t =
907;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS:
cudnnBackendAttributeName_t = 1000;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS:
cudnnBackendAttributeName_t = 1001;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES:
cudnnBackendAttributeName_t = 1002;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_VARIANT_PACK_WORKSPACE:
cudnnBackendAttributeName_t = 1003;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_LAYOUT_QUERY_INFO: cudnnBackendAttributeName_t =
1100;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_LAYOUT_QUERY_OPERATION_GRAPH:
cudnnBackendAttributeName_t = 1101;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_LAYOUT_QUERY_ENGINE_GLOBAL_INDEX:
cudnnBackendAttributeName_t = 1102;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_LAYOUT_QUERY_ENGINE_SUPPORTED_INDEX:
cudnnBackendAttributeName_t = 1103;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_INFO_TYPE: cudnnBackendAttributeName_t = 1200;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE:
cudnnBackendAttributeName_t = 1201;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE:
cudnnBackendAttributeName_t = 1202;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_KNOB_INFO_STRIDE: cudnnBackendAttributeName_t =
1203;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINE_OPERATION_GRAPH:
cudnnBackendAttributeName_t = 1300;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINE_GLOBAL_INDEX: cudnnBackendAttributeName_t =
1301;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINE_SUPPORTED_INDEX:
cudnnBackendAttributeName_t = 1302;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINE_KNOB_INFOS: cudnnBackendAttributeName_t =
1303;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINE_NUMERICAL_NOTE:
cudnnBackendAttributeName_t = 1304;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINEHEUR_MODE: cudnnBackendAttributeName_t =
1400;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH:
cudnnBackendAttributeName_t = 1401;
pub const cudnnBackendAttributeName_t_CUDNN_ATTR_ENGINEHEUR_RESULTS: cudnnBackendAttributeName_t =
1402;
pub type cudnnBackendAttributeName_t = u32;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_HANDLE: cudnnBackendAttributeType_t = 0;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_DATA_TYPE: cudnnBackendAttributeType_t = 1;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_BOOLEAN: cudnnBackendAttributeType_t = 2;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_INT64: cudnnBackendAttributeType_t = 3;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_FLOAT: cudnnBackendAttributeType_t = 4;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_DOUBLE: cudnnBackendAttributeType_t = 5;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_VOID_PTR: cudnnBackendAttributeType_t = 6;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_CONVOLUTION_MODE: cudnnBackendAttributeType_t = 7;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_HEUR_MODE: cudnnBackendAttributeType_t = 8;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_KNOB_TYPE: cudnnBackendAttributeType_t = 9;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_NAN_PROPOGATION: cudnnBackendAttributeType_t = 10;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_NUMERICAL_NOTE: cudnnBackendAttributeType_t = 11;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_ATTRIB_NAME: cudnnBackendAttributeType_t = 12;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_POINTWISE_MODE: cudnnBackendAttributeType_t = 13;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_BACKEND_DESCRIPTOR: cudnnBackendAttributeType_t =
14;
pub const cudnnBackendAttributeType_t_CUDNN_TYPE_GENSTATS_MODE: cudnnBackendAttributeType_t = 15;
pub type cudnnBackendAttributeType_t = u32;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_POINTWISE_DESCRIPTOR:
cudnnBackendDescriptorType_t = 0;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR:
cudnnBackendDescriptorType_t = 1;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_ENGINE_DESCRIPTOR:
cudnnBackendDescriptorType_t = 2;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_ENGINECFG_DESCRIPTOR:
cudnnBackendDescriptorType_t = 3;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR:
cudnnBackendDescriptorType_t = 4;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR:
cudnnBackendDescriptorType_t = 5;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_INTERMEDIATE_DEPENDENCY_DESCRIPTOR:
cudnnBackendDescriptorType_t = 6;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR:
cudnnBackendDescriptorType_t = 7;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR:
cudnnBackendDescriptorType_t = 8;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR:
cudnnBackendDescriptorType_t = 9;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR:
cudnnBackendDescriptorType_t = 10;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR : cudnnBackendDescriptorType_t = 11 ;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR : cudnnBackendDescriptorType_t = 12 ;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR:
cudnnBackendDescriptorType_t = 13;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR:
cudnnBackendDescriptorType_t = 14;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR:
cudnnBackendDescriptorType_t = 15;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR:
cudnnBackendDescriptorType_t = 16;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_TENSOR_DESCRIPTOR:
cudnnBackendDescriptorType_t = 17;
pub const cudnnBackendDescriptorType_t_CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR:
cudnnBackendDescriptorType_t = 18;
pub type cudnnBackendDescriptorType_t = u32;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_TENSOR_CORE:
cudnnBackendNumericalNote_t = 0;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS:
cudnnBackendNumericalNote_t = 1;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION:
cudnnBackendNumericalNote_t = 2;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_FFT: cudnnBackendNumericalNote_t = 3;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC:
cudnnBackendNumericalNote_t = 4;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_WINOGRAD: cudnnBackendNumericalNote_t =
5;
pub const cudnnBackendNumericalNote_t_CUDNN_NUMERICAL_NOTE_TYPE_COUNT: cudnnBackendNumericalNote_t =
6;
pub type cudnnBackendNumericalNote_t = u32;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPLIT_K: cudnnBackendKnobType_t = 0;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SWIZZLE: cudnnBackendKnobType_t = 1;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_TILE_SIZE: cudnnBackendKnobType_t = 2;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_USE_TEX: cudnnBackendKnobType_t = 3;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_EDGE: cudnnBackendKnobType_t = 4;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_KBLOCK: cudnnBackendKnobType_t = 5;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_LDGA: cudnnBackendKnobType_t = 6;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_LDGB: cudnnBackendKnobType_t = 7;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_CHUNK_K: cudnnBackendKnobType_t = 8;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPLIT_H: cudnnBackendKnobType_t = 9;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_WINO_TILE: cudnnBackendKnobType_t = 10;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_MULTIPLY: cudnnBackendKnobType_t = 11;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPLIT_K_BUF: cudnnBackendKnobType_t = 12;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_TILEK: cudnnBackendKnobType_t = 13;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_STAGES: cudnnBackendKnobType_t = 14;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_REDUCTION_MODE: cudnnBackendKnobType_t = 15;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE: cudnnBackendKnobType_t = 16;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPLIT_K_SLC: cudnnBackendKnobType_t = 17;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_IDX_MODE: cudnnBackendKnobType_t = 18;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SLICED: cudnnBackendKnobType_t = 19;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPLIT_RS: cudnnBackendKnobType_t = 20;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SINGLEBUFFER: cudnnBackendKnobType_t = 21;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_LDGC: cudnnBackendKnobType_t = 22;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_SPECFILT: cudnnBackendKnobType_t = 23;
pub const cudnnBackendKnobType_t_CUDNN_KNOB_TYPE_COUNTS: cudnnBackendKnobType_t = 24;
pub type cudnnBackendKnobType_t = u32;
pub const cudnnBackendLayoutType_t_CUDNN_LAYOUT_TYPE_REQUIRED_NCHW: cudnnBackendLayoutType_t = 0;
pub const cudnnBackendLayoutType_t_CUDNN_LAYOUT_TYPE_PREFERRED_NCHW: cudnnBackendLayoutType_t = 1;
pub const cudnnBackendLayoutType_t_CUDNN_LAYOUT_TYPE_REQUIRED_PADC8_FOLDED_NHWC:
cudnnBackendLayoutType_t = 2;
pub type cudnnBackendLayoutType_t = u32;
pub const cudnnBackendHeurMode_t_CUDNN_HEUR_MODE_INSTANT: cudnnBackendHeurMode_t = 0;
pub const cudnnBackendHeurMode_t_CUDNN_HEUR_MODES_COUNT: cudnnBackendHeurMode_t = 1;
pub type cudnnBackendHeurMode_t = u32;
extern "C" {
pub fn cudnnBackendCreateDescriptor(
descriptorType: cudnnBackendDescriptorType_t,
descriptor: *mut cudnnBackendDescriptor_t,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendDestroyDescriptor(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendInitialize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendFinalize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendSetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
elementCount: i64,
arrayOfElements: *const ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendGetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
requestedElementCount: i64,
elementCount: *mut i64,
arrayOfElements: *mut ::libc::c_void,
) -> cudnnStatus_t;
}
extern "C" {
pub fn cudnnBackendExecute(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
) -> cudnnStatus_t;
}