全志D1-H芯片Tengine支持

news2024/9/20 9:09:46

简介

​ Tengine 是 OPEN AI LAB 推出的边缘 AI 计算框架,致力于解决 AIoT 产业链碎片化问题,加速 AI 产业化落地。Tengine 为了解决 AIoT 应用落地问题,重点关注嵌入式设备上的边缘 AI 计算推理,为海量 AIoT 应用和设备提供高性能 AI 推理的技术赋能。

​ 一方面Tengine通过异构计算技术同时调用 CPU、GPU、DSP、NPU 等不同计算单元来完成 AI 网络计算,另一方面,它支持 TensorFlow、Caffe、MXNet、PyTorch、MegEngine、DarkNet、ONNX、ncnn 等业内主流框架,简化并加速面向场景的 AI 算法在嵌入式边缘设备上快速迁移,以及实际应用部署落地,提升十倍基础开发的效率。

​ Tengine 向下几乎兼容所有主流国产 AI 芯片;向上则支撑所有主流训练框架及网络模型,包括 TensorFlow、PyTorch、Caffe、PaddlePaddle等。是国际上为数不多的通过 ONNX 官方认证的战略合作伙伴之一。在 CSDN 发布的《中国 AI 应用开发者报告》上,被评为“开发者最喜爱的本土 AI 框架工具”。

​ Tengine 与 OpenCV 合作共同加速边缘智能,成为 OpenCV 的全球合作伙伴。Tengine 还与老牌跨平台计算机视觉库 OpenCV 进一步深入合作,共同加速边缘智能,成为其全球合作伙伴。

​ Tengine 示例使用说明见:https://github.com/OAID/Tengine

下载

【威力加强包】Tengine D1-H哪吒开发板Demo:全志在线开发者社区 - 资源下载

版本文件目录说明

$ tree ./sample
sample/
├── README.md
└── console
    ├── CMakeLists.txt
    ├── apps
    │   ├── CMakeLists.txt
    │   ├── common
    │   │   ├── common.h
    │   │   ├── compiler_fp16.h
    │   │   ├── msc_getopt.h
    │   │   ├── stb_image.h
    │   │   ├── stb_image_write.h
    │   │   ├── tengine_operations.c
    │   │   └── tengine_operations.h
    │   ├── test_classification.cpp
    │   └── test_yolofastest.cpp
    ├── cmake
    │   ├── check.cmake
    │   └── summary.cmake
    ├── data
    │   ├── cat.jpg
    │   ├── mobilenet_v1.tmfile
    │   ├── squeezenet.tmfile
    │   ├── ssd_dog.jpg
    │   └── yolo-fastest-1.1.tmfile
    ├── tengine
    │   └── linux-rv64
    │       ├── include
    │       │   └── tengine
    │       │       └── c_api.h
    │       └── lib
    │           ├── libtengine-lite-static.a
    │           └── libtengine-lite.so
    └── toolchains
        └── rv64-c906.toolchain.cmake

运行示例

交叉工具链准备

依赖的交叉工具链压缩包:

riscv64-glibc-gcc-thead_20200702.tar.gz

gcc 版本信息:

$ riscv64-unknown-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/mnt/d/ubuntu/riscv64-glibc-gcc-thead_20200702/bin/../libexec/gcc/riscv64-unknown-linux-gnu/8.1.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: /ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/build/../source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --with-mpc=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --with-mpfr=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --with-gmp=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --prefix=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/install --with-sysroot=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/install/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-nls --disable-bootstrap --src=../../source/riscv/riscv-gcc --enable-checking=yes --with-pkgversion='C-SKY RISCV Tools V1.8.4 B20200702' --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2  -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2  -mcmodel=medany' CC=gcc CXX=g++
Thread model: posix
gcc version 8.1.0 (C-SKY RISCV Tools V1.8.4 B20200702)

示例编译

$ cd sample/console
$ mkdir build && cd build
$ cmake ..
$ make -j4

$ export LD_LIBRARY_PATH=<project root>/tengine/linux-rv64/lib/

示例运行

