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

#### 产品支持情况

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


#### 功能说明

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

该接口不支持设置Stream的优先级；若不设置，Stream的优先级默认为最高。如需在创建Stream时设置优先级，请参见acl.rt.create_stream_with_config接口。

若不显式调用Stream创建接口，那么每个Context对应一个默认Stream，该默认Stream是调用acl.rt.set_device接口或acl.rt.create_context接口隐式创建的，默认Stream的优先级不支持设置，为最高优先级。默认Stream适合简单、无复杂交互逻辑的应用，但缺点在于，在多线程编程中，执行结果取决于线程调度的顺序。显式创建的Stream适合大型、复杂交互逻辑的应用，且便于提高程序的可读性、可维护性，推荐显式。


#### 函数原型

- C函数原型
  1 aclError aclrtCreateStream(aclrtStream *stream)

- python函数
  1 stream, ret = acl.rt.create_stream()


#### 参数说明

无


#### 返回值说明

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


#### 约束说明

- 每个Context对应一个默认Stream，该默认Stream是调用acl.rt.set_device接口或acl.rt.create_context接口隐式创建的，默认Stream的优先级不支持设置，为最高优先级。推荐调用aclrtCreateStream接口显式创建Stream。

  - 隐式创建Stream：适合简单、无复杂交互逻辑的应用，但缺点在于，在多线程编程中，执行结果取决于线程调度的顺序。
  - 显式创建Stream：推荐显式，适合大型、复杂交互逻辑的应用，且便于提高程序的可读性、可维护性。
- 不同型号的硬件支持的Stream最大数不同，如果已存在多个Stream（包含默认Stream、执行内部同步的Stream），则只能显式创建N个Stream，N = Stream最大数 - 已存在的Stream数。例如，Stream最大数为1024，已存在2个Stream，则只能调用本接口显式创建1022个Stream。

| 型号 | Stream最大数 |
| --- | --- |
| Atlas 350 加速卡 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | 1984 |
| Atlas 200I/500 A2 推理产品 | 512 |
| Atlas 200/300/500 推理产品 | 1024 |
| Atlas 推理系列产品 | 1024 Ascend EP 形态下，存在执行内部同步的Stream。 |
| Atlas 训练系列产品 | 2048 多进程场景下，若一次性创建的Stream数量总和接近2048，可能会出现创建Stream失败的情况，此时，建议进行以下操作： 清理冗余Stream，减少不必要的Stream。 调整代码逻辑，分批创建Stream。 例如，第一批创建部分Stream，然后第二批再创建部分Stream，以此类推，直到Stream总数接近2048。 |


#### 资源参考

接口调用流程与示例，请参见运行时资源申请与释放(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/aclpythondevg_0009.html)。
