函数原型
aclError aclrtCreateStreamWithConfig(aclrtStream *stream, uint32_t priority, uint32_t flag)
参数说明
参数名
|
输入/输出
|
说明
|
stream
|
输出
|
Stream的指针。
|
priority
|
输入
|
优先级。
Atlas 200/300/500 推理产品上,当前固定设置为0,预留参数,暂不使用。
Atlas 训练系列产品上,当前固定设置为0,预留参数,暂不使用。
Atlas A2 训练系列产品/Atlas 800I A2 推理产品上,当前固定设置为0,预留参数,暂不使用。
Atlas 200I/500 A2 推理产品上,当前固定设置为0,预留参数,暂不使用。
Atlas 推理系列产品上,该参数取值范围:[0, 7],总共最多支持8个优先级,数字越小代表优先级越高,其中,0的优先级最高,7的优先级最低。配置取值范围以外的值,本接口返回报错。
|
flag
|
输入
|
Stream指针的flag。
取值范围:
- ACL_STREAM_FAST_LAUNCH:使用该模式创建出来的Stream,在使用Stream时,下发任务的速度更快。
相比aclrtCreateStream接口创建出来的Stream,在使用Stream时才会申请系统内部资源,导致下发任务的时长增加,使用本接口的ACL_STREAM_FAST_LAUNCH模式创建Stream时,会在创建Stream时预申请系统内部资源,因此创建Stream的时长增加,下发任务的时长缩短,总体来说,创建一次Stream,使用多次的场景下,总时长缩短,但创建Stream时预申请内部资源会增加内存消耗。
- ACL_STREAM_FAST_SYNC:使用该模式创建出来的Stream,在调用aclrtSynchronizeStream接口时,会阻塞当前线程,主动查询任务的执行状态,一旦任务完成,立即返回。
相比aclrtCreateStream接口创建出来的Stream,在调用aclrtSynchronizeStream接口时,会一直被动等待Device上任务执行完成的通知,等待时间长,使用本接口的ACL_STREAM_FAST_SYNC模式创建的Stream,没有被动等待,总时长缩短,但主动查询的操作会增加CPU的性能消耗。
|