$ ./apps/test_classification -m <your/sample/path>/tengine/squeezenet.tmfile -i <your/sample/path>/tengine/data/cat.jpg

image-20210517160806523

$ ./apps/test_yolofastest -m <your/sample/path>/tengine/data/yolo-fastest-1.1.tmfile -i <your/sample/path>/tengine/data/ssd_dog.jpg

注意事项

模型支持限制

本次发布是 Allwinner D1-H 技术预览版 ,建议运行较小模型,例如 MobileNet v1、MobileNet v2、 ResNet18、SqueezeNet v1.1、YOLO-Fastest。

矢量计算支持

Allwinner D1-H 开发板预装的系统不支持 RSIC-V 的指令集代码运行,需要将工具链 sysroot/lib64vxthread 中的库文件拷贝到 D1-H 根目录下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1398989.html

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

相关文章

makefile里面的变量使用,系统变量

文章目录 makefile里面的变量使用 makefile里面的变量使用 calc:add.o sub.o multi.ogcc add.o sub.o multi.o calc.cpp -o calcadd.o:add.cppgcc -c add.cpp -o add.osub.o:sub.cppgcc -c sub.cpp -o sub.omulti.o:multi.cppgcc -c multi.cpp -o multi.oclean:rm -rf *.o cal…

每日一练【最大连续1的个数】

一、题目描述 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 二、题目解析 本题同样是利用滑动窗口的解法。 首先进入窗口&#xff0c;如果是1&#xff0c;就直接让right&#xff0c;但是如果是…

【奶奶看了都会】用AI工具制作微信动态红包封面保姆级教程,附动态红包封面领取

AI一天&#xff0c;人间一年。我是卷福同学&#xff0c;一个在福报厂修过福报的程序员 今年微信红包封面新出了动态封面&#xff0c;点开红包之后是个动图&#xff0c;而且有的还能加上音乐&#xff0c;可以说逼格非常高。假如你在朋友之间发红包用上这么一个封面&#xff0c;朋…

CodeWave学习笔记--采购管理系统

1.CodeWave是什么&#xff1f; CodeWave是一款智能低代码开发平台&#xff0c;基于网易自研拥有大规模参数和深度学习能力的智能模型底座产品架构&#xff0c;为企业级应用提供更加智能化研发的软件生产方式。IT人员可以轻易实现从“智能生成”到“可视化拖拽调整”的全栈低代…

使用Python监听并下载微信聊天表情包

实现的功能 只要有人给你发了表情包&#xff0c;不管是群聊还是个人发的&#xff0c;都将它保存到本地。也许某天斗图的时候就能用到&#xff0c;不过即使有了表情包&#xff0c;还需要一个检索功能&#xff0c;不然这一张一张看也太费眼睛了。 检索表情包 检索表情包的功能…

mariadb数据库从入门到精通

mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…

Python网络爬虫步骤是什么?新手小白必看 !

python网络爬虫步骤&#xff1a;首先准备所需库&#xff0c;编写爬虫调度程序&#xff1b;然后编写url管理器&#xff0c;并编写网页下载器&#xff1b;接着编写网页解析器&#xff1b;最后编写网页输出器即可。 本教程操作环境&#xff1a;windows7系统、python3.9版&#xff…

2024Java高频面试题之MQ消息中间件,面试都问些什么?(附详细答案)

最近很多同学问我有没有java学习资料&#xff0c;我根据我从小白到架构师多年的学习经验整理出来了一份50W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我公众号&#xff1a;“ Tom聊架构 ”&#xff0c; 回复暗号&#xff1a;“ 578”即…

游戏开发中的噪声算法

一、噪声 噪声是游戏编程的常见技术&#xff0c;广泛应用于地形生成&#xff0c;图形学等多方面。 那么为什么要引入噪声这个概念呢&#xff1f;在程序中&#xff0c;我们经常使用直接使用最简单的rand()生成随机值&#xff0c;但它的问题在于生成的随机值太“随机”了&#xf…

轻松一刻 浅休息下哈

