aclGetTensorDescAddress
aclSetTensorShapeRange
函数功能
调用aclCreateTensorDesc接口创建tensor描述信息后,可通过本接口设置tensor的各个维度的取值范围。同步接口。
使用场景:动态Shape的算子,其输入Shape中变化维度用-1表示,但每个变化维度的范围是不一样的,需要显式设置,如Shape为[16,-1,20,-1],对应的shape range可以是[[16,16],[1,128],[20,20],[1,10]],表示第一维的Shape范围固定为16,第二维的Shape范围为1到128,第三维的Shape范围固定为20,第四维的Shape范围为1到10。
函数原型
aclError aclSetTensorShapeRange(aclTensorDesc* desc, size_t dimsCount, int64_t dimsRange[][ACL_TENSOR_SHAPE_RANGE_NUM]****)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输出 | aclTensorDesc类型的指针。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| dimsCount | 输入 | tensor中dims的维度个数。 |
| dimsRange | 输入 | dimsRange为每个维度的取值范围,用二维数组表示范围。 如果Shape中的维度值不是-1时,表示固定维度,该维度对应的shape range中最大值和最小值相同;否则,表示动态维度,数组的两个维度分别表示对应tensor dims中的最小值和最大值。 text<br>#define ACL_TENSOR_SHAPE_RANGE_NUM 2<br> |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: aclTensorDesc
aclSetTensorDynamicInput
函数功能
调用aclCreateTensorDesc接口创建tensor描述信息后,可通过aclSetTensorDynamicInput接口设置多个动态输入的分组标识,例如某个算子包括动态输入为x、必选输入y,其中动态输入有多个,调用aclSetTensorDynamicInput将dynamicInputName设置为x,AscendCL内部根据dynamicInputName索引到对应的多个动态输入,达到分组的目的**。**同步接口。
函数原型
aclError aclSetTensorDynamicInput(aclTensorDesc *desc, const char *dynamicInputName)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输出 | aclTensorDesc类型的指针。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| dynamicInputName | 输入 | desc中动态输入分组标识的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: aclTensorDesc
aclGetTensorDescByIndex
函数功能
获取算子的指定Index的tensor描述信息。同步接口。
函数原型
aclTensorDesc *aclGetTensorDescByIndex(aclTensorDesc *desc, size_t index)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输入 | aclTensorDesc类型的指针。 调用aclmdlCreateAndGetOpDesc接口获取算子所有输入/输出的tensor描述,作为本接口的输入。 |
| index | 输入 | 指定获取第几个输入/输出的tensor描述,index值从0开始。 用户调用aclmdlCreateAndGetOpDesc接口获取的算子输入/输出的数量后,这个Index的取值范围:[0, (算子输入/输出的数量-1)]。 |
返回值说明
返回指定输入/输出的aclTensorDesc类型数据的指针。
父主题: aclTensorDesc
aclGetTensorDescAddress
函数功能
获取指定算子输入/输出的tensor数据的内存地址。同步接口。
函数原型
void *aclGetTensorDescAddress(const aclTensorDesc *desc)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输入 | aclTensorDesc类型的指针。 调用aclGetTensorDescByIndex接口获取算子的指定输入/输出的tensor描述,作为本接口的输入。 |
返回值说明
返回指定算子输入/输出的tensor数据的内存地址。
父主题: aclTensorDesc
aclSetTensorConst
函数功能
为算子设置constant输入,指定存放输入tensor数据的内存地址和地址长度。同步接口。
函数原型
aclError aclSetTensorConst(****aclTensorDesc *desc, void *dataBuffer, size_t length)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输出 | aclTensorDesc类型的指针。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| dataBuffer | 输入 | 输入tensor数据内存地址指针。 此处算子输入tensor数据的内存必须根据应用运行模式来确定,应用运行在Host时,此处需申请Host上的内存;应用运行在Device时,此处需申请Device上的内存。内存申请接口请参见内存管理。 |
| length | 输入 | 内存地址的长度,单位是Byte。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: aclTensorDesc
aclSetTensorPlaceMent
函数功能
设置TensorDesc的placement属性,用于标识存放Tensor数据的内存类型。同步接口。
函数原型
aclError aclSetTensorPlaceMent(****aclTensorDesc *desc, aclMemType memType)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输出 | aclTensorDesc类型的指针。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| memType | 输入 | 指定placement属性值。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: aclTensorDesc
aclSetTensorValueRange
函数功能
调用aclCreateTensorDesc接口创建tensor描述信息后,可通过本接口设置tensor的数据值的范围。同步接口。
使用场景:部分算子input的值就是该算子的输出Shape,在动态Shape场景下,这个Shape的值就有一个取值范围,在执行算子时,需要在input上设置Shape值的范围(例如:[[16,16],[1,128],[20,20],[1,10]]),AscendCL才能正常编译、执行算子。
函数原型
aclError aclSetTensorValueRange(aclTensorDesc* desc, size_t valueCount, int64_t valueRange[][ACL_TENSOR_VALUE_RANGE_NUM])
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| desc | 输出 | aclTensorDesc类型的指针。 需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| valueCount | 输入 | 需设置范围的数据值的个数。 |
| valueRange | 输入 | valueRange为每个数据值的范围,用二维数组表示范围。 text<br>#define ACL_TENSOR_VALUE_RANGE_NUM 2<br> |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: aclTensorDesc
在线提单