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

约束说明

  • ELEWISE_ADD、ELEWISE_MUL、ELEWISE_REALDIV、ELEWISE_SUB、ELEWISE_LOGICAL_AND、ELEWISE_LOGICAL_OR、ELEWISE_LESS、ELEWISE_GREATER、ELEWISE_EQUAL计算类型将会对输入进行广播后再进行指定操作。
  • 输入x、y对应维度的对应值要求相同或至少其中一个为1。
  • ElewiseDeQuantPerChannel只支持Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas A3 推理系列产品/Atlas A3 训练系列产品
  • Atlas 推理系列产品上,ELEWISE_QUANT_PER_CHANNEL只支持32位对齐的数据。
  • 在ELEWISE_DYNAMIC_QUANT计算类型输入x中,有如下约束:
    • Atlas A2 训练系列产品/Atlas A2 推理系列产品上:float16类型尾轴可支持的最大数据量为26624;bf16类型尾轴可支持的最大数据量为7552;暂时只支持对称量化。
    • Atlas 推理系列产品上:尾轴只支持32位对齐的数据,尾轴可支持的最大数据量为4096,暂时只支持对称量化。
  • ELEWISE_QUANT约束说明:
    • 核心约束公式:

    • 关键参数定义

      参数名称

      物理含义

      备注

      numRow

      除最后一维外,其余所有维度的乘积(即

      数据总行数

      numCol

      最后一维的大小(即

      数据行长

      maxUbsize

      统一缓冲区(UB)大小

      固定值196608

      maxCoreNum

      硬件最大可用核数

      见下表

      产品系列

      maxCoreNum

      Atlas A3 推理系列产品/Atlas A3 训练系列产品

      48

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

      40

    • firstDimPertimes(单次搬运/处理的行数)计算流程
      1. 计算单核分摊行数

        首先根据总行数和硬件最大核数,计算实际启用的核数及每个核分配到的行数。

        • 计算实际启动核数(numCore):

        • 计算单核行数(nlFirstdimPerCoreNum)

      2. 计算所需内存与可用内存的阈值
        • 所需内存(totalMemNeed):

        • 可用内存(sumData):

      3. 确定最终切分行数

        根据内存充裕程度,决定 firstDimPertimes 的取值。

        • 情况A:内存充足(当 totalMemNeed $\le$ sumData 时):

        • 情况B:内存不足(当 totalMemNeed > sumData 时)需要计算切分倍数 timeCopyIn:

          (注:若计算结果为 0,则向下修正为 1)