昇腾社区首页
EN
注册

aclrtLaunchKernelAttrValue

typedef union aclrtLaunchKernelAttrValue {
    uint8_t schemMode;
    uint32_t localMemorySize;
    aclrtEngineType engineType; 
    uint32_t blockDimOffset; 
    uint8_t isBlockTaskPrefetch; 
    uint8_t isDataDump; 
    uint16_t timeout;
    uint32_t rsv[4];
} aclrtLaunchKernelAttrValue;

成员名称

描述

schemMode

调度模式。

取值如下:

  • 0:普通调度模式,有空闲的核,就启动算子执行。例如,当blockDim为8时,表示算子核函数将会在8个核上执行,这时如果指定普通调度模式,则表示只要有1个核空闲了,就启动算子执行。
  • 1:batch调度模式,必须所有所需的核都空闲了,才启动算子执行。例如,当blockDim为8时,表示算子核函数将会在8个核上执行,这时如果指定batch调度模式,则表示必须等8个核都空闲了,才启动算子执行。

localMemorySize

预留参数,暂不支持。

engineType

算子执行引擎。取值请参见aclrtEngineType

Atlas 推理系列产品支持该参数。

以下产品型号不支持该参数:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件
  • Atlas 200I/500 A2 推理产品
  • Atlas 训练系列产品
  • Atlas 200/300/500 推理产品

blockDimOffset

blockDim偏移量。

  • 如果blockDim ≤ AI Core核数,则无需使用Vector Core上计算,可将engineType配置为ACL_RT_ENGINE_TYPE_AIC(表示再AI Core上计算)时,则此处的blockDimOffset配置为0。
  • 如果blockDim > AI Core核数,则需:
    • 在一个Stream上下发任务,将engineType配置为ACL_RT_ENGINE_TYPE_AIC(表示再AI Core上计算),此处的blockDimOffset配置为0。
    • 在另一个Stream上下发任务,将engineType配置为ACL_RT_ENGINE_TYPE_AIV(表示再Vector Core上计算),此处的blockDimOffset配置为aicoreblockdim,aicoreblockdim的计算公式如下:
      • blockDim ≤ AI Core核数+Vector Core核数时,aicoreblockdim = AI Core核数
      • 否则,aicoreblockdim = 向上取整 ( blockDim * ( AI Core核数 ) / ( AI Core核数 + Vector Core核数 ))

Atlas 推理系列产品支持该参数。

以下产品型号不支持该参数:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件
  • Atlas 200I/500 A2 推理产品
  • Atlas 训练系列产品
  • Atlas 200/300/500 推理产品

isBlockTaskPrefetch

任务下发时,是否阻止硬件预取本任务的信息

取值如下:

  • 0:不阻止
  • 1:阻止

isDataDump

是否开启Dump。

取值如下:

  • 0:不开启
  • 1:开启

timeout

任务调度器等待任务执行的超时时间。仅适用用于AICPU的KFC(kernel function call,表示核间通信调用)算子场景,其他场景设置暂不生效。

取值如下:

  • 0:表示永久等待;
  • >0:配置具体的超时时间,单位是秒。

rsv

预留参数。当前固定配置为0。