tvm.runtime.ndarray

运行时 NDArray API

class tvm.runtime.ndarray.NDArray

TVM 运行时的轻量级 NDArray 类。

严格来说,这只是一个数组容器(一个缓冲区对象)。未定义算术运算。所有操作均由 TVM 函数执行。

目标不是重建另一个数组库。相反,这是一个最小的数据结构,用于演示如何在现有项目中 使用 TVM,这些项目可能具有自己的数组容器。

property dtype

此数组的类型

property device

此数组的设备

same_as(other)

检查对象标识相等性

参数:

other (object) – 要比较的另一个对象

返回:

same – other 是否与 self 相同。

返回类型:

bool

copyfrom(source_array)

执行从数组的同步复制。

参数:

source_array (array_like) – 我们想要从中复制的数据源。

返回:

arr – 对 self 的引用。

返回类型:

NDArray

asnumpy()

将此数组转换为 numpy 数组。此 API 将在 TVM v0.8 版本中弃用。请改用 numpy

numpy()

将此数组转换为 numpy 数组

返回:

np_arr – 对应的 numpy 数组。

返回类型:

numpy.ndarray

copyto(target, mem_scope=None)

将数组复制到目标

参数:
  • target (NDArray) – 要复制的目标数组,必须具有与此数组相同的形状。

  • mem_scope (Optional[str]) – 数组的内存范围。

tvm.runtime.ndarray.device(dev_type, dev_id=0)

使用给定的设备类型和 ID 构建 TVM 设备。

参数:
  • dev_type (intstr) – 设备类型掩码或设备的名称。

  • dev_id (int, optional) – 整数设备 ID

返回:

dev – 对应的设备。

返回类型:

tvm.runtime.Device

示例

设备可用于通过设备类型的字符串表示形式创建设备的反射。

assert tvm.device("cpu", 1) == tvm.cpu(1)
assert tvm.device("cuda", 0) == tvm.cuda(0)
tvm.runtime.ndarray.numpyasarray(np_data)

返回 numpy 数组的 TVMArray 表示形式。

tvm.runtime.ndarray.empty(shape, dtype='float32', device=cpu(0), mem_scope=None)

创建给定形状和设备的空数组

参数:
  • shape (Union[tvm.runtime.ShapeTuple, Sequence[SupportsInt]]) – 数组的形状。

  • dtype (typestr) – 数组的数据类型。

  • device (Device) – 数组的设备。

  • mem_scope (Optional[str]) – 数组的内存范围。

返回:

arr – tvm 支持的数组。

返回类型:

tvm.nd.NDArray

tvm.runtime.ndarray.from_dlpack(dltensor)

从具有 __dlpack__ 方法的对象或没有内存复制的 DLPack 张量生成数组。检索底层 DLPack 张量的指针以从数据创建数组。删除原始 DLPack 张量的析构函数,因为现在数组负责销毁。

参数:

dltensor (具有 __dlpack__ 属性的对象DLPack 胶囊)

返回:

arr – 张量数据的数组视图。

返回类型:

tvm.nd.NDArray

tvm.runtime.ndarray.cpu(dev_id=0)

构建 CPU 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.cuda(dev_id=0)

构建 CUDA GPU 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.gpu(dev_id=0)

构建 CUDA GPU 设备

deprecated:: 0.9.0 请使用 tvm.cuda() 代替。

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.rocm(dev_id=0)

构建 ROCM 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.opencl(dev_id=0)

构建 OpenCL 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.metal(dev_id=0)

构建 metal 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.vpi(dev_id=0)

构建 VPI 模拟设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.vulkan(dev_id=0)

构建 Vulkan 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.ext_dev(dev_id=0)

构建扩展设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

注意

此 API 保留用于通过插件设备 API (ext_dev) 快速测试新设备。

tvm.runtime.ndarray.hexagon(dev_id=0)

构建 Hexagon 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.webgpu(dev_id=0)

构建 webgpu 设备。

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.cl(dev_id=0)

构建 OpenCL 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.mtl(dev_id=0)

构建 metal 设备

参数:

dev_id (int, optional) – 整数设备 ID

返回:

dev – 创建的设备

返回类型:

设备

tvm.runtime.ndarray.array(arr, device=cpu(0), mem_scope=None)

从源 arr 创建数组。

参数:
  • arr (numpy.ndarray) – 要从中复制的数组

  • device (Device, optional) – 用于创建数组的设备

  • mem_scope (Optional[str]) – 数组的内存范围

返回:

ret – 创建的数组

返回类型:

NDArray