飞腾平台Arm ComputeLibrary编译安装指南

devtools/2024/11/8 15:00:12/
【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png

 本文分享至飞腾开发者平台《飞腾平台ArmComputeLibrary编译安装指南》

1 介绍

  Arm Compute Library(ACL)是一个开源工程,旨在为图像/视频/多媒体/计算机视觉等领域的开发者提供硬件加速库。本文介绍了如何在飞腾平台上进行ACL的编译安装。

2 环境要求

2.1 硬件环境

  硬件环境如下表所示。

项目说明
CPUFT-2000+/64、飞腾腾云 S2500、FT-2000/4、飞腾腾锐D2000
网络
存储
内存

2.2 软件环境

  软件环境如下表所示。

项目版本下载地址
OScentos8.2、Kylin V10、 Ubuntu19.10
GCC9.2.1、7.3.0、8.3.1、9.3.0
GNU Binutils2.32、2.33、2.34、2.35
Glibc2.28、2.23、2.31、2.30
Scons4.1.0(参考)https://sourceforge.net/projects/scons/files/scons/4.1.0/scon...
ComputeLibraryhttps://github.com/ARM-software/ComputeLibrary.git

3 配套软件编译安装

3.1 编译安装GCC(示例)

  步骤一 下载gcc-9.3的源码包。(例)

$ cd $HOME$ wget (http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz)

  步骤二 解压并下载所依赖的库。

$ tar -xzvf gcc-9.3.0.tar.gz          //解压缩$ cd gcc-9.3.0                //进入解压文件路径
$ ./contrib/download_prerequisites      //运行脚本自动下载所需要的依赖文件和库

  步骤三 建立输出目录。

$ mkdir gcc-build-9.3.0$ cd gcc-build-9.3.0

  步骤四 编译和安装。

$ ../configure -enable-checking=release -enable-language=c,c++ -disable-multilib$ make && make install

  步骤五 设置环境变量。

# 如果gcc指令安装目录不在PATH中,则还需设置export PATH=/gcc_path/bin:$PATH$ export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH

  步骤六 版本查看。

  gcc默认安装路径为/usr/local/bin,编译安装成功之后,可使用以下命令进行版本查看:

$ gcc -v

  步骤七 创建链接符号。

$ cd /usr/local/bin$ ln -s aarch64-unknown-linux-gnu-gcc aarch64-linux-gnu-gcc$ ln -s aarch64-unknown-linux-gnu-g++ aarch64-linux-gnu-g++$ ln -s aarch64-unknown-linux-gnu-c++ aarch64-linux-gnu-c++

3.2 编译安装GNU Binutils(示例)

  GNU Binutils是二进制工具的集合,是linux系统不可缺少的一个工具包。

  步骤一 下载binutils源码。(例)

$ cd $HOME$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.35.tar.gz

  步骤二 解压源码包。

$ tar -xzvf binutils-2.35.tar.gz       //解压缩$ cd binutils-2.35              //进入解压文件路径

  步骤三 编译和安装。

$ mkdir build$ mkdir -p ~/binutils            //创建安装目录$ cd build# 执行以下命令进行编译安装$ ../configure prefix=$HOME/binutils$ make$ make install

  步骤四 拷贝指令。

$ cd $HOME/binutils/bin$ sudo cp * /usr/local/bin

  步骤五 版本查看。

  编译安装成功之后,可使用以下命令进行版本查看:

$ ld --version

3.3 编译安装Scons

  Scons是一个开放源码、以Python语言编码的自动化构建工具,类似于GNU Make。它采用不同于通常Makefile文件的方式,而使用SConstruct和SConscript文件来替代。这些文件也是Python脚本,能够使用标准的Python语法来编写。所以在SConstruct、SConscript文件中可以调用Python标准库进行各类复杂的处理,而不局限于Makefile设定的规则。

  步骤一 下载scons源码。

$ cd $HOME$ wget https://sourceforge.net/projects/scons/files/scons/4.1.0/scons-4.1.0.tar.gz

  步骤二 python版本。

#不同scons所依赖的python版本也不同,Scons-4.0.1版本需要python3.5或者更高版本,在系统中选择使用正确的python版本$ cd /usr/bin$ sudo ln -s python3 python

  步骤三 解压源码包。

$ tar -zxf scons-4.0.1.tar.gz$ cd scons-4.0.1

  步骤四 编译和安装。

