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

#### 产品支持情况

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


#### 功能说明

在当前进程或线程中显式创建一个Context。

对于 Atlas 200I/500 A2 推理产品 ，该Context中包含2个Stream，1个默认Stream和1个执行内部同步的Stream。

对于 Atlas 训练系列产品 ，该Context中包含1个默认Stream。

对于 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，该Context中包含1个默认Stream。

对于 Atlas 推理系列产品 ，在 Ascend EP 下，该Context中包含2个Stream，1个默认Stream和1个执行内部同步的Stream。

对于 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ，该Context中包含1个默认Stream。

如果在应用程序中没有调用acl.rt.set_device接口，那么在首次调用acl.rt.create_context接口时，系统内部会根据该接口传入的Device ID，为该Device绑定一个默认Stream（一个Device仅绑定一个默认Stream），因此在首次调用acl.rt.create_context接口时，占用的Stream数量=Device上绑定的默认Stream+Context中包含的Stream。


#### 函数原型

- C函数原型
  1 aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId)

- python函数
  1 context, ret = acl.rt.create_context(device_id)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| device\_id | int，指定需要创建Context的Device设备号。 |


#### 返回值说明

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


#### 约束说明

支持以下使用场景：

- 若不调用acl.rt.create_context接口显式创建Context，那系统会使用默认Context，该默认Context是在调用acl.rt.set_device接口时隐式创建的。

  - 隐式创建Context：适合简单、无复杂交互逻辑的应用，但缺点在于，在多线程编程中，执行结果取决于线程调度的顺序。
  - 显式创建Context：适合大型、复杂交互逻辑的应用，便于提高程序的可读性、可维护性。
- 在某一进程中指定Device，该进程内的多个线程可共用在此Device上显式创建的Context（调用  acl.rt.create_context
接口显式创建Context）。
- 若在某一进程内创建多个Context（Context的数量与Stream相关，Stream数量有限制，请参见  acl.rt.create_stream
），当前线程在同一时刻内只能使用其中一个Context，建议通过  acl.rt.set_context
接口明确指定当前线程的Context，增加程序的可维护性。


#### 资源参考

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