---
title: 函数：create_stream_with_config
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclpythondevg_01_0080.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0080.html
indexId: e96940db97a84d917908086cdb7d00241ec0ddfe4f38560ca31ff4e880fff6d571
---
# 函数：create_stream_with_config

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |


#### 功能说明

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

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

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

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

在Atlas 200I/500 A2 推理产品上，使用本接口与acl.rt.create_stream接口是等价的。

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


#### 函数原型

- C函数原型
  1 aclError aclrtCreateStreamWithConfig(aclrtStream *stream, uint32_t priority, uint32_t flag)

- python函数
  1 stream, ret = acl.rt.create_stream_with_config(priority,flag)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| priority | priority：int，优先级。 Atlas 训练系列产品 上，当前固定设置为0，预留参数，暂不使用。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 上，当前固定设置为0，预留参数，暂不使用。 Atlas 200I/500 A2 推理产品 上，当前固定设置为0，预留参数，暂不使用。 Atlas 推理系列产品 上，该参数取值范围：[0, 7]，总共最多支持8个优先级，数字越小代表优先级越高，其中，0的优先级最高，7的优先级最低。如果设置的优先级超过取值范围，则就近修正为边界值。 |
| flag | int，Stream的flag。 取值范围： ACL\_STREAM\_FAST\_LAUNCH = 1，使用该模式创建出来的Stream，在使用Stream时，下发任务的速度更快。 相比acl.rt.create\_stream接口创建出来的Stream，在使用Stream时才会申请系统内部资源，导致下发任务的时长增加，使用本接口的“ACL\_STREAM\_FAST\_LAUNCH”模式创建Stream时，会在创建Stream时预申请系统内部资源，因此创建Stream的时长增加，下发任务的时长缩短，总体来说，创建一次Stream，使用多次的场景下，总时长缩短，但创建Stream时预申请内部资源会增加内存消耗。 ACL\_STREAM\_FAST\_SYNC = 2，使用该模式创建出来的Stream，在调用acl.rt.synchronize\_stream接口时，会阻塞当前线程，主动查询任务的执行状态，一旦任务完成，立即返回。 相比acl.rt.create\_stream接口创建出来的Stream，在调用acl.rt.synchronize\_stream接口时，会一直被动等待Device上任务执行完成的通知，等待时间长，使用本接口的“ACL\_STREAM\_FAST\_SYNC”模式创建的Stream，没有被动等待，总时长缩短，但主动查询的操作会增加CPU的性能消耗。 说明： 配置取值范围之外的值，本接口创建出来的Stream等同于acl.rt.create\_stream接口。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| stream | int，表示创建的Stream对象的指针地址。 |
| ret | int，错误码，返回0表示成功，返回其它值表示失败。 |