yum -y install epel-release yum install -y linux_logo cal 此命令以日历表的方式显示日期 curl http://wttr.in 此网站进行在屏幕上面显示天气情况 vim /etc/motd 修改这个文件可以让你刚登录linux 系统显示图形效果 \ ------------ / …

SQL Server Management Studio创建数据表

文章目录 一、建表注意事项1.1 数据类型1.2 建立数据表的基本SQL语法 二、实例说明2.1 创建数据表2.2 实例2 三、标识列和主键示例&#xff1a; 一、建表注意事项 1.1 数据类型 可以看这个去了解数据类型&#xff1a; 1.2 建立数据表的基本SQL语法 建立数据表的基本 SQL 语…

LabVIEW振动数据采集与分析系统

在这个项目中&#xff0c; LabVIEW软件配合精确的硬件组件&#xff0c;以实现高效的振动数据采集和复杂信号分析。硬件方面&#xff0c;系统采用了PCB振动加速度传感器的高灵敏度传感器&#xff0c;以及NI9234型号的数据采集卡&#xff0c;确保了数据采集的高精度和可靠性。软件…

单表查询 -- MySQL(3)

目录 题目&#xff1a; 创建表&#xff1a; 问题&#xff08;17个&#xff09;&#xff1a; 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工资和最低工资。 5、列出职工…

等离子环制作

免责声明 在您参考该博客制作等离子环前&#xff0c;请仔细阅读以下重要安全警告和免责说明。使用本文档即表示您已充分了解并同意以下条款&#xff1a; 等离子环的危险性&#xff1a;等离子环在运行时玻璃瓶身会产生高温&#xff0c;存在低温烧伤风险。任何时候都不建议用手…

浅谈安科瑞Acrel-2000MG微电网能量管理系统的设计与应用-安科瑞 蒋静

Acrel-2000MG是安科瑞结合当前新型电力系统下微电网的发展与需求研发的一款微电网能量管理系统。通过采集微电网内部源、网、荷、储的实时状态并根据天气预报信息对新能源发电与用电负荷进行预测&#xff0c;利用可控资源和分布式资源分析计算最优调度运行策略&#xff0c;在条…

操作教程|JumpServer堡垒机结合Ansible进行批量系统初始化

运维人员常常需要对资产进行系统初始化的操作&#xff0c;而初始化服务器又是一项繁琐的工作&#xff0c;需要花费运维人员大量的时间和精力。为了提高效率&#xff0c;许多组织会使用自动化工具和脚本来简化这些任务。自动化工具的运用可以大幅降低运维人员的工作量&#xff0…

一次TCP TIME_WAIT连接数过多告警处理

一次TCP TIME_WAIT连接数过多告警处理 1、前言2、问题回顾3、解决方案 更多技术文章&#xff0c;快来关注微信公众号“运维之美”&#xff0c;不定期更新领取IT学习资料 1、前言 客户环境上在业务高峰期的时候&#xff0c;突然收到主机的TCP time_wait连接数告警过多的告警。运…

Spring第六天(注解开发第三方Bean)

注解开发管理第三方Bean 显然&#xff0c;我们无法在第三方Bean中写入诸如service这样的注解&#xff0c;所以&#xff0c;Spring为我们提供了Bean这一注解来让我们通过注解管理第三方Bean 第二种导入方式由于可读性太低&#xff0c;故只介绍第一种导入方式&#xff0c;这里我…

项目过程管理(禅道)

文章目录 1、禅道的简介2、禅道的安装3、禅道的使用3.1、超级管理员使用操作3.2、产品经理使用操作3.3、项目经理使用操作3.4、测试主管使用操作3.5、项目经理&#xff08;新建一个项目&#xff09;3.6、测试主管&#xff08;对项目发布的第一个版本进行一个测试&#xff09;3.…

Java 面向对象基础 (二)

Java 面向对象基础 (二) 文章目录 Java 面向对象基础 (二)面向对象三大特征封装继承多态 接口和抽象类有什么共同点和区别&#xff1f;深拷贝和浅拷贝区别了解吗&#xff1f;什么是引用拷贝&#xff1f;浅拷贝深拷贝 文章来自Java Guide 用于学习如有侵权&#xff0c;立即删除 …