? 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
$ ./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 根目录下。