Skip to main content
Ctrl+K
Warning: This documentation is only a preview for PR 3294! To keep previews small, the autosummary-generated API pages are omitted.
cuda.bindings - Home cuda.bindings - Home

cuda.bindings

  • Release Notes
  • Installation
  • Overview
  • Examples
  • Motivation
    • Environment Variables
    • CUDA Python API Reference
    • Tips and Tricks
    • cuda.bindings Support Policy
    • Contributing
    • Code of Conduct
    • Apache License 2.0
cuda.bindings - Home cuda.bindings - Home

cuda.bindings

  • Release Notes
  • Installation
  • Overview
  • Examples
  • Motivation
  • Environment Variables
  • CUDA Python API Reference
  • Tips and Tricks
  • cuda.bindings Support Policy
  • Contributing
  • Code of Conduct
  • Apache License 2.0

Table of Contents

Contents:

  • Release Notes
    • 13.5.0
    • 13.4.4
    • 13.4.3
    • 13.4.2
    • 13.4.1
    • 13.4.0
    • 13.3.1
    • 13.3.0
    • 13.2.0
    • 13.1.1
    • 13.1.0
    • 13.0.3
    • 13.0.2
    • 13.0.1
    • 13.0.0
    • 12.9.9
    • 12.9.8
    • 12.9.7
    • 12.9.6
    • 12.9.5
    • 12.9.4
    • 12.9.3
    • 12.9.2
    • 12.9.1
    • 12.9.0
    • 12.8.0
    • 12.6.2
    • 12.6.1
    • 12.6.0
    • 12.5.0
    • 12.4.0
    • 12.3.0
    • 12.2.1
    • 12.2.0
    • 12.1.0
    • 12.0.0
    • 11.8.7
    • 11.8.6
    • 11.8.5
    • 11.8.4
    • 11.8.3
    • 11.8.2
    • 11.8.1
    • 11.8.0
    • 11.7.1
    • 11.7.0
    • 11.6.1
    • 11.6.0
    • 11.5.0
    • 11.4.0
  • Installation
  • Overview
  • Examples
  • Motivation
  • Environment Variables
  • CUDA Python API Reference
    • driver
    • driver_v2
    • runtime
    • nvrtc
    • nvrtc_v2
    • nvjitlink
    • nvvm
    • nvfatbin
    • cudla
    • cufile
    • nvml
    • utils
  • Tips and Tricks
  • cuda.bindings Support Policy
  • Contributing
  • Code of Conduct
  • Apache License 2.0
  • CUDA Python API Reference
  • nvjitlink

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.

It supports options listed in Supported Link Options.

Parameters:
  • num_options (uint32_t) – Number of options passed.

  • options (object) –

    Array of size num_options of option strings. It can be:

    • an int as the pointer address to the nested sequence, or

    • a Python sequence of ints, each of which is a pointer address to a valid sequence of ‘char’, or

    • a nested Python sequence of str.

Returns:

Address of nvJitLink handle.

Return type:

intptr_t

See also

nvJitLinkCreate

cuda.bindings.nvjitlink.destroy(intptr_t handle)#

nvJitLinkDestroy frees the memory associated with the given handle.

Parameters:

handle (intptr_t) – nvJitLink handle.

See also

nvJitLinkDestroy

cuda.bindings.nvjitlink.add_data(intptr_t handle, int input_type, data, size_t size, name)#

nvJitLinkAddData adds data image to the link.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • input_type (InputType) – kind of input.

  • data (bytes) – pointer to data image in memory.

  • size (size_t) – size of the data.

  • name (str) – name of input object.

See also

nvJitLinkAddData

cuda.bindings.nvjitlink.add_file(intptr_t handle, int input_type, file_name)#

nvJitLinkAddFile reads data from file and links it in.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • input_type (InputType) – kind of input.

  • file_name (str) – name of file.

See also

nvJitLinkAddFile

cuda.bindings.nvjitlink.complete(intptr_t handle)#

nvJitLinkComplete does the actual link.

Parameters:

handle (intptr_t) – nvJitLink handle.

See also

nvJitLinkComplete

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

nvJitLinkGetLinkedCubinSize

cuda.bindings.nvjitlink.get_linked_cubin(intptr_t handle, cubin)#

nvJitLinkGetLinkedCubin gets the linked cubin.

User is responsible for allocating enough space to hold the cubin.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • cubin (bytes) – The linked cubin.

See also

nvJitLinkGetLinkedCubin

cuda.bindings.nvjitlink.get_linked_ptx_size(intptr_t handle) → size_t#

nvJitLinkGetLinkedPtxSize gets the size of the linked ptx.

Linked PTX is only available when using the -lto option.

Parameters:

handle (intptr_t) – nvJitLink handle.

Returns:

Size of the linked PTX.

Return type:

size_t

See also

nvJitLinkGetLinkedPtxSize

cuda.bindings.nvjitlink.get_linked_ptx(intptr_t handle, ptx)#

nvJitLinkGetLinkedPtx gets the linked ptx.

