tvm.runtime.ndarray#

Runtime NDArray API

class tvm.nd.NDArray(handle, is_view=False)#

轻量的 TVM 运行时 NDArray 类

严格地说,这只是数组容器(buffer 对象),没有定义算术运算。所有运算都由 TVM 函数来完成。

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

__dlpack__(stream=None)#

将 from_dlpack() 使用的数组导出为 DLPack capsule。

streamint, optional

Python 整数,表示指向 stream 的指针。stream 是由 consumer 提供给 producer,以指导 producer 确保对数组的运算能够安全执行。

capsulePyCapsule

数组的 DLPack 容器,包含 DLPackManagedTensor。

__dlpack_device__()#

根据 DLPack convention 返回 device_type 和 device_id 的元组

__init__(handle, is_view=False)#

Initialize the function with handle

handleTVMArrayHandle

the handle to the underlying C++ TVMArray

__setitem__(in_slice, value)#

设置 ndarray 的值

_copyto(target_nd)#

Internal function that implements copy to target ndarray.

_create_view(shape)#

在现有数组中创建视图。

视图与现有数组共享相同的 allocation 和数据类型,但可以有不同的数组形状。这对于支持 non-flat 内存的运行时非常有用,在这种情况下,allocation 的物理形状和它所表示的张量的逻辑形状可能需要独立指定。

警告:这个函数不应该在低级 manipulations 之外使用,因为它打破了 TVM 做出的 non-aliasing 假设。这个函数也可能在未来被删除/替换。

shape: Union[tvm.runtime.ShapeTuple, Sequence[typing.SupportsInt]]

视图的形状。

asnumpy()#

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

copyfrom(source_array)#

Perform a synchronous copy from the array.

source_arrayarray_like

想要 copy 的数据源。

arrNDArray

Reference to self.

copyto(target, mem_scope=None)#

Copy array to target

targetNDArray

要复制的目标数组必须与此数组具有相同的形状。

mem_scopeOptional[str]

The memory scope of the array.

property device#

Device of this array

property dtype#

Type of this array

numpy()#

Convert this array to numpy array

np_arrnumpy.ndarray

The corresponding numpy array.

same_as(other)#

Check object identity equality

otherobject

The other object to compare to

samebool

Whether other is same as self.

property shape#

Shape of this array

to_dlpack()#

Produce an array from a DLPack Tensor without copying memory

dlpack : DLPack tensor view of the array data

tvm.nd.array(arr, device=cpu(0), mem_scope=None)#

Create an array from source arr.

arrnumpy.ndarray

The array to be copied from

deviceDevice, optional

The device device to create the array

mem_scopeOptional[str]

The memory scope of the array

retNDArray

The created array

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

Create an empty array given shape and device

shapeUnion[tvm.runtime.ShapeTuple, Sequence[typing.SupportsInt]]

The shape of the array.

dtypetype or str

The data type of the array.

deviceDevice

The device of the array.

mem_scopeOptional[str]

The memory scope of the array.

arrtvm.nd.NDArray

The array tvm supported.