当前位置: 首页 > news >正文

CANN/runtime模型流切换示例

2_model_switch

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

Description

This sample demonstrates how to use aclmdlRIBuildBegin interface to create a model instance, and implements Stream jumping and Stream activation in tasks.

Product Support

Key interfaces in this sample have the following support status on different products:

InterfaceAtlas A3 training series products/Atlas A3 inference series productsAtlas A2 training series products/Atlas A2 inference series products
aclmdlRIBuildBeginYesYes
aclmdlRIBindStreamYesYes
aclmdlRIEndTaskYesYes
aclmdlRIBuildEndYesYes
aclmdlRIUnbindStreamYesYes
aclmdlRIExecuteAsyncYesYes
aclrtSwitchStreamNoYes
aclrtActiveStreamNoYes

Build and Run

For environment installation details and running details, see README in the example directory.

Run steps:

# Replace ${install_root} with CANN installation root directory, default installation at /usr/local/Ascend source ${install_root}/cann/set_env.sh export ASCEND_INSTALL_PATH=${install_root}/cann # Replace ${ascend_name} with Ascend AI processor model, obtained by checking Name field using npu-smi info and removing spaces, for example ascend910b3 export SOC_VERSION=${ascend_name} # Some samples involve calling AscendC operators, need to configure AscendC compiler ascendc.cmake path, for example ${install_root}/cann/aarch64-linux/tikcpp/ascendc_kernel_cmake # Find ascendc_kernel_cmake under CANN package installation path, for example find ./ -name ascendc_kernel_cmake, and replace ${cmake_path} with ascendc_kernel_cmake directory path export ASCENDC_CMAKE_DIR=${cmake_path} # Build and run bash run.sh

CANN RUNTIME API

Key features and interfaces in this sample:

  • Initialization
    • Call aclInit interface to initialize AscendCL configuration.
    • Call aclFinalize interface to deinitialize AscendCL.
  • Device Management
    • Call aclrtSetDevice interface to specify Device for computation.
    • Call aclrtResetDeviceForce interface to forcibly reset current computation Device and reclaim Device resources.
  • Context Management
    • Call aclrtCreateContext interface to create Context.
    • Call aclrtDestroyContext interface to destroy Context.
  • Stream Management
    • Call aclrtCreateStream interface to create Stream.
    • Call aclrtSynchronizeStream interface to block waiting for Stream task completion.
    • Call aclrtDestroyStreamForce interface to forcibly destroy Stream, discarding all tasks.
    • Call aclrtCreateStreamWithConfig interface to create Stream with special config.
    • Call aclrtSwitchStream interface to jump between Streams based on condition.
    • Call aclrtActiveStream interface to activate Stream.
  • Model Management
    • Call aclmdlRIBuildBegin interface to start building a model runtime instance.
    • Call aclmdlRIBindStream interface to bind model runtime instance to Stream.
    • Call aclmdlRIEndTask interface to mark task dispatch end.
    • Call aclmdlRIBuildEnd interface to finish building model runtime instance.
    • Call aclmdlRIUnbindStream interface to unbind model runtime instance from Stream.
    • Call aclmdlRIExecuteAsync interface to asynchronously execute model inference.
    • Call aclmdlRIDestroy interface to destroy model runtime instance.
  • Memory Management
    • Call aclrtMalloc interface to allocate Device memory.
    • Call aclrtFree interface to release Device memory.
  • Data Transfer
    • Call aclrtMemcpy interface to implement data transfer by memory copy.
    • Call aclrtMemcpyAsync interface to perform asynchronous memory copy.

Known Issues

None

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

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

http://www.jsqmd.com/news/1071103/

相关文章:

  • Auto-evaluator错误处理与调试:常见问题解决方案的完整清单
  • CANN/runtime:资源限制内核执行示例
  • Dify.AI语音交互系统深度解析与架构设计
  • Reflex框架终极实战指南:5分钟解决Python Web应用开发难题
  • FlagGems性能调优秘籍:10个实用技巧助你针对特定硬件后端最大化加速比
  • Elastic Integrations故障排查指南:从日志分析到问题解决的实用技巧
  • laravel-money宏与混入功能:如何优雅扩展货币处理能力?
  • Awesome Claude Skills:构建AI工作流的终极指南与完整实践
  • 7-Zip DLL选择指南:bit7z兼容的7z.dll/7za.dll功能对比
  • 终极iOS越狱指南:使用palera1n轻松解锁iPhone系统权限
  • Javinizer元数据抓取原理深度解析:如何从8大网站获取最全信息
  • 学术PDF翻译的终极解决方案:BabelDOC如何完美保留格式与公式
  • 深度解析开源microG项目:如何为无GMS设备提供完整Google服务替代方案
  • wasm-git高级教程:使用Web Worker实现浏览器中的Git仓库克隆与提交
  • GroupViT模型训练全指南:从环境配置到COCO数据集评估,新手也能轻松掌握
  • 中国象棋AlphaZero实现:从理论到实践的技术探索
  • Meta-Transfer Learning终极指南:从元学习到参数缩放与平移的完整解析
  • 10分钟自主搭建零成本内网穿透:bore轻量级隧道实战指南
  • 5分钟快速上手:Unity物理卡通着色器UniToon完全指南 [特殊字符]
  • PhoneVR项目路线图:未来功能和发展方向展望
  • Binwalk v3.1.0:固件分析架构跃迁,性能重构实现10倍加速
  • 如何用BRAT插件轻松管理Obsidian测试版插件:完整指南与实战技巧
  • OpenInference故障诊断:常见问题排查与调试技巧大全
  • DJITelloPy:Python无人机编程实战指南 - 从基础飞行到多机编队
  • 如何搭建自动化域名监控系统:Domain Admin终极指南
  • TornadoVM异构计算实战:3大架构突破与5层性能优化深度解析
  • Midscene.js性能优化实战:7大策略解决AI自动化卡顿问题
  • iMonitor脚本编程教程:TypeScript/JavaScript扩展系统监控功能
  • 如何用AI+BI平台在3分钟内让数据开口说话?
  • ComfyUI-LTXVideo完全指南:如何在5分钟内开启AI视频创作新时代