一款深度学习推理框架TNN

发布时间:2020-06-28

【导读】前几天,腾讯优图实验室开源了一款深度学习推理框架TNN,高效解锁计算机视觉算法。

TNN是一款移动端推理框架,具有高性能、轻量级的特点,拥有跨平台、高性能、模型压缩、代码裁剪等众多优势。目前TNN已经在手机QQ、微视、P图等应用中落地。

0628文章1图片 1.png

TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了对移动端设备的支持,在性能方面也有所优化,同时借鉴了业界主流开源框架的优点,高性能和良好拓展性。

 

这次腾讯优图开源TNN,也是希望其推理框架能够进一步完善,共同为AI构建一个开放共进的生态环境,同时保持不断的迭代更新。

 

腾讯优图已在GitHub上开源的TNN,可以通过下面的网址进入

https://github.com/Tencent/TNN

 

计算优化,算力强 

TNN对主流平台的适应性强,对CPU: ARMv7, ARMv8, GPU: Mali, Adreno, Apple) 深度调优。

同时优化了对移动端的适应性,轻量级,高算力。针对不同架构在硬件指令发射、吞吐、延迟、缓存带宽、缓存延迟、寄存器数量等特点,深度优化底层算子,极致利用硬件算力。

0628文章1图片 2.png

CNN 核心卷积运算通过 Winograd,Tile-GEMM, Direct Conv 等多种算法实现,保证不同参数、计算尺度下高效计算。 

0628文章1图片 3.png

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

0628文章1图片 4.png

内存优化,轻量级匹配深度学习

通过 DAG 网络计算图分析,实现无计算依赖的节点间复用内存,降低 90% 内存资源消耗。同时支持外部实时指定用于网络内存,实现「多个模型,单份内存」。

0628文章1图片 5.png   

TNN上手容易,三个步骤就能完成模型在目标平台上的部署。训练好的模型可以用TNN提供的工具转换成TNN模型;然后编译目标平台的TNN引擎;最后在自己的应用程序中嵌入对TNN的调用,都有详细的模型来辅助完成。

0628文章1图片 6.png

TNN开源传送门:https://github.com/Tencent/TNN

默认文件1590026172568.jpg


X