#[non_exhaustive]
#[repr(u32)]
pub enum CUjit_option_enum {
Show 32 variants CU_JIT_MAX_REGISTERS = 0, CU_JIT_THREADS_PER_BLOCK = 1, CU_JIT_WALL_TIME = 2, CU_JIT_INFO_LOG_BUFFER = 3, CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = 4, CU_JIT_ERROR_LOG_BUFFER = 5, CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = 6, CU_JIT_OPTIMIZATION_LEVEL = 7, CU_JIT_TARGET_FROM_CUCONTEXT = 8, CU_JIT_TARGET = 9, CU_JIT_FALLBACK_STRATEGY = 10, CU_JIT_GENERATE_DEBUG_INFO = 11, CU_JIT_LOG_VERBOSE = 12, CU_JIT_GENERATE_LINE_INFO = 13, CU_JIT_CACHE_MODE = 14, CU_JIT_NEW_SM3X_OPT = 15, CU_JIT_FAST_COMPILE = 16, CU_JIT_GLOBAL_SYMBOL_NAMES = 17, CU_JIT_GLOBAL_SYMBOL_ADDRESSES = 18, CU_JIT_GLOBAL_SYMBOL_COUNT = 19, CU_JIT_LTO = 20, CU_JIT_FTZ = 21, CU_JIT_PREC_DIV = 22, CU_JIT_PREC_SQRT = 23, CU_JIT_FMA = 24, CU_JIT_REFERENCED_KERNEL_NAMES = 25, CU_JIT_REFERENCED_KERNEL_COUNT = 26, CU_JIT_REFERENCED_VARIABLE_NAMES = 27, CU_JIT_REFERENCED_VARIABLE_COUNT = 28, CU_JIT_OPTIMIZE_UNUSED_DEVICE_VARIABLES = 29, CU_JIT_POSITION_INDEPENDENT_CODE = 30, CU_JIT_NUM_OPTIONS = 31,
}
Expand description

Online compiler and linker options

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

CU_JIT_MAX_REGISTERS = 0

Max number of registers that a thread may use.\n Option type: unsigned int\n Applies to: compiler only

§

CU_JIT_THREADS_PER_BLOCK = 1

IN: Specifies minimum number of threads per block to target compilation for\n OUT: Returns the number of threads the compiler actually targeted. This restricts the resource utilization of the compiler (e.g. max registers) such that a block with the given number of threads should be able to launch based on register limitations. Note, this option does not currently take into account any other resource limitations, such as shared memory utilization.\n Cannot be combined with ::CU_JIT_TARGET.\n Option type: unsigned int\n Applies to: compiler only

§

CU_JIT_WALL_TIME = 2

Overwrites the option value with the total wall clock time, in milliseconds, spent in the compiler and linker\n Option type: float\n Applies to: compiler and linker

§

CU_JIT_INFO_LOG_BUFFER = 3

Pointer to a buffer in which to print any log messages that are informational in nature (the buffer size is specified via option ::CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES)\n Option type: char *\n Applies to: compiler and linker

§

CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES = 4

IN: Log buffer size in bytes. Log messages will be capped at this size (including null terminator)\n OUT: Amount of log buffer filled with messages\n Option type: unsigned int\n Applies to: compiler and linker

§

CU_JIT_ERROR_LOG_BUFFER = 5

Pointer to a buffer in which to print any log messages that reflect errors (the buffer size is specified via option ::CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES)\n Option type: char *\n Applies to: compiler and linker

§

CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES = 6

IN: Log buffer size in bytes. Log messages will be capped at this size (including null terminator)\n OUT: Amount of log buffer filled with messages\n Option type: unsigned int\n Applies to: compiler and linker

§

CU_JIT_OPTIMIZATION_LEVEL = 7

Level of optimizations to apply to generated code (0 - 4), with 4 being the default and highest level of optimizations.\n Option type: unsigned int\n Applies to: compiler only

§

CU_JIT_TARGET_FROM_CUCONTEXT = 8

No option value required. Determines the target based on the current attached context (default)\n Option type: No option value needed\n Applies to: compiler and linker

§

CU_JIT_TARGET = 9

Target is chosen based on supplied ::CUjit_target. Cannot be combined with ::CU_JIT_THREADS_PER_BLOCK.\n Option type: unsigned int for enumerated type ::CUjit_target\n Applies to: compiler and linker

§

CU_JIT_FALLBACK_STRATEGY = 10

Specifies choice of fallback strategy if matching cubin is not found. Choice is based on supplied ::CUjit_fallback. This option cannot be used with cuLink* APIs as the linker requires exact matches.\n Option type: unsigned int for enumerated type ::CUjit_fallback\n Applies to: compiler only

§

CU_JIT_GENERATE_DEBUG_INFO = 11

Specifies whether to create debug information in output (-g) (0: false, default)\n Option type: int\n Applies to: compiler and linker

§

CU_JIT_LOG_VERBOSE = 12

Generate verbose log messages (0: false, default)\n Option type: int\n Applies to: compiler and linker

§

CU_JIT_GENERATE_LINE_INFO = 13

Generate line number information (-lineinfo) (0: false, default)\n Option type: int\n Applies to: compiler only

§

CU_JIT_CACHE_MODE = 14

Specifies whether to enable caching explicitly (-dlcm) \n Choice is based on supplied ::CUjit_cacheMode_enum.\n Option type: unsigned int for enumerated type ::CUjit_cacheMode_enum\n Applies to: compiler only

§

CU_JIT_NEW_SM3X_OPT = 15

