公共接口

本节罗列了单算子API执行接口定义时依赖的一些AscendCL元接口,通过这些元接口可以构建所需的数据结构,如aclTensor、aclScalar、aclIntArray等。

表1 AscendCL meta接口

接口

接口定义

功能说明

参数说明

返回值

aclCreateTensor

aclTensor *aclCreateTensor(const int64_t *viewDims, uint64_t viewDimsNum, aclDataType dataType, const int64_t *stride, int64_t offset, aclFormat format, const int64_t *storageDims, uint64_t storageDimsNum, void *tensorData)

创建aclTensor。

  • viewDims(输入):view shape的维度值。
  • viewDimsNum(输入):view shape的维度数。
  • dataType(输入):tensor的数据类型。
  • strides(输入):tensor的view的各个维度步长。
  • offset(输入):tensor首元素相对于storage的偏移。
  • format(输入):tensor的数据排布格式。
  • storageDims(输入):tensor的存储的shape的维度值。
  • storageDimsNum(输入):tensor的存储的shape的维度数。
  • tensorData(输入):tensor在npu device的存储地址。

成功则返回创建好的aclTensor,否则返回nullptr。

aclDestroyTensor

aclnnStatus aclDestroyTensor(const aclTensor *tensor)

销毁aclTensor。

tensor(输入):需要销毁的tensor指针。

返回0表示成功,返回其它值表示失败。

aclCreateScalar

aclScalar *aclCreateScalar(void *value, aclDataType dataType)

创建aclScalar。

  • value(输入):scalar值的指针。
  • dataType(输入):scalar的数据类型。

成功则返回创建好的aclScalar,否则返回nullptr。

aclDestroyScalar

aclnnStatus aclDestroyScalar(const aclScalar *scalar)

销毁aclScalar。

scalar(输入):需要销毁的scalar。

返回0表示成功,返回其它值表示失败。

aclCreateIntArray

aclIntArray *aclCreateIntArray(const int64_t *value, uint64_t size)

创建aclIntArray。

  • value(输入):int64_t类型的指针。
  • size(输入):整型数组的长度。

成功则返回创建好的aclIntArray,否则返回nullptr。

aclDestroyIntArray

aclnnStatus aclDestroyIntArray(const aclIntArray *array)

销毁aclIntArray。

array(输入):需要销毁的aclIntArray。

返回0表示成功,返回其它值表示失败。

aclCreateFloatArray

aclFloatArray *aclCreateFloatArray(const float *value, uint64_t size)

创建aclFloatArray。

  • value(输入):float类型的指针。
  • size(输入):浮点型数组的长度。

成功则返回创建好的aclFloatArray,否则返回nullptr。

aclDestroyFloatArray

aclnnStatus aclDestroyFloatArray(const aclFloatArray *array)

销毁aclFloatArray。

array(输入):需要销毁的aclFloatArray

返回0表示成功,返回其它值表示失败。

aclCreateBoolArray

aclBoolArray *aclCreateBoolArray(const bool *value, uint64_t size)

创建aclBoolArray。

  • value(输入): bool类型的指针。
  • size(输入):布尔型数组的长度。

成功则返回创建好的aclBoolArray,否则返回nullptr。

aclDestroyBoolArray

aclnnStatus aclDestroyBoolArray(const aclBoolArray *array)

销毁aclBoolArray。

array(输入):需要销毁的aclBoolArray。

返回0表示成功,返回其它值表示失败。

aclCreateTensorList

aclTensorList *aclCreateTensorList(const aclTensor *const *value, uint64_t size)

创建aclTensorList。

value(输入): aclTensor类型的指针。

size(输入):张量列表的长度。

成功则返回创建好的aclTensorList,否则返回nullptr。

aclDestroyTensorList

aclnnStatus aclDestroyTensorList(const aclTensorList *array)

销毁aclTensorList。

array(输入):需要销毁的aclTensorList。

返回0表示成功,返回其它值表示失败。

aclGetViewShape

aclnnStatus aclGetViewShape(const aclTensor *tensor, int64_t **viewDims, uint64_t *viewDimsNum)

获取aclTensor的ViewShape。

  • tensor(输入):输入的tensor。
  • viewDims(输入):返回的viewShape的dim值。
  • viewDimsNum(输入):返回的viewShape的dim维度数。

返回0表示成功,返回其它值表示失败。

aclGetViewStrides

aclnnStatus aclGetViewStrides(const aclTensor *tensor, int64_t **stridesValue, uint64_t *stridesNum)

获取aclTensor的viewStrides。

  • tensor(输入):输入的tensor。
  • stridesValue(输入):返回的viewStrides的值。
  • stridesNum(输入):返回的viewStrides的strides值个数。

返回0表示成功,返回其它值表示失败。

aclGetViewOffset

aclnnStatus aclGetViewOffset(const aclTensor *tensor, int64_t *offset)

获取aclTensor的viewOffset。

  • tensor(输入):输入的tensor。
  • offset(输入):返回的offset值。

返回0表示成功,返回其它值表示失败。

aclGetFormat

aclnnStatus aclGetFormat(const aclTensor *tensor, aclFormat *format)

获取aclTensor的format。

  • tensor(输入):输入的tensor。
  • format(输入):返回的aclTensor的数据格式。

返回0表示成功,返回其它值表示失败。

aclGetDataType

aclnnStatus aclGetDataType(const aclTensor *tensor, aclDataType *dataType)

获取aclTensor的DataType。

  • tensor(输入):输入的tensor。
  • dataType(输入):返回的aclTensor的数据类型。

返回0表示成功,返回其它值表示失败。

aclGetIntArraySize

aclnnStatus aclGetIntArraySize(const aclIntArray *array, uint64_t *size)

获取aclIntArray的大小。

  • array(输入):输入的aclIntArray。
  • size(输入):返回的长度。

返回0表示成功,返回其它值表示失败。

aclGetFloatArraySize

aclnnStatus aclGetFloatArraySize(const aclFloatArray *array, uint64_t *size)

获取aclFloatArray的大小。

  • array(输入):输入的aclFloatArray。
  • size(输入):返回的长度。

返回0表示成功,返回其它值表示失败。

aclGetBoolArraySize

aclnnStatus aclGetBoolArraySize(const aclBoolArray *array, uint64_t *size)

获取aclBoolArray的大小。

  • array(输入):输入的aclBoolArray。
  • size(输入):返回的长度。

返回0表示成功,返回其它值表示失败。

aclGetTensorListSize

aclnnStatus aclGetTensorListSize(const aclTensorList *tensorList, uint64_t *size)

获取aclTensorList的大小。

  • tensorList(输入):输入的aclTensorList。
  • size(输入):返回的长度。

返回0表示成功,返回其它值表示失败。