12. 执行控制
本章节描述 CANN Runtime 的执行控制接口,包括回调函数启动、Host 函数订阅、超时设置及异步 Reduce 操作。
aclError aclrtLaunchCallback(aclrtCallback fn, void *userData, aclrtCallbackBlockType blockType, aclrtStream stream):在Stream的任务队列中下发一个Host回调任务,系统内部在执行到该回调任务时,会在Stream上注册的线程(该线程由用户自行创建,并通过aclrtSubscribeReport接口注册)中执行回调函数。aclError aclrtSubscribeReport(uint64_t threadId, aclrtStream stream):注册处理Stream上回调函数的线程。aclError aclrtProcessReport(int32_t timeout):调用本接口设置超时时间,等待aclrtLaunchCallback接口下发的回调任务执行。aclError aclrtUnSubscribeReport(uint64_t threadId, aclrtStream stream):取消线程注册,Stream上的回调函数不再由指定线程处理。aclError aclrtGetOpTimeOutInterval(uint64_t *interval):获取硬件支持的算子超时配置的最短时间间隔interval,单位为微秒。aclError aclrtSetOpExecuteTimeOut(uint32_t timeout):设置算子执行的超时时间,单位为秒。一个进程内多次调用本接口,则以最后一次设置的时间为准。aclError aclrtSetOpExecuteTimeOutV2(uint64_t timeout, uint64_t *actualTimeout):设置算子执行的超时时间,单位为微秒。aclError aclrtSetOpExecuteTimeOutWithMs(uint32_t timeout):设置算子执行的超时时间,单位为毫秒。aclError aclrtGetOpExecuteTimeout(uint32_t *const timeoutMs):获取AI Core算子执行的超时时间。aclError aclrtGetThreadLastTaskId(uint32_t *taskId):获取当前线程的最后一个下发的Task ID。aclError aclrtReduceAsync(void *dst, const void *src, uint64_t count, aclrtReduceKind kind, aclDataType type, aclrtStream stream, void *reserve):执行Reduce操作,包括SUM、MIN、MAX等。异步接口。aclError aclrtLaunchHostFunc(aclrtStream stream, aclrtHostFunc fn, void *args):在Stream的任务队列中下发一个Host回调任务,系统内部在执行到该回调任务时,会在Stream上注册的线程(该线程在本接口内部创建并注册)中执行回调函数,并且回调任务默认阻塞本Stream上后续任务的执行。aclError aclrtRandomNumAsync(const aclrtRandomNumTaskInfo *taskInfo, const aclrtStream stream, void *reserve):下发并执行随机数生成任务。异步接口。aclError aclrtTaskUpdateAsync(aclrtStream taskStream, uint32_t taskId, aclrtTaskUpdateInfo *info, aclrtStream execStream):刷新目标任务的信息。异步接口。
aclrtLaunchCallback
aclError aclrtLaunchCallback(aclrtCallback fn, void *userData, aclrtCallbackBlockType blockType, aclrtStream stream)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:支持
功能说明
在Stream的任务队列中下发一个Host回调任务,系统内部在执行到该回调任务时,会在Stream上注册的线程(该线程由用户自行创建,并通过aclrtSubscribeReport接口注册)中执行回调函数。异步接口。
本接口需与以下其它接口配合使用,以便实现异步场景下的callback功能:
- 定义并实现回调函数,函数原型为:typedef void (*aclrtCallback)(void *userData);
- 新建线程,在线程函数内,调用aclrtProcessReport接口设置超时时间(需循环调用),等待回调任务执行;
- 调用aclrtSubscribeReport接口建立第2步中的线程和Stream的绑定关系,该Stream下发的回调函数将在绑定的线程中执行;
- 在指定Stream上执行异步任务(例如异步推理任务);
- 调用aclrtLaunchCallback接口在Stream的任务队列中下发回调任务,触发第2步中注册的线程处理回调函数,每调用一次aclrtLaunchCallback接口,就会触发一次回调函数的执行;
- 异步任务全部执行完成后,取消线程注册(aclrtUnSubscribeReport接口)。
本接口可用于实现异步场景下的callback功能,与另一个实现异步场景下的callback功能接口aclrtLaunchHostFunc的差别在于:使用aclrtLaunchHostFunc接口时,会在Stream上注册的线程(该线程在本接口内部创建并注册)中执行回调函数,并且回调任务默认阻塞本Stream上后续任务的执行。
对于同一个Stream,两套实现异步场景下的callback功能的接口不能混用,否则可能出现异常。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| fn | 输入 | 指定要增加的回调函数。 回调函数的函数原型为: typedef void (aclrtCallback)(voiduserData) |
| userData | 输入 | 待传递给回调函数的用户数据的指针。 |
| blockType | 输入 | 指定回调任务是否阻塞本Stream上后续任务的执行。 typedef enum aclrtCallbackBlockType { ACL_CALLBACK_NO_BLOCK, //非阻塞 ACL_CALLBACK_BLOCK, //阻塞 } aclrtCallbackBlockType; |
| stream | 输入 | 指定Stream。类型定义请参见aclrtStream。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
回调函数涉及共享资源(例如锁),因此在使用回调函数需慎重,不应该调用资源申请、资源释放、Stream同步、Device同步、任务下发、任务终止等接口,否则可能导致错误或死锁。
aclrtSubscribeReport
aclError aclrtSubscribeReport(uint64_t threadId, aclrtStream stream)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:支持
功能说明
注册处理Stream上回调函数的线程。
本接口需与以下其它接口配合使用,以便实现异步场景下的callback功能:
- 定义并实现回调函数,函数原型为:typedef void (*aclrtCallback)(void *userData);
- 新建线程,在线程函数内,调用aclrtProcessReport接口设置超时时间(需循环调用),等待回调任务执行;
- 调用aclrtSubscribeReport接口建立第2步中的线程和Stream的绑定关系,该Stream下发的回调函数将在绑定的线程中执行;
- 在指定Stream上执行异步任务(例如异步推理任务);
- 调用aclrtLaunchCallback接口在Stream的任务队列中下发回调任务,触发第2步中注册的线程处理回调函数,每调用一次aclrtLaunchCallback接口,就会触发一次回调函数的执行;
- 异步任务全部执行完成后,取消线程注册(aclrtUnSubscribeReport接口)。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| threadId | 输入 | 指定线程的ID。 |
| stream | 输入 | 指定Stream。类型定义请参见aclrtStream。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
支持多次调用aclrtSubscribeReport接口给多个Stream(仅支持同一Device内的多个Stream)注册同一个处理回调函数的线程;为确保Stream内的任务按调用顺序执行,不支持调用aclrtSubscribeReport接口给同一个Stream注册多个处理回调函数的线程;同一个进程内,在不同的Device上注册回调函数的线程时,不能指定同一个线程ID。
单进程内调用本接口注册的线程数量超过一定限制,则接口返回失败。考虑操作系统的线程切换性能开销,建议调用aclrtSubscribeReport接口注册的线程数量控制在32个以下(包括32)。当前支持的线程数量最大值为1024。
aclrtProcessReport
aclError aclrtProcessReport(int32_t timeout)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:支持
功能说明
调用本接口设置超时时间,等待aclrtLaunchCallback接口下发的回调任务执行。
本接口需与以下其它接口配合使用,以便实现异步场景下的callback功能:
- 定义并实现回调函数,函数原型为:typedef void (*aclrtCallback)(void *userData);
- 新建线程,在线程函数内,调用aclrtProcessReport接口设置超时时间(需循环调用),等待回调任务执行;
- 调用aclrtSubscribeReport接口建立第2步中的线程和Stream的绑定关系,该Stream下发的回调函数将在绑定的线程中执行;
- 在指定Stream上执行异步任务(例如异步推理任务);
- 调用aclrtLaunchCallback接口在Stream的任务队列中下发回调任务,触发第2步中注册的线程处理回调函数,每调用一次aclrtLaunchCallback接口,就会触发一次回调函数的执行;
- 异步任务全部执行完成后,取消线程注册(aclrtUnSubscribeReport接口)。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| timeout | 输入 | 超时时间,单位为ms。 取值范围: - -1:表示无限等待 - 大于0(不包含0):表示等待的时间 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtUnSubscribeReport
aclError aclrtUnSubscribeReport(uint64_t threadId, aclrtStream stream)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:支持
功能说明
取消线程注册,Stream上的回调函数不再由指定线程处理。
本接口需与以下其它接口配合使用,以便实现异步场景下的callback功能:
- 定义并实现回调函数,函数原型为:typedef void (*aclrtCallback)(void *userData);
- 新建线程,在线程函数内,调用aclrtProcessReport接口设置超时时间(需循环调用),等待回调任务执行;
- 调用aclrtSubscribeReport接口建立第2步中的线程和Stream的绑定关系,该Stream下发的回调函数将在绑定的线程中执行;
- 在指定Stream上执行异步任务(例如异步推理任务);
- 调用aclrtLaunchCallback接口在Stream的任务队列中下发回调任务,触发第2步中注册的线程处理回调函数,每调用一次aclrtLaunchCallback接口,就会触发一次回调函数的执行;
- 异步任务全部执行完成后,取消线程注册(aclrtUnSubscribeReport接口)。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| threadId | 输入 | 指定线程的ID。 |
| stream | 输入 | 指定Stream。类型定义请参见aclrtStream。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtGetOpTimeOutInterval
aclError aclrtGetOpTimeOutInterval(uint64_t *interval)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
获取硬件支持的算子超时配置的最短时间间隔interval,单位为微秒。
对于Atlas 200I/500 A2 推理产品、Atlas 推理系列产品、Atlas 训练系列产品,调用本接口只能获取AI Core算子的最短时间间隔。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| interval | 输出 | 最短时间间隔,单位为微秒。 用户可配置且生效的超时时间是interval N,N的取值为[1, 254]的整数,如果用户配置的超时时间不等于interval N,则向上对齐到interval N,假设interval = 100微秒,用户设置的超时时间为50微秒,则实际生效的超时时间为1001 = 100微秒;用户设置的超时时间为30000微秒,则实际生效的超时时间为100 *254 =25400微秒。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtSetOpExecuteTimeOut
aclError aclrtSetOpExecuteTimeOut(uint32_t timeout)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:支持
功能说明
设置算子执行的超时时间,单位为秒。一个进程内多次调用本接口,则以最后一次设置的时间为准。
如果算子下发时携带了超时时间,则该超时时间优先级高于本接口设置的超时时间。
对于Ascend 950PR/Ascend 950DT、Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品,建议使用aclrtSetOpExecuteTimeOutV2接口,该接口会返回实际生效的超时时间。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| timeout | 输入 | 设置超时时间,单位为秒。 将该参数设置为0时,表示使用最大超时时间。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
-
不调用本接口,不同产品型号的AI Core算子、AI CPU算子默认超时时间不同:
- 对于Ascend 950PR/Ascend 950DT,AI Core算子的默认超时时间为1091秒,AI CPU算子的默认超时时间为28秒。
- 对于Atlas A3 训练系列产品/Atlas A3 推理系列产品,AI Core算子的默认超时时间为1091秒,AI CPU算子的默认超时时间为60秒。
- 对于Atlas A2 训练系列产品/Atlas A2 推理系列产品,AI Core算子的默认超时时间为1091秒,AI CPU算子的默认超时时间为28秒。
- 对于Atlas 200I/500 A2 推理产品,AI Core算子的默认超时时间为1091秒,AI CPU算子的默认超时时间为28秒。
- 对于Atlas 推理系列产品,AI Core算子的默认超时时间为547秒,AI CPU算子的默认超时时间为28秒。
- 对于Atlas 训练系列产品,AI Core算子的默认超时时间为68秒,AI CPU算子的默认超时时间为28秒。
-
由于不同产品型号的架构差异,AI Core算子、AI CPU算子的最大超时时间有所不同:
- 对于Ascend 950PR/Ascend 950DT、Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品,AI Core算子、AI CPU算子最大超时时间为interval * 254,单位是微秒,interval可通过aclrtGetOpTimeoutInterval接口获取。
- 对于Atlas 200I/500 A2 推理产品,AI Core算子、AI CPU算子最大超时时间为1091秒。
- 对于Atlas 推理系列产品,AI Core算子的最大超时时间为547秒,AI CPU算子的最大超时时间不支持设置。
- 对于Atlas 训练系列产品,AI Core算子、AI CPU算子最大超时时间为2176秒。
aclrtSetOpExecuteTimeOutV2
aclError aclrtSetOpExecuteTimeOutV2(uint64_t timeout, uint64_t *actualTimeout)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
设置算子执行的超时时间,单位为微秒。如果算子下发时携带了超时时间,则该超时时间优先级高于本接口设置的超时时间。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| timeout | 输入 | 设置超时时间,单位为微秒。 将该参数设置为0时,表示使用最大超时时间。 当调用aclrtGetOpTimeOutInterval接口获取的时间间隔小于100000微妙,并且timeout参数设置为0时,表示AI Core算子将永不超时。 |
| actualTimeout | 输出 | 返回实际生效的超时时间,单位为微秒。 如果AI Core算子永不超时,则该参数输出的值为uint64_t的最大值。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
对于Ascend 950PR/Ascend 950DT、Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品,当调用aclrtGetOpTimeoutInterval接口获取的时间间隔小于100000微秒,并且将timeout参数值设置为0时,表示AI Core算子将永不超时,此时,actualTimeout参数输出的值为uint64_t的最大值。
对于Atlas 200I/500 A2 推理产品、Atlas 推理系列产品、Atlas 训练系列产品,调用本接口只能设置AI Core算子执行的超时时间。
aclrtSetOpExecuteTimeOutWithMs
aclError aclrtSetOpExecuteTimeOutWithMs(uint32_t timeout)
产品支持情况
- Ascend 950PR/Ascend 950DT:不支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品:不支持
- Atlas 训练系列产品:不支持
- IPV350:不支持
功能说明
设置算子执行的超时时间,单位为毫秒。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| timeout | 输入 | 设置超时时间,单位为毫秒。将该参数设置为0时,表示使用最大超时时间。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtGetOpExecuteTimeout
aclError aclrtGetOpExecuteTimeout(uint32_t *const timeoutMs)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
获取AI Core算子执行的超时时间。
对于Ascend 950PR/Ascend 950DT、Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品,如果AI Core算子永不超时,则该参数输出的值为uint32_t的最大值。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| timeoutMs | 输出 | 超时时间,单位为毫秒。 若已调用set接口(例如aclrtSetOpExecuteTimeOut)设置过超时时间,则返回硬件的实际超时时间,否则,返回AI Core的默认超时时间。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtGetThreadLastTaskId
aclError aclrtGetThreadLastTaskId(uint32_t *taskId)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
获取当前线程的最后一个下发的Task ID。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| taskId | 输出 | 当前线程的最后一个下发的Task ID。 此处的Task表示由用户显式创建的Stream上下发的Task。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtReduceAsync
aclError aclrtReduceAsync(void *dst, const void *src, uint64_t count, aclrtReduceKind kind, aclDataType type, aclrtStream stream, void *reserve)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
执行Reduce操作,包括SUM、MIN、MAX等。异步接口。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| dst | 输入 | 目的内存地址指针。 |
| src | 输入 | 源内存地址指针。 |
| count | 输入 | 源内存大小,单位为Byte。 |
| kind | 输入 | 操作类型。类型定义请参见aclrtReduceKind。 |
| type | 输入 | 数据类型。类型定义请参见aclDataType。 |
| stream | 输入 | 指定执行Reduce操作任务的Stream。类型定义请参见aclrtStream。 |
| reserve | 输入 | 预留参数。当前固定传NULL。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
dts、src必须跟stream所在的Device是同一个设备。
Ascend 950PR/Ascend 950DT支持如下数据类型:int8、int16、int32、uint32、fp16、fp32、bf16。
Atlas A3 训练系列产品/Atlas A3 推理系列产品支持如下数据类型:int8、int16、int32、fp16、fp32、bf16。
Atlas A2 训练系列产品/Atlas A2 推理系列产品支持如下数据类型:int8、int16、int32、fp16、fp32、bf16。
Atlas 200I/500 A2 推理产品支持如下数据类型:int8、int16、int32、fp16、fp32。
Atlas 推理系列产品支持如下数据类型:fp32 、fp16、int16。
Atlas 训练系列产品仅支持fp32类型。
aclrtLaunchHostFunc
aclError aclrtLaunchHostFunc(aclrtStream stream, aclrtHostFunc fn, void *args)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
在Stream的任务队列中下发一个Host回调任务,系统内部在执行到该回调任务时,会在Stream上注册的线程(该线程在本接口内部创建并注册)中执行回调函数,并且回调任务默认阻塞本Stream上后续任务的执行。异步接口。
本接口可用于实现异步场景下的callback功能,与另一套实现异步场景下的callback功能接口(aclrtLaunchCallback、aclrtSubscribeReport、aclrtProcessReport、aclrtUnSubscribeReport)的差别在于:使用aclrtLaunchCallback等接口时,Stream上注册的线程需由用户自行创建并通过aclrtSubscribeReport接口注册,另外也可以指定回调任务是否阻塞本Stream上后续任务的执行。
对于同一个Stream,两套实现异步场景下的callback功能的接口不能混用,否则可能出现异常。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 指定执行回调任务的Stream。类型定义请参见aclrtStream。 |
| fn | 输入 | 指定要增加的回调函数。 回调函数的函数原型为: typedef void (aclrtHostFunc)(voidargs) |
| args | 输入 | 待传递给回调函数的用户数据。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
回调函数涉及共享资源(例如锁),因此在使用回调函数需慎重,不应该调用资源申请、资源释放、Stream同步、Device同步、任务下发、任务终止等接口,否则可能导致错误或死锁。
aclrtRandomNumAsync
aclError aclrtRandomNumAsync(const aclrtRandomNumTaskInfo *taskInfo, const aclrtStream stream, void *reserve)
产品支持情况
- Ascend 950PR/Ascend 950DT:不支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品:不支持
- Atlas 训练系列产品:不支持
- IPV350:不支持
功能说明
下发并执行随机数生成任务。异步接口。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| taskInfo | 输入 | 随机数生成任务信息。类型定义请参见aclrtRandomNumTaskInfo。 |
| stream | 输入 | 执行随机数生成任务的Stream。类型定义请参见aclrtStream。 |
| reserve | 输入 | 预留参数。当前固定传NULL。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
aclrtTaskUpdateAsync
aclError aclrtTaskUpdateAsync(aclrtStream taskStream, uint32_t taskId, aclrtTaskUpdateInfo *info, aclrtStream execStream)
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:不支持
- IPV350:不支持
功能说明
刷新目标任务的信息。异步接口。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| taskStream | 输入 | 目标任务所在的Stream。类型定义请参见aclrtStream。 此处只支持与模型绑定过的Stream,绑定模型与Stream需调用aclmdlRIBindStream接口。 |
| taskId | 输入 | 目标任务ID。 可调用aclrtGetThreadLastTaskId接口获取任务ID。 |
| info | 输入 | 配置信息。类型定义请参见aclrtTaskUpdateInfo。 |
| execStream | 输入 | 执行刷新任务的Stream。类型定义请参见aclrtStream。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
Ascend 950PR/Ascend 950DT产品不支持更新ACL_RT_UPDATE_RANDOM_TASK(随机数生成任务)。