昇腾社区首页
EN
注册

aclrtCreateStreamWithConfig

产品支持情况

产品

是否支持

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

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

Atlas 200/300/500 推理产品

功能说明

在当前进程或线程中创建一个Stream。

Atlas A3 训练系列产品/Atlas A3 推理系列产品,相比aclrtCreateStream接口,使用本接口可以创建一个快速下发任务的Stream,但会增加内存消耗或CPU的性能消耗。

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件,相比aclrtCreateStream接口,使用本接口可以创建一个快速下发任务的Stream,但会增加内存消耗或CPU的性能消耗。

Atlas 200I/500 A2 推理产品,使用本接口与aclrtCreateStream接口是等价的。

Atlas 推理系列产品上,相比aclrtCreateStream接口,使用本接口可以创建一个快速下发任务的Stream,但会增加内存消耗或CPU的性能消耗。

Atlas 训练系列产品上,相比aclrtCreateStream接口,使用本接口可以创建一个快速下发任务的Stream,但会增加内存消耗或CPU的性能消耗。

Atlas 200/300/500 推理产品上,使用本接口与aclrtCreateStream接口是等价的。

函数原型

aclError aclrtCreateStreamWithConfig(aclrtStream *stream, uint32_t priority, uint32_t flag)

参数说明

参数名

输入/输出

说明

stream

输出

Stream的指针。

priority

输入

优先级。

Atlas 推理系列产品上,该参数取值范围:[0, 7],总共最多支持8个优先级,数字越小代表优先级越高,其中,0的优先级最高,7的优先级最低。配置取值范围以外的值,本接口返回报错。

对以下产品,该参数为预留参数,暂不使用,当前固定设置为0:

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

flag

输入

Stream指针的flag。

取值范围:

  • ACL_STREAM_FAST_LAUNCH:使用该flag创建出来的Stream,在使用Stream时,下发任务的速度更快。

    相比aclrtCreateStream接口创建出来的Stream,在使用Stream时才会申请系统内部资源,导致下发任务的时长增加,使用本接口的ACL_STREAM_FAST_LAUNCH模式创建Stream时,会在创建Stream时预申请系统内部资源,因此创建Stream的时长增加,下发任务的时长缩短,总体来说,创建一次Stream,使用多次的场景下,总时长缩短,但创建Stream时预申请内部资源会增加内存消耗。

  • ACL_STREAM_FAST_SYNC:使用该flag创建出来的Stream,在调用aclrtSynchronizeStream接口时,会阻塞当前线程,主动查询任务的执行状态,一旦任务完成,立即返回。

    相比aclrtCreateStream接口创建出来的Stream,在调用aclrtSynchronizeStream接口时,会一直被动等待Device上任务执行完成的通知,等待时间长,使用本接口的ACL_STREAM_FAST_SYNC模式创建的Stream,没有被动等待,总时长缩短,但主动查询的操作会增加CPU的性能消耗。

  • ACL_STREAM_PERSISTENT:使用该flag创建出来的Stream,在该Stream上下发的任务不会立即执行、任务执行完成后也不会立即销毁,在销毁Stream时才会销毁任务相关的资源。该方式下创建的Stream用于与模型绑定,适用于模型构建场景,模型构建相关接口的说明请参见aclmdlRIBindStream
  • ACL_STREAM_HUGE:相比其他flag,使用该flag创建出来的Stream所能容纳的Task最大数量更大。

    当前版本设置该flag不生效。

  • ACL_STREAM_CPU_SCHEDULE:使用该flag创建出来的Stream用于队列方式模型推理场景下承载AI CPU调度的相关任务。预留功能。
说明:

配置取值范围之外的值,本接口创建出来的Stream等同于aclrtCreateStream接口。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError