在当前进程或线程中显式创建一个Context。同步接口。
对于Atlas 200/300/500 推理产品,该Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。
对于Atlas 训练系列产品,该Context中包含1个默认Stream。
对于Atlas A2训练系列产品,该默认Context中包含1个默认Stream。
对于Atlas 推理系列产品,在标准形态下,该Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。
支持以下使用场景:
对于Atlas 200/300/500 推理产品,如果在程序中没有调用aclrtSetDevice接口,那么在首次调用aclrtCreateContext接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用aclrtCreateContext接口时,会占用3个Stream:Device上绑定的默认Stream、Context内的默认Stream、Context内的用于执行内部同步的Stream。
对于Atlas 推理系列产品,对于Atlas 训练系列产品,如果在程序中没有调用aclrtSetDevice接口,那么在首次调用aclrtCreateContext接口时,系统内部会根据该接口传入的Device ID,为该Device绑定一个默认Stream(一个Device仅绑定一个默认Stream),因此仅在首次调用aclrtCreateContext接口时,会占用2个Stream:Device上绑定的默认Stream、Context内的默认Stream。
aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId)
参数名 |
输入/输出 |
说明 |
---|---|---|
deviceId |
输入 |
需创建Context的Device的ID。 |
context |
输出 |
Context的指针。 |
返回0表示成功,返回其它值表示失败。
接口调用流程及示例,参见运行管理资源申请与释放。