pub mod dim;
pub use dim::*;
use serde::{Deserialize, Serialize};
#[derive(PartialEq, Eq, Hash, Debug, Serialize, Deserialize)]
pub struct Device(pub u64);
#[derive(PartialEq, Eq, Hash, Debug, Serialize, Deserialize)]
pub struct Context(pub u64);
#[derive(PartialEq, Eq, Hash, Debug, Serialize, Deserialize)]
pub struct Function(pub u64);
#[derive(PartialEq, Eq, Hash, Debug, Serialize, Deserialize)]
pub struct Stream(pub u64);
#[derive(PartialEq, Eq, Hash, Debug, Clone, Copy, Serialize, Deserialize)]
pub enum FunctionAttribute {
MaxThreadsPerBlock,
SharedSizeBytes,
ConstSizeBytes,
LocalSizeBytes,
NumRegs,
PTXVersion,
BinaryVersion,
CacheModeCA,
MaxDynamicSharedSizeBytes,
PreferredSharedMemoryCarveout,
Max,
}
#[derive(Hash, PartialEq, Eq, Debug, Clone, Copy, Serialize, Deserialize)]
pub enum RegisterModifier {
None = 0,
X1 = 1,
X4 = 2,
X8 = 3,
X16 = 4,
U32 = 5,
U64 = 6,
}
#[derive(PartialEq, Debug, Clone, Serialize, Deserialize)]
pub enum OperandKind {
ImmutableUint64 {
value: u64,
},
ImmutableDouble {
value: f64,
},
Register {
num: i32,
prop: String,
},
Predicate {
num: i32,
},
CBank {
id: i32,
has_imm_offset: bool,
imm_offset: i32,
has_reg_offset: bool,
reg_offset: i32,
},
MemRef {
has_ra: bool,
ra_num: i32,
ra_mod: RegisterModifier,
has_ur: bool,
ur_num: i32,
ur_mod: RegisterModifier,
has_imm: bool,
imm: i32,
},
Generic {
array: String,
},
}
#[derive(Hash, PartialEq, Eq, Debug, Clone, Copy, Serialize, Deserialize)]
pub enum MemorySpace {
None = 0,
Local = 1,
Generic = 2,
Global = 3,
Shared = 4,
Constant = 5,
GlobalToShared = 6,
Surface = 7,
Texture = 8,
}
#[derive(Default, PartialEq, Eq, Hash, Debug, Clone, Serialize, Deserialize)]
pub struct Predicate {
pub num: std::ffi::c_int,
pub is_neg: bool,
pub is_uniform: bool,
}
#[derive(Hash, PartialEq, Eq, Debug, Clone, Copy, Serialize, Deserialize)]
pub enum InsertionPoint {
Before,
After,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash, Serialize, Deserialize)]
pub enum CudaErrorKind {
Success,
InvalidValue,
OutOfMemory,
NotInitialized,
Deinitialized,
ProfilerDisabled,
ProfilerNotInitialized,
ProfilerAlreadyStarted,
ProfilerAlreadyStopped,
NoDevice,
InvalidDevice,
InvalidImage,
InvalidContext,
ContextAlreadyCurrent,
MapFailed,
UnmapFailed,
ArrayIsMapped,
AlreadyMapped,
NoBinaryForGpu,
AlreadyAcquired,
NotMapped,
NotMappedAsArray,
NotMappedAsPointer,
EccUncorrectable,
UnsupportedLimit,
ContextAlreadyInUse,
PeerAccessUnsupported,
InvalidPtx,
InvalidGraphicsContext,
NvlinkUncorrectable,
InvalidSouce,
FileNotFound,
SharedObjectSymbolNotFound,
SharedObjectInitFailed,
OperatingSystemError,
InvalidHandle,
NotFound,
NotReady,
IllegalAddress,
LaunchOutOfResources,
LaunchTimeout,
LaunchIncompatibleTexturing,
PeerAccessAlreadyEnabled,
PeerAccessNotEnabled,
PrimaryContextActive,
ContextIsDestroyed,
AssertError,
TooManyPeers,
HostMemoryAlreadyRegistered,
HostMemoryNotRegistered,
HardwareStackError,
IllegalInstruction,
MisalignedAddress,
InvalidAddressSpace,
InvalidProgramCounter,
LaunchFailed,
NotPermitted,
NotSupported,
Unknown,
}