> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/cuvs/llms.txt.
> For full documentation content, see https://docs.nvidia.com/cuvs/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/cuvs/_mcp/server.

# Dlpack Module

_Rust module: `cuvs::dlpack`_

_Source: `rust/cuvs/src/dlpack.rs`_

## ManagedTensor

```rust
#[derive(Debug)]
pub struct ManagedTensor(ffi::DLManagedTensor);
```

ManagedTensor is a wrapper around a dlpack DLManagedTensor object.
This lets you pass matrices in device or host memory into cuvs.

**Methods**

| Name | Source |
| --- | --- |
| `as_ptr` | `rust/cuvs/src/dlpack.rs:21` |
| `to_device` | `rust/cuvs/src/dlpack.rs:27` |
| `to_host` | `rust/cuvs/src/dlpack.rs:47` |

### as_ptr

```rust
pub fn as_ptr(&self) -> *mut ffi::DLManagedTensor { ... }
```

_Source: `rust/cuvs/src/dlpack.rs:21`_

### to_device

```rust
pub fn to_device(&self, res: &Resources) -> Result<ManagedTensor> { ... }
```

Creates a new ManagedTensor on the current GPU device, and copies
the data into it.

_Source: `rust/cuvs/src/dlpack.rs:27`_

### to_host

```rust
pub fn to_host<
T: IntoDtype,
S: ndarray::RawData<Elem = T> + ndarray::RawDataMut,
D: ndarray::Dimension,
>(
&self,
res: &Resources,
arr: &mut ndarray::ArrayBase<S, D>,
) -> Result<()> { ... }
```

Copies data from device memory into host memory

_Source: `rust/cuvs/src/dlpack.rs:47`_

_Source: `rust/cuvs/src/dlpack.rs:14`_

## IntoDtype

```rust
pub trait IntoDtype { ... }
```

_Source: `rust/cuvs/src/dlpack.rs:16`_