| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 3 个月前 |
1_callback_hostfunc
描述
本样例展示了在Stream上下发一个Host侧函数,该Host侧函数将在当前已下发的任务执行之后被调用,并会阻塞之后添加的任务。
产品支持情况
本样例在以下产品上的支持情况如下:
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
编译运行
环境安装详情以及运行详情请见example目录下的README。
运行步骤如下:
# ${install_root} 替换为 CANN 安装根目录,默认安装在`/usr/local/Ascend`目录
source ${install_root}/cann/set_env.sh
# 自动识别 SOC_VERSION 和 ASCENDC_CMAKE_DIR
source ${git_clone_path}/example/set_sample_env.sh
# 编译运行
bash run.sh
CANN RUNTIME API
在该Sample中,涉及的关键功能点及其关键接口,如下所示:
- 初始化
- 调用aclInit接口初始化AscendCL配置。
- 调用aclFinalize接口实现AscendCL去初始化。
- Device管理
- 调用aclrtSetDevice接口指定用于运算的Device。
- 调用aclrtResetDeviceForce接口强制复位当前运算的Device,回收Device上的资源。
- Context管理
- 调用aclrtCreateContext接口创建Context。
- 调用aclrtDestroyContext接口销毁Context。
- Stream管理
- 调用aclrtCreateStream接口创建Stream。
- 调用aclrtSynchronizeStream可以阻塞等待Stream上任务的完成。
- 调用aclrtSetStreamFailureMode可以设置Stream执行任务遇到错误的操作,默认为遇错继续,可以设置为遇错即停。
- 调用aclrtDestroyStreamForce接口强制销毁Stream,丢弃所有任务。
- 回调控制
- 调用aclrtLaunchHostFunc接口直接触发回调,无需显示创建线程。
- 内存管理
- 调用aclrtMalloc接口申请Device上的内存。
- 调用aclrtFree接口释放Device上的内存。
- 数据传输
- 调用aclrtMemcpy接口通过内存复制的方式实现数据传输。
示例输出
[INFO] Hostfunc callback!!!
[INFO] After assigning the task through the created stream, the current result is: ...
[INFO] Resource cleanup completed.
已知issue
暂无