OrangePi AIpro 香橙派 昇腾 Ascend C算子开发

flyfish

环境搭建部分
OrangePi AIpro 香橙派的npu为310B4,通常配置的时候写 Ascend310B4
社区版资源下载地址

下载 CANN 这里选择的是 CANN 8.0.RC3.alpha002

异构计算架构CANN(Compute Architecture for Neural Networks)是
华为针对AI场景推出的异构计算架构,
向上支持多种AI框架,向下服务AI处理器与编程,发挥承上启下的关键作用,
是提升昇腾AI处理器计算效率的关键平台。

面向算子开发场景的编程语言Ascend C,原生支持C和C++标准规范,最大化匹配用户开发习惯;通过多层接口抽象、自动并行计算、孪生调试等关键技术,极大提高算子开发效率,助力AI开发者低成本完成算子开发和模型调优部署。

使用Ascend C进行自定义算子开发的突出优势有:

 C/C++原语编程
 编程模型屏蔽硬件差异,编程范式提高开发效率
 类库API封装,从简单到灵活,兼顾易用与高效
 孪生调试,CPU侧模拟NPU侧的行为,可优先在CPU侧调试

下载完之后,放置到香橙派里按照下面一步步操作

准备

以root用户登录安装环境为例
配置环境变量,修改线程数为无限制,编辑“/etc/profile”文件,在文件的最后添加如下内容后保存退出:

ulimit -u unlimited

执行如下命令使环境变量生效。

source /etc/profile

安装依赖

root用户安装,执行如下命令:

apt-get install -y gcc g++ make cmake libsqlite3-dev zlib1g-dev libssl-dev libffi-dev net-tools

安装所需的Python第三方库:

pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py

安装Toolkit

chmod +x Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run
./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run --install --quiet
```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/06083871d6fc4c0692adb94094515eab.png#pic_center)
## 配置环境变量

执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后一行后面添加如下内容,根据set_env.sh的实际安装路径替换。

```cpp
source /usr/local/Ascend/ascend-toolkit/set_env.sh 

执行如下命令保存文件并退出。

:wq!

执行如下命令使其立即生效。

source ~/.bashrc

在这里插入图片描述

查询CANN版本信息

进入目录

/usr/local/Ascend/ascend-toolkit/latest/aarch64-linux

执行

cat ascend_toolkit_install.info

在这里插入图片描述

HelloWorldSample例子

下载地址
进入源码目录执行

 bash run.sh -v Ascend310B4

结果

opType=hello_world, DumpHead: AIV-0, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-1, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-2, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-3, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-4, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-5, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-6, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!
opType=hello_world, DumpHead: AIV-7, CoreType=, block dim=8, total_block_num=8, block_remain_len=1048424, block_initial_space=1048576, rsv=0, magic=5aa5bccd
CANN Version: 901005402, TimeStamp: 20240821
Hello World!!!

在这里插入图片描述

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