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),仅供参考
