> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

# Descriptor

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

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

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

The [`Connector`](/dynamo/dev/nixl-connect/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

A reference to the [`Device`](/dynamo/dev/nixl-connect/device) that contains the buffer the descriptor represents.

The size of the memory allocation the descriptor represents.

## Related Classes

* [Connector](/dynamo/dev/nixl-connect/connector)
* [Device](/dynamo/dev/nixl-connect/device)
* [OperationStatus](/dynamo/dev/nixl-connect/operation-status)
* [RdmaMetadata](/dynamo/dev/nixl-connect/rdma-metadata)
* [ReadOperation](/dynamo/dev/nixl-connect/read-operation)
* [ReadableOperation](/dynamo/dev/nixl-connect/readable-operation)
* [WritableOperation](/dynamo/dev/nixl-connect/writable-operation)
* [WriteOperation](/dynamo/dev/nixl-connect/write-operation)