Descriptor

Registers a local memory buffer with the NIXL I/O subsystem for transfer.

View as Markdown

Memory descriptor that ensures memory is registered with the NIXL-base I/O subsystem. Memory must be registered with the NIXL subsystem to enable interaction with the memory.

Descriptor objects are administrative and do not copy, move, or otherwise modify the registered memory.

There are four ways to create a descriptor:

  1. From a torch.Tensor object. Device information will be derived from the provided object.

  2. From a tuple containing either a NumPy or CuPy ndarray and information describing where the memory resides (Host/CPU vs GPU).

  3. From a Python bytes object. Memory is assumed to reside in CPU addressable host memory.

  4. From a tuple comprised of the address of the memory, its size in bytes, and device information. An optional reference to a Python object can be provided to avoid garbage collection issues.

Methods

register_memory

1def register_memory(self, connector: Connector) -> None

Instructs the descriptor to register its memory buffer with the NIXL-based I/O subsystem.

connector
ConnectorRequired

The Connector whose NIXL subsystem the descriptor’s memory buffer is registered with.

Calling this method more than once on the same descriptor has no effect.

When the descriptor is assigned to a NIXL operation, it will be automatically registered if was not explicitly registered.

Properties

device
Device

A reference to the Device that contains the buffer the descriptor represents.

size
int

The size of the memory allocation the descriptor represents.