news 2026/5/22 23:48:52

CANN/Ascend C HelloWorld样例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/Ascend C HelloWorld样例

HelloWorld样例

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

概述

本样例通过使用<<<>>>内核调用符来完成样例核函数在NPU侧运行验证的基础流程,核函数内通过printf打印输出结果。

支持的产品

  • Ascend 950PR/Ascend 950DT
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

目录结构介绍

├── hello_world │ ├── CMakeLists.txt // 编译工程文件 │ └── hello_world.asc // Ascend C样例实现 & 调用样例

编译运行

在本样例根目录下执行如下步骤,编译并执行样例。

  • 配置环境变量
    请根据当前环境上CANN开发套件包的安装方式,选择对应配置环境变量的命令。

    • 默认路径,root用户安装CANN软件包

      source /usr/local/Ascend/cann/set_env.sh
    • 默认路径,非root用户安装CANN软件包

      source $HOME/Ascend/cann/set_env.sh
    • 指定路径install_path,安装CANN软件包

      source ${install_path}/cann/set_env.sh
  • 样例执行

    mkdir -p build && cd build; cmake -DCMAKE_ASC_ARCHITECTURES=dav-2201 ..;make -j; # 编译工程(默认npu模式) ./demo

    使用 CPU调试 或 NPU仿真 模式时,添加-DCMAKE_ASC_RUN_MODE=cpu-DCMAKE_ASC_RUN_MODE=sim参数即可。

    示例如下:

    cmake -DCMAKE_ASC_RUN_MODE=cpu -DCMAKE_ASC_ARCHITECTURES=dav-2201 ..;make -j; # cpu调试模式 cmake -DCMAKE_ASC_RUN_MODE=sim -DCMAKE_ASC_ARCHITECTURES=dav-2201 ..;make -j; # NPU仿真模式

    若需详细了解CPU调试相关内容,请参考03_cpudebug样例。

    注意:切换编译模式前需清理 cmake 缓存,可在 build 目录下执行rm CMakeCache.txt后重新 cmake。

  • 编译选项说明 | 选项 | 可选值 | 说明 | |------|--------|------| |CMAKE_ASC_RUN_MODE|npu(默认)、cpusim| 运行模式:NPU 运行、CPU调试、NPU仿真 | |CMAKE_ASC_ARCHITECTURES|dav-2201(默认)、dav-3510| NPU 架构:dav-2201 对应 Atlas A2 训练系列产品/Atlas A2 推理系列产品和Atlas A3 训练系列产品/Atlas A3 推理系列产品,dav-3510 对应 Ascend 950PR/Ascend 950DT |

  • 执行结果
    执行结果如下,说明执行成功。

    [AIV Block 0/8] Hello World!!! [AIV Block 1/8] Hello World!!! [AIV Block 2/8] Hello World!!! [AIV Block 3/8] Hello World!!! [AIV Block 4/8] Hello World!!! [AIV Block 5/8] Hello World!!! [AIV Block 6/8] Hello World!!! [AIV Block 7/8] Hello World!!!

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

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

react-tween-state源码解析:理解React动画库的内部工作原理

react-tween-state源码解析&#xff1a;理解React动画库的内部工作原理 【免费下载链接】react-tween-state React animation. 项目地址: https://gitcode.com/gh_mirrors/re/react-tween-state react-tween-state是一个轻量级的React动画库&#xff0c;它通过状态缓动&…

作者头像 李华
网站建设 2026/5/22 23:37:03

【Linux】基本指令3

【Linux】基本指令1 【Linux】基本指令2 &#x1f4cc; 相关专栏 【Linux专栏】【C语言专栏】【测试专栏】 文章目录cal指令find指令which指令whereis指令alias指令grep指令zip/unzip指令tar指令bc指令uname指令cal指令 cal指令可以用来显示公历&#xff08;阳历&#xff09;…

作者头像 李华
网站建设 2026/5/22 23:36:03

Java单元测试覆盖率≠质量保障!Gemini动态路径分析揭示87%高危空指针未被UT覆盖(附可落地的增强策略模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Java单元测试覆盖率的认知误区与质量保障本质 许多团队将“80%行覆盖率”奉为质量金标准&#xff0c;却在上线后遭遇隐蔽的空指针或边界逻辑崩溃。覆盖率数字本身不等于质量&#xff0c;它只是测试活动…

作者头像 李华
网站建设 2026/5/22 23:33:04

【YOLO全系列架构演进史】8 YOLOv1-v3:从网格预测到Anchor机制的奠基

1. 总体定位与阅读导航 1.1.1.1 这篇文章要解决什么问题 我们打开一篇目标检测论文时,经常遇到这样的困境:公式看了三遍,代码跑了一遍,但问起"为什么这样设计"时却语塞。YOLO系列从v1到v3的演进,表面是网络变深、精度提升,内核却是一次次对"检测任务本质…

作者头像 李华
网站建设 2026/5/22 23:33:03

【YOLO全系列架构演进史】9 YOLOv4:CSPDarknet53 + PANet + SPP 的集大成设计

YOLOv4:CSPDarknet53 + PANet + SPP 的集大成设计 1. 知识图谱与认知地图 1.1.1.1 为什么需要一张认知地图 我们面对一张 608608 的输入图像,最终要输出上百个目标的类别与坐标。这个过程中信息经历了怎样的变形?如果我们把 YOLOv4 想象成一座工厂,原材料从一端进入,成品…

作者头像 李华