pub enum PtxType {
Show 26 variants
U8,
U16,
U32,
U64,
S8,
S16,
S32,
S64,
F16,
F16x2,
BF16,
BF16x2,
F32,
F64,
TF32,
E4M3,
E5M2,
E2M3,
E3M2,
E2M1,
B8,
B16,
B32,
B64,
B128,
Pred,
}Expand description
PTX data types as defined in the PTX ISA.
Covers unsigned/signed integers, all floating-point widths (including FP8/FP6/FP4 formats introduced in Hopper and Blackwell architectures), untyped bit-width types, and predicates.
Variants§
U8
8-bit unsigned integer.
U16
16-bit unsigned integer.
U32
32-bit unsigned integer.
U64
64-bit unsigned integer.
S8
8-bit signed integer.
S16
16-bit signed integer.
S32
32-bit signed integer.
S64
64-bit signed integer.
F16
IEEE 754 half-precision (16-bit) float.
F16x2
Packed pair of half-precision floats.
BF16
Brain floating-point (16-bit, 8-bit exponent).
BF16x2
Packed pair of BF16 floats.
F32
IEEE 754 single-precision (32-bit) float.
F64
IEEE 754 double-precision (64-bit) float.
TF32
TensorFloat-32 (19-bit, used in Tensor Cores).
E4M3
FP8 E4M3 format (Hopper+).
E5M2
FP8 E5M2 format (Hopper+).
E2M3
FP6 E2M3 format (Blackwell).
E3M2
FP6 E3M2 format (Blackwell).
E2M1
FP4 E2M1 format (Blackwell).
B8
8-bit untyped.
B16
16-bit untyped.
B32
32-bit untyped.
B64
64-bit untyped.
B128
128-bit untyped.
Pred
1-bit predicate register type.
Implementations§
Source§impl PtxType
impl PtxType
Sourcepub const fn as_ptx_str(&self) -> &'static str
pub const fn as_ptx_str(&self) -> &'static str
Returns the PTX ISA string representation of this type (e.g., ".f32", ".u64").
Sourcepub const fn size_bytes(&self) -> usize
pub const fn size_bytes(&self) -> usize
Returns the size in bytes of a single value of this type.
Packed types (e.g., F16x2) return the size of the packed value.
Predicates return 1 byte (the minimum addressable unit).
Sourcepub const fn reg_type(&self) -> Self
pub const fn reg_type(&self) -> Self
Returns the register-width class type used in .reg declarations.
PTX uses register classes based on width: 16-bit, 32-bit, 64-bit, and predicate. Sub-32-bit types are promoted to 32-bit registers; 128-bit uses 64-bit pairs.
Sourcepub const fn is_integer(&self) -> bool
pub const fn is_integer(&self) -> bool
Returns true if this is an integer type (signed or unsigned).
Sourcepub const fn is_float(&self) -> bool
pub const fn is_float(&self) -> bool
Returns true if this is a floating-point type (including packed and special formats).