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>#