news 2026/7/5 18:32:42

CANN应用开发使用约束

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN应用开发使用约束

使用约束

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

关于低功耗

进入系统休眠前,需要确保不下发AI推理、媒体数据处理等相关业务,或者退出业务进程。等待系统唤醒成功后,再继续下发业务或重启业务进程。

关于进程

  • 不支持使用fork函数以及封装了fork的函数(如system、posix_spawnp等)创建多个子进程,且在进程中调用acl接口的场景,否则进程运行时会报错或者卡死。
  • 对于Atlas 训练系列产品,物理机场景下,一个Device上最多只能支持64个用户进程,Host最多只能支持Device个数64个进程;虚拟机场景下,一个Device上最多只能支持32个用户进程,Host最多只能支持Device个数32个进程。
  • 对于Atlas 推理系列产品,物理机场景下,一个Device上最多只能支持64个用户进程,Host最多只能支持Device个数64个进程;虚拟机场景下,一个Device上最多只能支持32个用户进程,Host最多只能支持Device个数32个进程。
  • 对于Atlas 200I/500 A2 推理产品,一个Device上最多只能支持64个用户进程,Host最多只能支持Device个数*64个进程。
  • 对于Atlas A2 训练系列产品/Atlas A2 推理系列产品,一个Device上最多只能支持63个用户进程,Host最多只能支持Device个数*63个进程。
  • 对于Atlas A3 训练系列产品/Atlas A3 推理系列产品,一个Device上最多只能支持63个用户进程,Host最多只能支持Device个数*63个进程。
  • 对于Ascend 950PR/Ascend 950DT,一个Device上最多只能支持64个用户进程,Host最多只能支持Device个数*64个进程。

关于创建类和销毁类接口

  • 对于创建类接口(例如:aclrtCreateStream、aclrtCreateEvent、aclCreateDataBuffer等),用户调用该类接口创建对应的资源后,资源使用完成后,建议及时调用对应的销毁类接口(例如:aclrtDestroyStream、aclrtDestroyEvent、aclDestroyDataBuffer等),否则,程序可能会异常。
  • 对于销毁类接口(例如:aclrtDestroyStream、aclrtDestroyEvent、aclrtFree、aclDestroyDataBuffer等),用户调用该类接口后,不能继续使用已释放或销毁的资源,建议用户调用销毁类接口后,将相关资源设置为无效值(例如,置为NULL)。

关于内存

  • 在Atlas 推理系列产品上开发业务应用时,需避免多个操作向同一个内存地址写数据,否则可能导致硬件异常。
  • 不支持在aclrtMemcpyAsync、aclrtMemsetAsync接口等异步操作内存过程中使用fork以及封装了fork的函数,如system、posix_spawnp等,否则会导致进程运行时会报错,甚至卡死等不可预期的错误。

  • 使用内存申请接口(例如aclrtMalloc)申请内存后,为确保内存中不会有脏数据,建议在使用内存前先调用aclrtMemset或aclrtMemsetAsync接口先清空内存,例如aclrtMemset(devBufferPtr, devBufferSize, 0, devBufferSize)。

  • Ascend RC形态下,如果应用程序中涉及aclrtMalloc、acldvppMalloc、hi_mpi_dvpp_malloc等内存申请接口,应用程序在Device上运行时,当前默认在内存不足时,应用程序可能会挂起,等待内存资源,用户可以根据实际需求选择启用操作系统提供的一些配置(例如,enable_oom_killer),这样在内存不足时,应用程序会自动退出,不会一直等待。若启用enable_oom_killer,您需登录Device,在“/proc/sys/vm”目录下,以root用户启用enable_oom_killer,命令示例如下,1表示启用,0表示禁用:

    echo 1 > enable_oom_killer

旧版本AI处理器->新版本AI处理器的应用迁移

需在迁移后的AI处理器版本上重新转换模型、编译应用程序,否则可能存在应用执行异常的情况。

【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 18:32:12

FlagGems开发者指南:如何贡献你的第一个Triton加速算子

FlagGems开发者指南:如何贡献你的第一个Triton加速算子 【免费下载链接】FlagGems FlagGems is an operator library for large language models implemented in the Triton Language. 项目地址: https://gitcode.com/gh_mirrors/fl/FlagGems FlagGems是一个…

作者头像 李华
网站建设 2026/7/5 18:32:11

ngxtension 实战案例:构建一个完整的 Angular 管理后台

ngxtension 实战案例:构建一个完整的 Angular 管理后台 【免费下载链接】ngxtension-platform Utilities for Angular 项目地址: https://gitcode.com/gh_mirrors/ng/ngxtension-platform 在现代化的 Angular 开发中,如何快速构建功能强大、性能优…

作者头像 李华
网站建设 2026/7/5 18:30:14

Magic 1-For-1最佳实践:企业级视频生成应用案例分享

Magic 1-For-1最佳实践:企业级视频生成应用案例分享 【免费下载链接】Magic-1-For-1 项目地址: https://gitcode.com/gh_mirrors/ma/Magic-1-For-1 Magic 1-For-1 是一款高效的视频生成模型,专为优化内存使用和降低推理延迟而设计。它将文本到视…

作者头像 李华
网站建设 2026/7/5 18:30:11

Surveyor数据导出指南:将问卷结果转化为可分析格式

Surveyor数据导出指南:将问卷结果转化为可分析格式 【免费下载链接】surveyor A Rails gem that lets you code surveys, questionnaires, quizzes, etc... and add them to your app. 项目地址: https://gitcode.com/gh_mirrors/su/surveyor Surveyor是一款…

作者头像 李华
网站建设 2026/7/5 18:28:37

CANN / cannbot-skills 代理文档

AGENTS.md — cannbot-insight 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills Project CANNBot-Insight: Session-le…

作者头像 李华
网站建设 2026/7/5 18:27:52

Colorbuddy.nvim性能优化:让你的配色方案加载速度提升50%

Colorbuddy.nvim性能优化:让你的配色方案加载速度提升50% 【免费下载链接】colorbuddy.nvim Your color buddy for making cool neovim color schemes 项目地址: https://gitcode.com/gh_mirrors/co/colorbuddy.nvim Colorbuddy.nvim是一款强大的Neovim配色方…

作者头像 李华