\deprecated This jit option is deprecated and should not be used.

§

CU_JIT_FAST_COMPILE = 16

This jit option is used for internal purpose only.

§

CU_JIT_GLOBAL_SYMBOL_NAMES = 17

Array of device symbol names that will be relocated to the corresponding host addresses stored in ::CU_JIT_GLOBAL_SYMBOL_ADDRESSES.\n Must contain ::CU_JIT_GLOBAL_SYMBOL_COUNT entries.\n When loading a device module, driver will relocate all encountered unresolved symbols to the host addresses.\n It is only allowed to register symbols that correspond to unresolved global variables.\n It is illegal to register the same device symbol at multiple addresses.\n Option type: const char **\n Applies to: dynamic linker only

§

CU_JIT_GLOBAL_SYMBOL_ADDRESSES = 18

Array of host addresses that will be used to relocate corresponding device symbols stored in ::CU_JIT_GLOBAL_SYMBOL_NAMES.\n Must contain ::CU_JIT_GLOBAL_SYMBOL_COUNT entries.\n Option type: void **\n Applies to: dynamic linker only

§

CU_JIT_GLOBAL_SYMBOL_COUNT = 19

Number of entries in ::CU_JIT_GLOBAL_SYMBOL_NAMES and ::CU_JIT_GLOBAL_SYMBOL_ADDRESSES arrays.\n Option type: unsigned int\n Applies to: dynamic linker only

§

CU_JIT_LTO = 20

\deprecated Enable link-time optimization (-dlto) for device code (Disabled by default).\n This option is not supported on 32-bit platforms.\n Option type: int\n Applies to: compiler and linker

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_FTZ = 21

\deprecated Control single-precision denormals (-ftz) support (0: false, default). 1 : flushes denormal values to zero 0 : preserves denormal values Option type: int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_PREC_DIV = 22

\deprecated Control single-precision floating-point division and reciprocals (-prec-div) support (1: true, default). 1 : Enables the IEEE round-to-nearest mode 0 : Enables the fast approximation mode Option type: int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_PREC_SQRT = 23

\deprecated Control single-precision floating-point square root (-prec-sqrt) support (1: true, default). 1 : Enables the IEEE round-to-nearest mode 0 : Enables the fast approximation mode Option type: int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_FMA = 24

\deprecated Enable/Disable the contraction of floating-point multiplies and adds/subtracts into floating-point multiply-add (-fma) operations (1: Enable, default; 0: Disable). Option type: int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_REFERENCED_KERNEL_NAMES = 25

\deprecated Array of kernel names that should be preserved at link time while others can be removed.\n Must contain ::CU_JIT_REFERENCED_KERNEL_COUNT entries.\n Note that kernel names can be mangled by the compiler in which case the mangled name needs to be specified.\n Wildcard “” can be used to represent zero or more characters instead of specifying the full or mangled name.\n It is important to note that the wildcard “” is also added implicitly. For example, specifying “foo” will match “foobaz”, “barfoo”, “barfoobaz” and thus preserve all kernels with those names. This can be avoided by providing a more specific name like “barfoobaz”.\n Option type: const char **\n Applies to: dynamic linker only

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_REFERENCED_KERNEL_COUNT = 26

\deprecated Number of entries in ::CU_JIT_REFERENCED_KERNEL_NAMES array.\n Option type: unsigned int\n Applies to: dynamic linker only

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_REFERENCED_VARIABLE_NAMES = 27

\deprecated Array of variable names (device and/or constant) that should be preserved at link time while others can be removed.\n Must contain ::CU_JIT_REFERENCED_VARIABLE_COUNT entries.\n Note that variable names can be mangled by the compiler in which case the mangled name needs to be specified.\n Wildcard “” can be used to represent zero or more characters instead of specifying the full or mangled name.\n It is important to note that the wildcard “” is also added implicitly. For example, specifying “foo” will match “foobaz”, “barfoo”, “barfoobaz” and thus preserve all variables with those names. This can be avoided by providing a more specific name like “barfoobaz”.\n Option type: const char **\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_REFERENCED_VARIABLE_COUNT = 28

\deprecated Number of entries in ::CU_JIT_REFERENCED_VARIABLE_NAMES array.\n Option type: unsigned int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_OPTIMIZE_UNUSED_DEVICE_VARIABLES = 29

\deprecated This option serves as a hint to enable the JIT compiler/linker to remove constant (constant) and device (device) variables unreferenced in device code (Disabled by default).\n Note that host references to constant and device variables using APIs like ::cuModuleGetGlobal() with this option specified may result in undefined behavior unless the variables are explicitly specified using ::CU_JIT_REFERENCED_VARIABLE_NAMES.\n Option type: int\n Applies to: link-time optimization specified with CU_JIT_LTO

Only valid with LTO-IR compiled with toolkits prior to CUDA 12.0

§

CU_JIT_POSITION_INDEPENDENT_CODE = 30

Generate position independent code (0: false)\n Option type: int\n Applies to: compiler only

§

CU_JIT_NUM_OPTIONS = 31

Generate position independent code (0: false)\n Option type: int\n Applies to: compiler only

Trait Implementations§

source§

impl Clone for CUjit_option_enum

source§

fn clone(&self) -> CUjit_option_enum

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CUjit_option_enum

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for CUjit_option_enum

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for CUjit_option_enum

source§

fn eq(&self, other: &CUjit_option_enum) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for CUjit_option_enum

source§

impl Eq for CUjit_option_enum

source§

impl StructuralPartialEq for CUjit_option_enum

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.