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

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

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.xdnf.cn/news/1797.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】堆:建堆/向下调整/上向调整/堆排序/TOK问题

文章目录 前言堆的定义1.大小堆2.完全二叉树 堆的实现堆的数据结构初始化销毁取堆顶元素判断堆是否为空父结点和子结点下标关系(重要) 向下调整法-O(n)小堆版大堆版 向上调整法-nlog(n)堆的插入和删除插入(调用向上调整)删除(调用向下调整) 构建最大堆向…

Qt第三课 ----------输入类的控件属性

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

java面试2.0

一.Zookeeper 1.定义 ZooKeeper 是一个开源的分布式协调服务,它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 ZooKeeper 为我们提供了高可用、高性能…

【论文复现】语言模型中的多模态链式推理

📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…

SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】

SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】 🌐 在现代前端开发中,单页面应用(SPA)以及不同的架构模式(如MVC和MVVM)是实现用户交互的关键概念。了解它们的优缺点以及如何应用&a…

前端八股文第五篇

41. 做的比较好的项目,展开讲讲 我曾参与开发过一个电商平台的项目,该项目是一个多端适配的电商平台,包括网页端、移动端和小程序端。在这个项目中,我主要负责前端开发工作。我们团队采用了 Vue.js 框架进行开发,使用…

运筹说 第127期 | 存储论相关模型代码实现

本期我们进行运筹学之存储论算法的讲解,我们将对常见的商品存储模型进行介绍,并求解不同供需条件下的最优存储策略,通过MATLAB和Python工具帮助大家快速求解最优存储策略,做到事半功倍。由于篇幅有限,小编接下来只展示…

【Linux】Linux权限

本文将会围绕着下面5个问题进行讲解: 认识Linux下用户的分类什么叫做权限没有权限会有什么现象如何进行权限的修改其他与权限相关的问题 好了,本章内容就要开始了,准备你的大脑,开凿吧!!! 认识…

Ubuntu系统如何实现键盘按键映射到其他按键(以 Ctrl+c 映射到 F3,Ctrl+v 映射到 F4 为例)

文章目录 写在前面1. 功能描述2. 实现步骤2.1 安装AutoKey2.2 软件设置2.2.1 软件设置 2.3 测试是否安装成功 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 功能描述 Ubuntu系统使用Ctrlc 、Ctrlv 进行复制粘贴操作的时候,时间长了就会出现小拇指…

threejs开源实例-粒子地球

源码 three.js webgl - geometry - cube <script type"module">import * as THREE from "three";import { OrbitControls } from "three/addons/controls/OrbitControls.js";import { GUI } from "three/addons/libs/lil-gui.modul…

苍穹外卖的vue开发

前端的环境搭建 技术选型 熟悉目录结构 如何梳理代码 以登录功能进行示例 先看前端页面 这个路径一定是对应了一个对应的路由,这个路由一定对应了某个组件 找到登录的方法 这个方法在store中,是异步方法 store中有一个actions方法 对应的是login的api请求 request是我们单独…

docker desktop使用ubuntu18.04带图形化+运行qemu

记录一下docker desktop使用ubuntu18.04带图形化命令和使用步骤 1. 下载镜像 参考&#xff1a;【Docker教程】Docker部署Ubuntu18.04(带图形化界面) 命令&#xff1a; docker pull kasmweb/ubuntu-bionic-desktop:1.10.02. 启动镜像 命令&#xff1a; docker run -d -it …

springboot入门学习笔记2(连接mysql,使用mybatis,plus等)

对于application.yml的学习 application.yml 是 Spring Boot 的核心配置文件&#xff0c;用于定义应用程序的配置属性。 它允许开发者通过 YAML 格式配置各种属性&#xff0c;如服务器端口、数据库连接、第三方服务端点等。 这些属性通过 Spring 的 ConfigurationProperties…

5G基础知识

那个工种&#xff1f; FDD 频分双工&#xff08;Frequency Division Duplexing&#xff09;&#xff0c;理解起来很简单&#xff0c;就是把上行和下行业务隔离在两个频段&#xff0c;互不干扰。 而 TDD 时分双工&#xff08;Time-Division Duplexing&#xff09;&#xff0c;是…

大数据治理:策略、技术与挑战

随着信息技术的飞速发展&#xff0c;大数据已经成为现代企业运营和决策的重要基础。然而&#xff0c;大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此&#xff0c;大数据治理应运而生&#xff0c;成为确保数据质量、合规性、安全性和可用性的关键手段。本…

022集——统计多条线的总长度(CAD—C#二次开发入门)

如下图所示&#xff0c;选择多条线并统计长度&#xff1a; c#中不包含直接获取curve曲线长度 属性&#xff0c;需用如下方法&#xff1a;curve.GetDistanceAtParameter(item.EndParam) 附部分代码如下&#xff1a; using Autodesk.AutoCAD.ApplicationServices; using Autode…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…

2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)

目录 大会简介 主办单位&#xff0c;协办单位 组委会 主讲嘉宾 征稿主题 参会方式 会议议程 重要信息 会议官网&#xff1a;iccvip.org 大会时间&#xff1a;2024年11月15日-17日 大会地点&#xff1a;中国 杭州 大会简介 2024年计算机视觉与图像处理国际学术会议(C…

硅谷甄选(8)spu

Spu模块 SPU(Standard Product Unit)&#xff1a;标准化产品单元。是商品信息聚合的最小单位&#xff0c;是一组可复用、易检索的标准化信息的集合&#xff0c;该集合描述了一个产品的特性。通俗点讲&#xff0c;属性值、特性相同的商品就可以称为一个SPU。 7.1 Spu模块的静态…

【element el-date-picker限制时间选择范围】

问题场景 在一次项目中,有一个这样的需求就是填报时间需要在上一次提交信息之后,在限制时间时发现,el-date-picker中的pickerOption中的disableDate是基于日期限制的,若限制日期为今日凌晨,那么今天之后的日期都不能填 <el-date-pickerv-model="selectedDateTime&…