电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>开源软件-TNN移动端推理框架

开源软件-TNN移动端推理框架

2022-06-20 | zip | 35.18 MB | 次下载 | 2积分

资料介绍

授权协议 BSD 3-Clause
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件

软件简介

TNN是一个移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。目前TNN已经在手Q、微视、P图等应用中落地,欢迎大家参与协同共建,促进TNN推理框架进一步完善。

快速开始

使用 TNN 非常简单,如果你有一个已经训练好的模型, 那么一般而言通过以下三个步骤就能完成模型在目标平台上的部署。

  1. 第一步是把训练好的模型转换成TNN的模型,为此我们提供了丰富的工具来帮助你完成这一步,无论你使用的是 TensorFlow、PyTorch、或者 Caffe,都可以轻松完成转换。

  2. 当你完成了模型的转换,第二步就是编译目标平台的 TNN 引擎了,你可以根据自己的目标平台的硬件支持情况,选择 CPU/ARM/OpenCL/Metal 等加速方案。 对于这些平台,TNN 都提供了一键编译的脚本,使用非常方便。

  3. 最后一步就是使用编译好的 TNN 引擎进行推理,你可以在自己的应用程序中嵌入对 TNN 的调用,这方面我们提供了丰富而详实的 demo 来帮助你完成。

技术方案

目前TNN已经在手Q、微视、P图等应用中落地:

  • 计算优化

    • 针对不同架构在硬件指令发射、吞吐、延迟、缓存带宽、缓存延迟、寄存器数量等特点,深度优化底层算子,极致利用硬件算力
    • 主流硬件平台(CPU: ARMv7, ARMv8, GPU: Mali, Adreno, Apple) 深度调优
    • CNN 核心卷积运算通过 Winograd,Tile-GEMM, Direct Conv 等多种算法实现,保证不同参数、计算尺度下高效计算
    • Op 融合:离线分析网络计算图,多个小 Op(计算量小、功能较简单)融合运算,减少反复内存读取、kernel 启动等开销
  • 低精度优化

    • 支持 INT8, FP16 低精度计算,减少模型大小、内存消耗,同时利用硬件低精度计算指令加速计
    • 支持 INT8 Winograd 算法,(输入6bit), 在精度满足要求的情况下,进一步降低模型计算复杂度
    • 支持单模型多种精度混合计算,加速计算同时保证模型精度
  • 内存优化

    • 高效”内存池”实现:通过 DAG 网络计算图分析,实现无计算依赖的节点间复用内存,降低 90% 内存资源消耗
    • 跨模型内存复用:支持外部实时指定用于网络内存,实现“多个模型,单份内存”。
  • 主流模型实测性能:v0.1 2020.05.29

    • 麒麟970

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 88 12
      Mobilenet_v1_int8 55  
      Mobilenet_v2 58 11
      Mobilenet_v2_int8 41  
      squeezenet_v1.0 127 20
      squeezenet_v1.0_int8 82  
    • 骁龙835:

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 94 16
      Mobilenet_v1_int8 62  
      Mobilenet_v2 61 14
      Mobilenet_v2_int8 47  
      squeezenet_v1.0 122 28
      squeezenet_v1.0_int8 93  
    • 骁龙845

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 60 10
      Mobilenet_v1_int8 37  
      Mobilenet_v2 39 8
      Mobilenet_v2_int8 28  
      squeezenet_v1.0 74 14
      squeezenet_v1.0_int8 56  
  • TNN架构图:

     

  • 通过 ONNX 支持 TensorFlow, PyTorch, MXNet, Caffe 等多种训练框架,充分利用和融入不断完善的 ONNX 开源生态。当前支持 ONNX 算子55个,近期会完善到约80个,覆盖主流CNN网络

  • 支持主流安卓、iOS、Embedded Linux 操作系统,支持 ARM CPU, GPU 硬件平台(近期还会加入达芬奇 NPU 支持)

  • 模块化设计,将模型解析、计算图构建、优化、底层硬件适配、高性能 kernel 实现各部分抽象隔离,通过 Factory Mode 注册、构建设备,方便接入更多的底层硬件、加速方案。

  • Runtime 无任何第三方库依赖,CPU 动态库尺寸仅约 400KB,并提供基础图像变换操作,调用简单便捷。跨平台模型统一、调用接口统一,通过单个配置参数快速切换。

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费