# scons的安装依赖setuptools模块$ wget https://bootstrap.pypa.io/ez_setup.py    //下载setuptools模块$ python ez_setup.py              //安装setuptools模块$ sudo python setup.py install          //安装scons

  步骤五 验证。

# scons默认安装到/usr/local/bin目录# 根据需求来决定是否需要设置环境变量:export PATH=/scons_path/bin:\$PATH# 检查scons是否安装成功$  scons --version

4 编译ComputeLibrary

  步骤一 获取ComputeLibrary。

$ git clone https://github.com/ARM-software/ComputeLibrary.git

  步骤二 进入ComputeLibrary目录,进行编译。

$ scons arch=arm64-v8a Werror=0 -j8 neon=1 opencl=0 embed_kernels=0
extra_cxx_flags="-fPIC" benchmark_tests=1 examples=1 validation_tests=1 os=linux

  如果要enable benchmark tests, set benchmark_tests=1

  如果要enable validation tests, set validation_tests=1

  如果要支持NEON, set neon=1

  步骤三 设置环境变量。

$ export LD_LIBRARY_PATH=$HOME/ComputeLibrary/build:$LD_LIBRARY_PATH

  步骤四 验证。

# 在build/tests目录下会生成相应的测试程序$ cd $HOME/ComputeLibrary/build/tests# 测试程序运行,例如:    $ ./benchmark_graph_mnist

推荐阅读

  • 飞腾X100 NPU Benchmark使用说明
  • 飞腾X100NPU应用SDK使用手册

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。


http://www.ppmy.cn/devtools/132342.html

相关文章

100+SCI科研绘图系列教程(R和python)

科研绘图系列:箱线图加百分比点图展示组间差异-CSDN博客科研绘图系列:箱线图加蜜蜂图展示组间数据分布-CSDN博客科研绘图系列:小提琴图和双侧小提琴图展示组间差异-CSDN博客科研绘图系列:组间差异的STAMP图的ggplot2实现-CSDN博客…

Flutter鸿蒙next 中的 Expanded 和 Flexible 使用技巧详解

在 Flutter 开发中,Expanded 和 Flexible 是两个非常常用的布局控件,它们可以帮助开发者更加灵活地管理 UI 布局的空间分配。虽然它们看起来非常相似,但它们的功能和使用场景有所不同。理解这两者的区别,能帮助你在构建复杂 UI 布…

solo博客源码使用idea编译运行

solo博客源码使用idea编译运行 solo博客开源地址本地运行IDEA 编译执行默认直接编译jar 包编译 solo博客开源地址 项目地址:GitHub - 88250/solo: 🎸 B3log 分布式社区的 Java 博客端节点系统,欢迎加入下一代社区网络。B3log distributed co…

ajax关于axios库的运用小案例

AJAX案例 图书管理 四大功能: 展示图书删除图书编辑图书信息新增图书 步骤 1.bootstrap弹窗来实现新增和编辑图书时出现的弹窗 有两种方案: a.可以用自带的属性来进行弹窗的显示和隐藏 b.可以通过JS进行控制,此操作可以进行自定义&am…

【植物识别】Python+深度学习+人工智能+CNN卷积神经网络+算法模型训练+TensorFlow

一、介绍 植物识别系统,使用Python作为主要编程语言开发,通过收集常见的6中植物树叶(‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’)图片作为数据集,然后使用TensorFlow搭建ResNet50算法网络模型&am…

C# 都有哪些集合?

在 C# 中,集合(Collection)是用来存储一组数据的对象,通常是同一类型的数据。C# 提供了多种不同类型的集合,每种集合都有其独特的特点和用途。 常见的集合可以分为以下几类:数组、泛型集合、非泛型集合、其…

人生的决策和算法学习有感

我们做决策,是为了在运气面前获得更多主动权,而获得更多好运的方法,除了不断做出好的决策,还要让自己成为配得上这好运的人。 这种大局观体现为:要么是因为一个人一直很聪明地停留在自己有优势的领域,要么…

STM32学习-段的概念_散列文件_重定位

使用keil烧写程序时,程序保存在哪里?这个问题很好想,当掉电时,RAM中的数据会被清除,所以程序数据只能保存在ROM区,对于STM32则是保存在内部的Flash中,那么程序运行是在ROM/Flash还是RAM呢&#…