CANN / runtime 运行时配置

📅 2026/7/11 14:19:29 👁️ 阅读次数 📝 编程学习
CANN / runtime 运行时配置

3. 运行时配置

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

本章节描述 CANN Runtime 的运行时配置接口,用于设置和查询系统参数、设备资源限制及 Stream 资源限制。

  • aclError aclrtSetSysParamOpt(aclSysParamOpt opt, int64_t value):设置当前进程中的运行时参数值。
  • aclError aclrtGetSysParamOpt(aclSysParamOpt opt, int64_t *value):获取当前进程中的运行时参数值。
  • aclError aclrtGetDeviceResLimit(int32_t deviceId, aclrtDevResLimitType type, uint32_t* value):获取当前进程的Device资源限制。
  • aclError aclrtSetDeviceResLimit(int32_t deviceId, aclrtDevResLimitType type, uint32_t value):设置当前进程的Device资源限制。
  • aclError aclrtResetDeviceResLimit(int32_t deviceId):调用aclrtSetDeviceResLimit接口设置Device资源限制后,可调用本接口重置当前进程的Device资源限制,恢复默认配置,此时可通过aclrtGetDeviceResLimit接口查询默认的资源限制。
  • aclError aclrtGetStreamResLimit(aclrtStream stream, aclrtDevResLimitType type, uint32_t *value):获取指定Stream的Device资源限制。
  • aclError aclrtSetStreamResLimit(aclrtStream stream, aclrtDevResLimitType type, uint32_t value):设置指定Stream的Device资源限制。
  • aclError aclrtResetStreamResLimit(aclrtStream stream):调用aclrtSetStreamResLimit接口设置指定Stream的Device资源限制后,可调用本接口重置指定Stream的Device资源限制,恢复默认配置,此时可通过aclrtGetStreamResLimit接口查询默认的资源限制。
  • aclError aclrtUseStreamResInCurrentThread([aclrtStream](https://link.gitcode.com/i/b31e2e35eb1114cd94e838d1fc7024dc) stream):在当前线程中使用指定Stream上的Device资源限制。如果多次调用本接口设置Stream,将以最后一次设置为准。
  • aclError aclrtUnuseStreamResInCurrentThread(aclrtStream stream):在当前线程中取消使用指定Stream上的Device资源限制。
  • aclError aclrtGetResInCurrentThread(aclrtDevResLimitType type, uint32_t *value):获取当前线程可使用的Device资源。

aclrtSetSysParamOpt

aclError aclrtSetSysParamOpt(aclSysParamOpt opt, int64_t value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

设置当前进程中的运行时参数值。调用本接口设置运行时参数值后,若需获取参数值,需调用aclrtGetSysParamOpt接口。

本接口与aclrtCtxSetSysParamOpt接口的差别是,本接口作用域是进程,aclrtCtxSetSysParamOpt接口作用域是Context。

参数说明

参数名输入/输出说明
opt输入运行时参数,请参见aclSysParamOpt。
value输入运行时参数值。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtGetSysParamOpt

aclError aclrtGetSysParamOpt(aclSysParamOpt opt, int64_t *value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

获取当前进程中的运行时参数值。

如果不调用aclrtSetSysParamOpt接口设置运行时参数的值,直接调用本接口可获取各参数的默认值0,表示不开启确定性计算或内存访问越界检测;调用aclrtSetSysParamOpt接口设置运行时参数值后,若需获取参数值,需调用aclrtGetSysParamOpt接口。

参数说明

参数名输入/输出说明
opt输入运行时参数,请参见aclSysParamOpt。
value输出运行时参数值。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtGetDeviceResLimit

aclError aclrtGetDeviceResLimit(int32_t deviceId, aclrtDevResLimitType type, uint32_t* value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

获取当前进程的Device资源限制。

若没有调用aclrtSetDeviceResLimit接口设置当前进程的Device资源限制,则调用本接口获取到的是AI处理器硬件默认的资源限制。

参数说明

参数名输入/输出说明
deviceId输入Device ID。
用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]
type输入资源类型,请参见aclrtDevResLimitType。
value输出资源限制的大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtSetDeviceResLimit

aclError aclrtSetDeviceResLimit(int32_t deviceId, aclrtDevResLimitType type, uint32_t value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

设置当前进程的Device资源限制。

本接口应在调用aclrtSetDevice接口之后且在执行算子之前使用。如果对同一Device进行多次设置,将以最后一次设置为准。

除了进程级别的Device资源限制,当前还支持设置Stream级别的Device资源限制,可通过aclrtSetStreamResLimit、aclrtUseStreamResInCurrentThread接口配合使用实现。

Device资源限制的优先级为:Stream级别的Device资源限制 > 进程级别的Device资源限制 > AI处理器硬件的资源限制

参数说明

参数名输入/输出说明
deviceId输入Device ID。
用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]
type输入资源类型,请参见aclrtDevResLimitType。
value输入资源限制的大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

本接口的设置仅对后续下发的任务有效。例如在调用aclmdlRICaptureBegin、aclmdlRICaptureEnd等接口捕获Stream任务到模型中、再执行模型推理的场景下,则需要在捕获之前调用本接口设置Device资源。




aclrtResetDeviceResLimit

aclError aclrtResetDeviceResLimit(int32_t deviceId)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

调用aclrtSetDeviceResLimit接口设置Device资源限制后,可调用本接口重置当前进程的Device资源限制,恢复默认配置,此时可通过aclrtGetDeviceResLimit接口查询默认的资源限制。

参数说明

参数名输入/输出说明
deviceId输入Device ID。
用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtGetStreamResLimit

aclError aclrtGetStreamResLimit(aclrtStream stream, aclrtDevResLimitType type, uint32_t *value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

获取指定Stream的Device资源限制。

若没有调用aclrtSetStreamResLimit接口设置Device资源限制,则调用本接口获取到的Device资源限制优先级为:当前进程的Device资源限制(调用aclrtSetDeviceResLimit接口设置) > AI处理器硬件默认的资源限制

参数说明

参数名输入/输出说明
stream输入指定Stream。类型定义请参见aclrtStream。
若传入NULL,则表示默认Stream。
type输入资源类型,请参见aclrtDevResLimitType。
value输出资源限制的大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtSetStreamResLimit

aclError aclrtSetStreamResLimit(aclrtStream stream, aclrtDevResLimitType type, uint32_t value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

设置指定Stream的Device资源限制。

本接口应在调用aclrtSetDevice接口之后且在执行算子之前使用。如果对同一Stream进行多次设置,将以最后一次设置为准。

调用本接口设置指定Stream的Device资源限制后,需配合调用aclrtUseStreamResInCurrentThread接口,设置在当前线程中使用指定Stream上的Device资源限制。

参数说明

参数名输入/输出说明
stream输入指定Stream。类型定义请参见aclrtStream。
若传入NULL,则表示默认Stream。
type输入资源类型,请参见aclrtDevResLimitType。
value输入资源限制的大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtResetStreamResLimit

aclError aclrtResetStreamResLimit(aclrtStream stream)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

调用aclrtSetStreamResLimit接口设置指定Stream的Device资源限制后,可调用本接口重置指定Stream的Device资源限制,恢复默认配置,此时可通过aclrtGetStreamResLimit接口查询默认的资源限制。

参数说明

参数名输入/输出说明
stream输入指定Stream。类型定义请参见aclrtStream。
若传入NULL,则表示默认Stream。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtUseStreamResInCurrentThread

aclError aclrtUseStreamResInCurrentThread([aclrtStream](https://link.gitcode.com/i/b31e2e35eb1114cd94e838d1fc7024dc) stream)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

在当前线程中使用指定Stream上的Device资源限制。如果多次调用本接口设置Stream,将以最后一次设置为准。

参数说明

参数名输入/输出说明
stream输入指定Stream。类型定义请参见aclrtStream。
需先调用aclrtSetStreamResLimit接口设置该Stream上的Device资源限制。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtUnuseStreamResInCurrentThread

aclError aclrtUnuseStreamResInCurrentThread(aclrtStream stream)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

在当前线程中取消使用指定Stream上的Device资源限制。

参数说明

参数名输入/输出说明
stream输入指定Stream。类型定义请参见aclrtStream。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtGetResInCurrentThread

aclError aclrtGetResInCurrentThread(aclrtDevResLimitType type, uint32_t *value)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:不支持

功能说明

获取当前线程可使用的Device资源。

获取时,按照如下优先级返回value:Stream级别的Device资源限制(调用aclrtSetStreamResLimit接口设置) > 当前进程的Device资源限制(调用aclrtSetDeviceResLimit接口设置) > AI处理器硬件默认的资源限制

参数说明

参数名输入/输出说明
type输入资源类型,请参见aclrtDevResLimitType。
value输出资源数量。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考