下载
中文
注册

Contiguous

支持的产品型号

Atlas 训练系列产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

Atlas 推理系列产品

函数功能

该函数为公共的L0接口,作用是将非连续tensor转换为连续tensor。

由于L2级API的输入tensor可能是非连续的,一般L0级算子只支持连续tensor作为输入,因此需要将tensor转为连续后再作为其他L0算子的输入。

输入tensor可以是连续的,接口内部会兼容处理。

函数原型

const aclTensor *Contiguous(const aclTensor *x, aclOpExecutor *executor)

参数说明

参数

输入/输出

说明

x

输入

待转换的输入tensor。数据类型和数据格式不限制。输入不要求是连续内存,但要求所表达的数据在Storage范围内。

executor

输入

op执行器,包含了算子计算流程。

返回值说明

若转换成功,则返回一个连续的aclTensor, 若失败,则返回nullptr。

约束说明

要求输入tensor是合法的tensor,Shape和Stride所表示的数据在Storage大小范围内。例如:shape=(2,3), stride = (10, 30), storageSize=8,数据实际空间超过了Storage大小8,该Tensor为非法,Contiguous接口返回nullptr。

调用示例

// 固定写法,创建OpExecutor
auto uniqueExecutor = CREATE_EXECUTOR();
// self如果非连续,需要转换
auto selfContiguous = l0op::Contiguous(self, executor);