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);
父主题: 基础核函数接口