nvjitlink¶
Note¶
The nvjitlink bindings are not supported on nvJitLink installations <12.3. Ensure the installed CUDA toolkit’s nvJitLink version is >=12.3.
Functions¶
NvJitLink defines the following functions for linking code objects and querying the info and error logs.
- cuda.bindings.nvjitlink.create(uint32_t num_options, options) intptr_t¶
nvJitLinkCreate creates an instance of nvJitLinkHandle with the given input options, and sets the output parameter
handle.- Parameters:
num_options (uint32_t) – Number of options passed.
options (object) –
Array of size
num_optionsof option strings. It can be:
- Returns:
Address of nvJitLink handle.
- Return type:
intptr_t
See also
- cuda.bindings.nvjitlink.destroy(intptr_t handle)¶
nvJitLinkDestroy frees the memory associated with the given handle.
- Parameters:
handle (intptr_t) – nvJitLink handle.
See also
- cuda.bindings.nvjitlink.add_data(intptr_t handle, int input_type, data, size_t size, name)¶
nvJitLinkAddData adds data image to the link.
- Parameters:
See also
- cuda.bindings.nvjitlink.add_file(intptr_t handle, int input_type, file_name)¶
nvJitLinkAddFile reads data from file and links it in.
- Parameters:
See also
- cuda.bindings.nvjitlink.complete(intptr_t handle)¶
nvJitLinkComplete does the actual link.
- Parameters:
handle (intptr_t) – nvJitLink handle.
See also
- cuda.bindings.nvjitlink.get_linked_cubin_size(intptr_t handle) size_t¶
nvJitLinkGetLinkedCubinSize gets the size of the linked cubin.
- Parameters:
handle (intptr_t) – nvJitLink handle.
- Returns:
Size of the linked cubin.
- Return type:
size_t
See also
- cuda.bindings.nvjitlink.get_linked_cubin(intptr_t handle, cubin)¶
nvJitLinkGetLinkedCubin gets the linked cubin.
- Parameters:
handle (intptr_t) – nvJitLink handle.
cubin (bytes) – The linked cubin.
See also
- cuda.bindings.nvjitlink.get_linked_ptx_size(intptr_t handle) size_t¶
nvJitLinkGetLinkedPtxSize gets the size of the linked ptx.
- Parameters:
handle (intptr_t) – nvJitLink handle.
- Returns:
Size of the linked PTX.
- Return type:
size_t
See also
- cuda.bindings.nvjitlink.get_linked_ptx(intptr_t handle, ptx)¶
nvJitLinkGetLinkedPtx gets the linked ptx.
- Parameters:
handle (intptr_t) – nvJitLink handle.
ptx (bytes) – The linked PTX.
See also
- cuda.bindings.nvjitlink.get_error_log_size(intptr_t handle) size_t¶
nvJitLinkGetErrorLogSize gets the size of the error log.
- Parameters:
handle (intptr_t) – nvJitLink handle.
- Returns:
Size of the error log.
- Return type:
size_t
See also
- cuda.bindings.nvjitlink.get_error_log(intptr_t handle, log)¶
nvJitLinkGetErrorLog puts any error messages in the log.
- Parameters:
handle (intptr_t) – nvJitLink handle.
log (bytes) – The error log.
See also
- cuda.bindings.nvjitlink.get_info_log_size(intptr_t handle) size_t¶
nvJitLinkGetInfoLogSize gets the size of the info log.
- Parameters:
handle (intptr_t) – nvJitLink handle.
- Returns:
Size of the info log.
- Return type:
size_t
See also
- cuda.bindings.nvjitlink.get_info_log(intptr_t handle, log)¶
nvJitLinkGetInfoLog puts any info messages in the log.
- Parameters:
handle (intptr_t) – nvJitLink handle.
log (bytes) – The info log.
See also
Types¶
- class cuda.bindings.nvjitlink.Result(value: int)¶
The enumerated type nvJitLinkResult defines API call result codes. nvJitLink APIs return nvJitLinkResult codes to indicate the result.
See
nvJitLinkResult.- SUCCESS = <Result.SUCCESS: 0>¶
- ERROR_UNRECOGNIZED_OPTION = <Result.ERROR_UNRECOGNIZED_OPTION: 1>¶
- ERROR_MISSING_ARCH = <Result.ERROR_MISSING_ARCH: 2>¶
- ERROR_INVALID_INPUT = <Result.ERROR_INVALID_INPUT: 3>¶
- ERROR_PTX_COMPILE = <Result.ERROR_PTX_COMPILE: 4>¶
- ERROR_NVVM_COMPILE = <Result.ERROR_NVVM_COMPILE: 5>¶
- ERROR_INTERNAL = <Result.ERROR_INTERNAL: 6>¶
- ERROR_THREADPOOL = <Result.ERROR_THREADPOOL: 7>¶
- ERROR_UNRECOGNIZED_INPUT = <Result.ERROR_UNRECOGNIZED_INPUT: 8>¶
- ERROR_FINALIZE = <Result.ERROR_FINALIZE: 9>¶
- class cuda.bindings.nvjitlink.InputType(value: int)¶
The enumerated type nvJitLinkInputType defines the kind of inputs that can be passed to nvJitLinkAdd* APIs.
See
nvJitLinkInputType.- NONE = <InputType.NONE: 0>¶
- CUBIN = <InputType.CUBIN: 1>¶
- PTX = <InputType.PTX: 2>¶
- LTOIR = <InputType.LTOIR: 3>¶
- FATBIN = <InputType.FATBIN: 4>¶
- OBJECT = <InputType.OBJECT: 5>¶
- LIBRARY = <InputType.LIBRARY: 6>¶
- INDEX = <InputType.INDEX: 7>¶
- ANY = <InputType.ANY: 10>¶