函数:create_context
C函数原型 |
aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId) |
---|---|
Python函数 |
context, ret = acl.rt.create_context(device_id) |
函数功能 |
在当前进程或线程中显式创建一个Context。同步接口。 对于Atlas 200/300/500 推理产品,该Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。 对于Atlas 200/500 A2推理产品,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。 对于Atlas 训练系列产品,该Context中包含1个默认Stream。 对于Atlas A2训练系列产品,该默认Context中包含1个默认Stream。 对于Atlas 推理系列产品,在标准形态下,该Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。 |
输入说明 |
device_id:int,指定需要创建Context的Device设备号。 |
返回值说明 |
context:int,表示创建的Context的指针地址。 ret:int,错误码。
|
约束说明 |
支持以下使用场景:
说明:
对于Atlas 200/300/500 推理产品,如果在程序中没有调用acl.rt.set_device接口,那么在首次调用acl.rt.create_context接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用acl.rt.create_context接口时,会占用3个Stream:Device上绑定的默认Stream、Context内的默认Stream、Context内的用于执行内部同步的Stream。 对于Atlas 推理系列产品,如果在程序中没有调用acl.rt.set_device接口,那么在首次调用acl.rt.create_context接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用acl.rt.create_context接口时,会占用2个Stream:Device上绑定的默认Stream、Context内的默认Stream。 对于Atlas 训练系列产品,如果在程序中没有调用acl.rt.set_device接口,那么在首次调用acl.rt.create_context接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用acl.rt.create_context接口时,会占用2个Stream:Device上绑定的默认Stream、Context内的默认Stream。 对于Atlas A2训练系列产品,如果在程序中没有调用acl.rt.set_device接口,那么在首次调用acl.rt.create_context接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用acl.rt.create_context接口时,会占用2个Stream:Device上绑定的默认Stream、Context内的默认Stream。 |
参考资源 |
接口调用流程与示例,请参见运行管理资源申请与释放、同步等待。 |