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 throughProgram
Note
Usage under CUDA 11.x will only load to the current device context.
Methods
- __init__()¶
- static from_cubin(module: bytes | str, *, name: 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.
name (Optional[str]) – A human-readable identifier representing this code object.
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_fatbin(module: bytes | str, *, name: str = '', symbol_mapping: dict | None = None) ObjectCode ¶
Create an
ObjectCode
instance from an existing fatbin.- Parameters:
module (Union[bytes, str]) – Either a bytes object containing the in-memory fatbin to load, or a file path string pointing to the on-disk fatbin to load.
name (Optional[str]) – A human-readable identifier representing this code object.
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_library(module: bytes | str, *, name: str = '', symbol_mapping: dict | None = None) ObjectCode ¶
Create an
ObjectCode
instance from an existing library.- Parameters:
module (Union[bytes, str]) – Either a bytes object containing the in-memory library to load, or a file path string pointing to the on-disk library to load.
name (Optional[str]) – A human-readable identifier representing this code object.
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_ltoir(module: bytes | str, *, name: str = '', symbol_mapping: dict | None = None) ObjectCode ¶
Create an
ObjectCode
instance from an existing LTOIR.- Parameters:
module (Union[bytes, str]) – Either a bytes object containing the in-memory ltoir code to load, or a file path string pointing to the on-disk ltoir file to load.
name (Optional[str]) – A human-readable identifier representing this code object.
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_object(module: bytes | str, *, name: str = '', symbol_mapping: dict | None = None) ObjectCode ¶
Create an
ObjectCode
instance from an existing object code.- Parameters:
module (Union[bytes, str]) – Either a bytes object containing the in-memory object code to load, or a file path string pointing to the on-disk object code to load.
name (Optional[str]) – A human-readable identifier representing this code object.
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, *, name: 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.
name (Optional[str]) – A human-readable identifier representing this code object.
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:
Attributes
- property handle¶
Return the underlying handle object.
Caution
This handle is a Python object. To get the memory address of the underlying C handle, call
int(ObjectCode.handle)
.