aclrtSetDeviceSatMode
aclGetCompileoptSize
函数功能
用户可调用本接口获取存放编译选项值的内存大小。同步接口。
使用场景:用户在调用aclGetCompileopt前需要申请一块内存来保存编译选项的值,内存大小可以通过调用本接口获得。
函数原型
size_t aclGetCompileoptSize(aclCompileOpt opt)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opt | 输入 | 编译选项。 |
返回值说明
返回存放该编译选项值的内存大小,单位:Byte。
父主题: 系统配置
aclrtGetSocName
函数功能
查询当前运行环境的芯片版本。同步接口。
函数原型
const char *aclrtGetSocName()
参数说明
无
返回值说明
返回芯片版本字符串的指针。如果通过该接口获取芯片版本失败,则返回空指针。
父主题: 系统配置
aclGetRecentErrMsg
函数功能
获取并清空与本接口在同一个线程中的其它AscendCL接口调用失败时的错误描述信息。同步接口。
约束说明
建议在每次调用AscendCL接口失败时都调用aclGetRecentErrMsg接口,以便获取调用AscendCL接口异常时的错误描述信息,用于定位问题。同一个线程中多次调用aclGetRecentErrMsg接口后,只有最后一次调用aclGetRecentErrMsg接口返回的错误描述字符串的指针有效,之前aclGetRecentErrMsg接口返回的错误描述字符串指针不能使用,否则可能导致内存非法访问。
如果未在每次调用AscendCL接口失败时调用aclGetRecentErrMsg接口,则可能导致错误信息堆积、丢失。
函数原型
const char *aclGetRecentErrMsg()
参数说明
无
返回值说明
返回错误描述字符串的指针。如果通过本接口获取到多条错误描述信息,最上面的错误描述信息为最新的。
获取错误描述信息失败时,返回nullptr。
父主题: 系统配置
aclrtSetDeviceSatMode
函数功能
设置当前Context对应的Device的浮点计算结果输出模式,同步接口。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
调用该接口成功后,后续在该Device上新创建的Stream按设置的模式生效,对之前已创建的Stream不生效。
函数原型
aclError aclrtSetDeviceSatMode(aclrtFloatOverflowMode mode)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| mode | 输入 | 设置浮点计算结果输出模式。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 系统配置
aclrtGetDeviceSatMode
函数功能
查询当前Context对应的Device的浮点计算结果输出模式,同步接口。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError aclrtGetDeviceSatMode(aclrtFloatOverflowMode *mode)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| mode | 输出 | 获取浮点计算结果输出模式。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 系统配置
aclrtSetDevice
函数功能
指定当前进程或线程中用于运算的Device,同时隐式创建默认Context。同步接口。
对于Atlas 200/500 A2推理产品,该默认Context中包含1个默认Stream。
约束说明
如果多次调用aclrtSetDevice接口而不调用aclrtResetDevice接口释放本进程使用的Device资源,功能上不会有问题,因为在进程退出时也会释放本进程使用的Device资源。建议aclrtSetDevice接口和aclrtResetDevice接口配对使用,在不使用Device上资源时,通过调用aclrtResetDevice接口及时释放本进程使用的Device资源。
支持以下使用场景:
- 在不同进程或线程中支持调用aclrtSetDevice接口指定同一个Device用于运算。在同一个进程中的多个线程中,如果调用aclrtSetDevice接口指定同一个Device用于运算,这时隐式创建的默认Context是同一个。
- 多Device场景下,可在进程中通过aclrtSetDevice接口切换到其它Device。但利用Context切换(调用aclrtSetCurrentContext接口)来切换Device,比使用aclrtSetDevice接口效率高。
函数原型
aclError aclrtSetDevice(int32_t deviceId)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| deviceId | 输入 | Device ID。 用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)] |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用流程及示例,参见运行管理资源申请与释放。
父主题: Device管理
aclrtResetDevice
函数功能
复位当前运算的Device,释放Device上的资源,包括默认Context、默认Stream以及默认Context下创建的所有Stream,同步接口。若默认Context或默认Stream下的任务还未完成,系统会等待任务完成后再释放。
约束说明
若要复位的Device上存在显式创建的Context、Stream、Event,在复位前,建议遵循如下接口调用顺序,否则可能会导致业务异常。
**接口调用顺序:调用aclrtDestroyEvent接口释放Event/调用aclrtDestroyStream接口释放显式创建的Stream-->调用aclrtDestroyContext释放显式创建的Context-->**调用aclrtResetDevice接口
函数原型
aclError aclrtResetDevice(int32_t deviceId)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| deviceId | 输入 | Device ID。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用流程及示例,参见运行管理资源申请与释放。
父主题: Device管理
在线提单