昇腾社区首页
中文
注册
开发者
下载

aclnnNpuFormatCast

产品支持情况

[object Object]undefined

功能说明

  • 接口功能
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:
      • 完成ND←→的转换功能。C0是数据格式最后一维的大小。计算方法C0 = 32B / ge::GetSizeByDataType(static_cast[object Object]additionalDtype)。
      • 完成NCDHW←→、NCDHW←→的转换功能。其中,C0与微架构强相关,该值等于cube单元的size,例如16。C1是将C维度按照C0切分:C1=C/C0, 若结果不整除,最后一份数据需要padding到C0。计算方法C0 = 32B srcDataType(例如FP16为2byte)
  • 计算流程[object Object]根据输入张量srcTensor、数据类型[object Object]和目标张量的数据格式dstFormat计算出转换后目标张量dstTensor的shape和实际数据格式,用于构造dstTensor,然后调用[object Object]把srcTensor转换为实际数据格式的目标张量dstTensor。

函数原型

必须先调用[object Object]计算出dstTensor的shape和实际数据格式,再调用。 两段式接口先调用[object Object]接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用[object Object]接口执行计算。

[object Object]
[object Object]
[object Object]

aclnnNpuFormatCastCalculateSizeAndFormat

  • 参数说明

    [object Object]
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      • 上表数据类型列中的角标“2”代表该系列不支持的数据类型或数据格式。
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    入参校验,出现以下场景时报错:

    [object Object]

aclnnNpuFormatCastGetWorkspaceSize

  • 参数说明

    [object Object]
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      • 上表数据类型列中的角标“2”代表该系列不支持的数据类型或数据格式。
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      • 上表数据类型列中的角标“2”代表该系列不支持的拦截类型。

aclnnNpuFormatCast

  • 参数说明

    [object Object]undefined
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性计算:aclnnNpuFormatCast默认确定性实现。

  • 输入和输出支持以下数据类型组合:

    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:

      • aclnnNpuFormatCastCalculateSizeAndFormat接口参数:

        [object Object]undefined
      • aclnnNpuFormatCastGetWorkspaceSize接口:

        [object Object]undefined
      • C0计算方法:C0=32Bsize of srcTensor的基础类型C0=\frac{32B}{size\ of\ srcTensor的基础类型}

        [object Object]undefined
      • 当前不支持的特殊场景:

        • 不支持调用当前接口转昇腾亲和FRACTAL_NZ后, 进行任何能修改张量的操作, 如contiguous、pad、slice等;
        • 不允许转昇腾亲和FRACTAL_NZ后再进行任何修改张量的操作, 包括transpose。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]
  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]: 示例代码如下,仅供参考,具体编译和执行过程请参考
    [object Object]