Linked PTX is only available when using the -lto option. User is responsible for allocating enough space to hold the ptx.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • ptx (bytes) – The linked PTX.

See also

nvJitLinkGetLinkedPtx

cuda.bindings.nvjitlink.get_linked_ltoir_size(intptr_t handle) → size_t#

nvJitLinkGetLinkedLTOIRSize gets the size of the linked LTOIR.

Linked LTOIR is only available when using the -lto option. The returned data is in LTOIR Container format (not raw bitcode).

Parameters:

handle (intptr_t) – nvJitLink handle.

Returns:

Size of the linked LTOIR.

Return type:

size_t

See also

nvJitLinkGetLinkedLTOIRSize

cuda.bindings.nvjitlink.get_linked_ltoir(intptr_t handle, ltoir)#

nvJitLinkGetLinkedLTOIR gets the linked LTOIR.

Linked LTOIR is only available when using the -lto option. User is responsible for allocating enough space to hold the ltoir. The returned data is in LTOIR Container format (not raw bitcode).

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • ltoir (bytes) – The linked LTOIR in Container format.

See also

nvJitLinkGetLinkedLTOIR

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

nvJitLinkGetErrorLogSize

cuda.bindings.nvjitlink.get_error_log(intptr_t handle, log)#

nvJitLinkGetErrorLog puts any error messages in the log.

User is responsible for allocating enough space to hold the log.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • log (bytes) – The error log.

See also

nvJitLinkGetErrorLog

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

nvJitLinkGetInfoLogSize

cuda.bindings.nvjitlink.get_info_log(intptr_t handle, log)#

nvJitLinkGetInfoLog puts any info messages in the log.

User is responsible for allocating enough space to hold the log.

Parameters:
  • handle (intptr_t) – nvJitLink handle.

  • log (bytes) – The info log.

See also

nvJitLinkGetInfoLog

cuda.bindings.nvjitlink.version() → tuple#

nvJitLinkVersion returns the current version of nvJitLink.

Returns:

  • unsigned int: The major version.

  • unsigned int: The minor version.

Return type:

A 2-tuple containing

See also

nvJitLinkVersion

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>#
ERROR_NULL_INPUT = <Result.ERROR_NULL_INPUT: 10>#
ERROR_INCOMPATIBLE_OPTIONS = <Result.ERROR_INCOMPATIBLE_OPTIONS: 11>#
ERROR_INCORRECT_INPUT_TYPE = <Result.ERROR_INCORRECT_INPUT_TYPE: 12>#
ERROR_ARCH_MISMATCH = <Result.ERROR_ARCH_MISMATCH: 13>#
ERROR_OUTDATED_LIBRARY = <Result.ERROR_OUTDATED_LIBRARY: 14>#
ERROR_MISSING_FATBIN = <Result.ERROR_MISSING_FATBIN: 15>#
ERROR_UNRECOGNIZED_ARCH = <Result.ERROR_UNRECOGNIZED_ARCH: 16>#
ERROR_UNSUPPORTED_ARCH = <Result.ERROR_UNSUPPORTED_ARCH: 17>#
ERROR_LTO_NOT_ENABLED = <Result.ERROR_LTO_NOT_ENABLED: 18>#
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>#

previous

nvrtc_v2

next

nvvm

On this page
  • Note
  • Functions
    • create()
    • destroy()
    • add_data()
    • add_file()
    • complete()
    • get_linked_cubin_size()
    • get_linked_cubin()
    • get_linked_ptx_size()
    • get_linked_ptx()
    • get_linked_ltoir_size()
    • get_linked_ltoir()
    • get_error_log_size()
    • get_error_log()
    • get_info_log_size()
    • get_info_log()
    • version()
  • Types
    • Result
      • Result.SUCCESS
      • Result.ERROR_UNRECOGNIZED_OPTION
      • Result.ERROR_MISSING_ARCH
      • Result.ERROR_INVALID_INPUT
      • Result.ERROR_PTX_COMPILE
      • Result.ERROR_NVVM_COMPILE
      • Result.ERROR_INTERNAL
      • Result.ERROR_THREADPOOL
      • Result.ERROR_UNRECOGNIZED_INPUT
      • Result.ERROR_FINALIZE
      • Result.ERROR_NULL_INPUT
      • Result.ERROR_INCOMPATIBLE_OPTIONS
      • Result.ERROR_INCORRECT_INPUT_TYPE
      • Result.ERROR_ARCH_MISMATCH
      • Result.ERROR_OUTDATED_LIBRARY
      • Result.ERROR_MISSING_FATBIN
      • Result.ERROR_UNRECOGNIZED_ARCH
      • Result.ERROR_UNSUPPORTED_ARCH
      • Result.ERROR_LTO_NOT_ENABLED
    • InputType
      • InputType.NONE
      • InputType.CUBIN
      • InputType.PTX
      • InputType.LTOIR
      • InputType.FATBIN
      • InputType.OBJECT
      • InputType.LIBRARY
      • InputType.INDEX
      • InputType.ANY
NVIDIA NVIDIA
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2021-2026, NVIDIA.