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

CANN/atvoss ATVOSS开发快速入门

ATVOSS开发快速入门

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

介绍

ATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子模板库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。

环境搭建一般分为如下场景,您可以按需安装:

  • 编译态:针对仅编译不运行本项目的场景,只需安装前置依赖和CANN toolkit包。
  • 运行态:针对运行本项目的场景(编译运行或纯运行),除了安装前置依赖和CANN toolkit包,还需安装驱动与固件、CANN ops包。

环境准备

系统要求

ATVOSS支持源码编译,进行源码编译前,请确保如下基础依赖、NPU驱动和固件已安装。

  1. 安装依赖

    本项目源码编译用到的依赖如下,请注意版本要求。

    • python >= 3.7.0(建议版本 <= 3.10)
    • gcc >= 7.3.0
    • cmake >= 3.16.0
    • pigz(可选,安装后可提升打包速度,建议版本 >= 2.4)
    • dos2unix
    • gawk
    • make
    • googletest(仅执行UT时依赖,建议版本 release-1.11.0)
  2. 安装驱动与固件(运行态依赖)

    运行算子时必须安装驱动与固件,若仅编译算子,可跳过本操作。

    单击下载链接,根据实际产品型号和环境架构,获取对应的Ascend-hdk-<chip_type>-npu-driver_<version>_linux-<arch>.runAscend-hdk-<chip_type>-npu-firmware_<version>.run包。

    安装指导详见《CANN 软件安装指南》中“安装指南 > 安装NPU驱动和固件”。

环境准备

  • 支持的产品
    • Ascend 950PR/Ascend 950DT

手动安装CANN包

1. 下载软件包

单击下载链接,选择最新发布日期对应的目录,根据实际产品型号和环境架构,获取Ascend-cann-toolkit_${cann_version}_linux-${arch}.run

2. 安装软件包
  1. 安装社区CANN toolkit包

    # 需要确保安装目录权限至少为755 # 确保安装包具有可执行权限 chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --force --install-path=${install_path}
    • ${cann_version}:表示CANN包版本号。
    • ${arch}:表示CPU架构,如aarch64、x86_64。
    • ${install_path}:表示指定安装路径,默认安装在/usr/local/Ascend目录。

环境验证

安装完CANN包或进入Docker容器后,需验证环境和驱动是否正常。

  • 检查NPU设备(仿真执行,跳过此步骤):
    # 运行npu-smi,若能正常显示设备信息,则驱动正常 npu-smi info
  • 检查CANN安装
    # 查看CANN Toolkit版本信息(非root用户,将/usr/local替换为${HOME}) cat /usr/local/Ascend/cann/opp/version.info

环境变量配置

按需选择合适的命令使环境变量生效。

# 默认路径安装,以root用户为例(非root用户,将/usr/local替换为${HOME}) source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 source ${install_path}/cann/set_env.sh

源码下载

# 下载项目源码 git clone -b master git@gitcode.com:cann/atvoss.git

[!NOTE] 注意 gitcode平台在使用 SSH 协议时,请在本地生成 SSH 公钥进行克隆、推送等操作。

编译执行

开发者调用ATVOSS实现自定义算子开发后,可通过单算子调用的方式验证算子功能。本仓提供部分算子实现及其调用样例,具体请参考examples目录下的样例。

  1. 编译example ATVOSS仓提供一键式编译examples的能力,可以指定单个example编译(例如,编译examples/rms_norm目录里的用例)
    bash scripts/build.sh -DSOC=ascend950 rms_norm
  2. 单样例执行(依赖Device环境) 编译完成后会生成output/bin/rms_norm可执行文件
    ./output/bin/rms_norm --shape=512,3
  3. 仿真执行(不依赖Device环境) 利用cannsim实现仿真运行, 将上述执行脚本写到自建的Shell脚本,如run.sh中
    # run.sh ./output/bin/rms_norm --shape=512,3

    给自建的run.sh增加可执行权限,然后使用仿真命令cannsim执行

    chmod +x run.sh cannsim record ./run.sh -s Ascend950 --gen-report

    执行完成后会在当前目录生成一个cannsim_xxx的结果文件夹。

若提示如下信息,则说明算子运行成功,精度校验通过。更详细的用例执行流程请参阅样例介绍。

Accuracy verification passed.

UT测试(可选)

  1. 编译&执行host_ut
    bash scripts/build.sh -DSOC=ascend950 --host_ut

    编译完成会直接运行host_ut并输出ut执行结果。

ST测试(可选)

  1. 编译st

    bash scripts/build.sh -DSOC=ascend950 --st ${st_case_name}
  2. 执行st

    cannsim record ./output/bin/${st_case_name} -s Ascend950 --gen-report

相关文档

  • 项目整体介绍 - 项目介绍
  • 目录结构 - 目录结构
  • 开发者指南 - 详细的开发流程
  • API文档 - API文档

【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss

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

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

相关文章:

  • 基于Python爬虫的自动化求职监控系统:从原理到实践
  • 6个国内免版权的音乐网站,剪辑师速存! - 拾光而行
  • 联邦学习破局关键:深入解析非IID数据(2026实战指南)
  • 【深度揭秘】亨得利宝珀机芯维修工艺全解析:技术特点、保养价格与避坑指南(2026年5月全国门店版) - 亨得利腕表维修中心
  • AutoTeam:基于状态机与Playwright的ChatGPT Team自动化管理工具实践
  • CANN/ops-cv快速安装指南
  • CANN/sip Cgerc运算示例
  • 2026年广东二手PCB设备回收处置完全指南:从闲置到增效的资源第二生命 - 年度推荐企业名录
  • 新用户注册Taotoken后快速上手完成第一个API调用的全流程
  • PocketLantern:为AI编码助手提供实时技术决策事实核查
  • CANN/DeepSeek-V3.2-Exp配置说明
  • 基于Better Auth的全栈SaaS UI组件库:快速构建认证与支付系统
  • Android多模型AI聊天聚合器:基于Jetpack Compose的隐私优先应用开发实践
  • 基于Python的Claude Telegram Bot服务端:架构设计与部署实战
  • DS4Windows终极指南:5个步骤让PS4手柄在Windows上完美重生
  • 全国手板加工与CNC手板制造,珠三角“一站式”服务商成企业首选 - 深度智识库
  • 基于LLM与向量数据库的智能消息代理系统设计与实现
  • 如何用智能游戏助手彻底告别重复操作:鸣潮自动化工具终极指南
  • 2026年广东二手PCB设备买卖全攻略:从翻新陷阱到整厂搬迁一站式解决方案 - 年度推荐企业名录
  • 微服务架构演进:从单体到分布式,架构师十年实战经验分享
  • GT收发器64B66B协议避坑指南:搞懂Gearbox和Block Sync,告别数据对齐失败
  • 为AI编码助手注入Vue与Nuxt最佳实践:提升开发效率与代码质量
  • 青少年AI夏令营实践:拆掉AI神秘围墙的三天探索之旅
  • 别再踩坑了!Java中BigDecimal用字符串初始化的3个真实场景和1个血泪教训
  • AlphaRank与DCR融合:破解亿级数据排序与探索利用难题
  • 半导体行业展会推荐汇总,中国半导体展优选,助力企业洞察行业前沿 - 品牌2026
  • CANN/catlass: Block Epilogue Visitor 偏特化
  • LLM 模型图模式改造指南
  • 基于Wechaty与OpenAI API构建智能微信机器人的完整实践指南
  • AGC020D 学习笔记