cuda.core.experimental.ObjectCode

class cuda.core.experimental.ObjectCode(*args, **kwargs)

Represent a compiled program to be loaded onto the device.

This object provides a unified interface for different types of compiled programs that will be loaded onto the device.

Note

This class has no default constructor. If you already have a cubin that you would like to load, use the from_cubin() alternative constructor. Constructing directly from all other possible code types should be avoided in favor of compilation through Program

Note

Usage under CUDA 11.x will only load to the current device context.

Methods

__init__()
static from_cubin(module: bytes | str, *, symbol_mapping: dict | None = None) ObjectCode

Create an ObjectCode instance from an existing cubin.

Parameters:
  • module (Union[bytes, str]) – Either a bytes object containing the in-memory cubin to load, or a file path string pointing to the on-disk cubin to load.

  • symbol_mapping (Optional[dict]) – A dictionary specifying how the unmangled symbol names (as keys) should be mapped to the mangled names before trying to retrieve them (default to no mappings).

static from_ptx(module: bytes | str, *, symbol_mapping: dict | None = None) ObjectCode

Create an ObjectCode instance from an existing PTX.

Parameters:
  • module (Union[bytes, str]) – Either a bytes object containing the in-memory ptx code to load, or a file path string pointing to the on-disk ptx file to load.

  • symbol_mapping (Optional[dict]) – A dictionary specifying how the unmangled symbol names (as keys) should be mapped to the mangled names before trying to retrieve them (default to no mappings).

get_kernel(name) Kernel

Return the Kernel of a specified name from this object code.

Parameters:

name (Any) – Name of the kernel to retrieve.

Returns:

Newly created kernel object.

Return type:

Kernel

Attributes

property code: bytes | bytearray | str

Return the underlying code object.