专栏首页腾讯开源的专栏腾讯开源推理组件TNN,激发AI生产力

腾讯开源推理组件TNN,激发AI生产力

深度学习在经历了几年的大发展后,应用的需求和场景不断拓展和丰富。深度学习对算力了巨大需求一直制约着更广泛的落地。在移动端,这个问题一直极为突出:手机处理器性能弱、算力无法多机拓展、运算耗时长直接导致发热和高功耗,这些问题都与app的用户体验关系巨大。优图实验室作为公司最早将深度学习在移动端推广的实验室之一,在这一方面有着持续的积累。2017年,优图实验室开源了ncnn推断框架,是首个专注于移动端的开源推断框架,在业界收到了广泛的推崇,至今在GitHub上获得了8.9kstar和2.3k fork。

随后,深度学习在更多领域开花结果,我们在ncnn基础上持续迭代、重构,进一步优化性能,拓展更多平台支持。我们也继续选择回馈社区,与广大社区开发者共同推进深度学习加速组件的进步。同时为了防止破坏ncnn良好的开发者生态,我们将它重新命名为TNN。

TNN是一套高性能、轻量级移动端推断框架。最大特点是面向底层不同硬件架构,进行了深度适配和极致的性能优化。TNN沉淀和整合了优图团队内部框架Rapidnet和开源框架ncnn多年来在深度学习、性能调优、内存优化等各方面大量的技术积累,同时也学习和借鉴了业界最新框架的优缺点,进一步优化打磨而成.

轻量级部署,TNN助力深度学习提速增效

深度学习对算力的巨大需求一直制约着其更广泛的落地,尤其是在移动端,由于手机处理器性能弱、算力无法多机拓展、运算耗时长等因素常常导致发热和高功耗,直接影响到app等应用的用户体验。腾讯优图基于自身在深度学习方面的技术积累,并借鉴业内主流框架优点,推出了针对手机端的高性能、轻量级移动端推断框架TNN。

TNN在设计之初便将移动端端高性能融入核心理念,在2017年开源ncnn框架的基础上持续优化、重构。通过GPU深度调优、ARM SIMD深入汇编指令调优、低精度计算等技术手段,在性能上取得了进一步提升。以下是MNN, ncnn, TNN框架在多款主流平台的实测性能:

TNN在麒麟970、骁龙835、骁龙845,骁龙615平台实测性能数据

注:纵轴单位:ms  测试分支:MNN:1.0.0(2020.05.07),ncnn:20200413, TNN: master(2020.06.10)

测试模型:https://github.com/alohali/benchmark-models

低精度计算的运用对TNN的性能提升发挥了重要作用。在神经网络计算中,浮点精度在许多研究和业务落地成果上都被证明存在一定冗余,而在计算、内存资源都极为紧张的移动端,消除这部分冗余极为必要。TNN引入了INT8、FP16、 BFP16等多种计算低精度的支持,相比大部分仅提供INT8支持的框架,不仅能灵活适配不同场景,还让计算性能大大提升。TNN通过采用8bit整数代替float进行计算和存储,模型尺寸和内存消耗均减少至1/4,在计算性能上提升50%以上。同时引入arm平台BFP16的支持,相比浮点模型,BFP16使模型尺寸、内存消耗减少50%,在中低端机上的性能也提升约20%。骁龙615平台实测:

通用、轻便是TNN框架的另一大亮点。长久以来,不同框架间的模型转换都是AI项目应用落地的痛点。TNN设计了与平台无关的模型表示,为开发人员提供统一的模型描述文件和调用接口,支持主流安卓、iOS等操作系统,适配CPU、GPU、NPU硬件平台。企业一套流程就能部署到位,简单易用、省时省力。同时, TNN通过ONNX可支持TensorFlow, Pytorch, MxNet,Caffe等多种训练框架,目前支持ONNX算子超过80个,覆盖主流CNN网络。TNN所有算子均为源码直接实现,不依赖任何第三方,接口易用,切换平台仅需修改调用参数即可。

拥抱“新基建”,用AI底层技术助推产业发展

TNN已于3月中旬在腾讯内部开源,为腾讯QQ、QQ空间、微视、腾讯云、天天P图等多款产品和服务中持续提供技术能力,释放出极大的效能。

“目前,TNN移动端已在GitHub上开源,届时欢迎业界人士参与协同共建,共同打造更优的移动端推理框架。“腾讯优图实验室副总经理吴永坚介绍,腾讯优图后续将在现有CV业务的基础上研发更多的AI推理模型,如语音、NLP等相关业务,同时开展针对CPU、GPU服务器端的服务,为业界公司提供更广泛的优化服务。

      随着以开源为代表的新代码文化的兴起,腾讯近年来在开源领域表现亮眼:在全球最大的代码托管平台GitHub上,腾讯发布的开源项目已经超过一百个,涵盖云原生、大数据、AI、云计算、安全、硬件等多个热门的技术方向

通过开源协同,腾讯将各个事业群最底层和共性的技术能力进行梳理和拉通,在业务实践和海量用户检验下,优质的内部开源项目不仅在公司层面推广复用,同时也对外贡献整个开源社区。仅在GitHub上,腾讯的开源项目就收获了30w+star数,跻身国际上有影响力的开源企业之一。

在开源的道路上,腾讯不仅将内部优质项目持续对外开放,也积极与开源社区协同合作,发挥中国企业的科技力量,推动开源和开放进一步升级。

TNN 开源地址

https://github.com/Tencent/TNN

(点击文末阅读原文直接访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/TNN

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

本文分享自微信公众号 - 腾讯开源(tencentopen),作者:腾讯开源

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯三大运维开源项目齐聚“OSCAR开源先锋日”

    10月20日,腾讯开源三大运维开源项目——TARS、蓝鲸和织云Metis首次集结,参与了由中国信息通信研究院主办、云计算标准与开源推进委员会承办的“OSCAR...

    腾讯开源
  • 腾讯荣获唯一OSCAR尖峰开源企业奖

    7月3日,由中国信息通信研究院主办的2019云计算开源产业大会在北京举办。腾讯开源独揽尖峰开源企业奖、尖峰开源技术创新奖(自主研发项目)、尖峰开源技术创新奖(...

    腾讯开源
  • 腾讯向开放原子开源基金会捐赠TencentOS tiny、TKEStack两大项目

    10月15日,腾讯正式宣布,将旗下两大开源项目——轻量级物联网实时操作系统TencentOS tiny和企业级容器编排引擎TKEStack(均待更名)捐赠给开...

    腾讯开源
  • 轻量级部署,腾讯优图开源深度学习推理框架TNN

    一方面,它以「授人以渔」的方式为 AI 构建了一个开放共进的生态环境,帮助行业加速 AI 应用落地;另一方面,在解决行业实际问题时实现持续更新和迭代,源源不断地...

    机器之心
  • 学术资讯 | 重磅!腾讯优图TNN移动端推断框架开源啦!

    从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解...

    优图实验室
  • 送库了,炫酷的多重水波纹效果,你值得拥有

    作者:自去年第一次发布开源库 SmartRefreshLayout 以来,深刻的感受到了开源的乐趣。 所以打算以后开发过程中把一些自己实现的实用开源库也开源出来...

    非著名程序员
  • GitHub 上的这个项目到底是什么鬼?

    最近如果经常上 GitHub 上的同学,应该看到了这么一个开源库,就是满屏幕都是 eeeeeeeee…… 的开源库。如下:

    非著名程序员
  • 微服务架构技术选型

    JAVA日知录
  • 腾讯开源技术大揭秘,大波技术干货等你来!| 沙龙报名中

    12月21日,深圳腾讯大厦,腾讯技术专家将展开一场开源技术盛宴,带来腾讯开源最新成果,与广大开发者共同探讨开源趋势。 活动信息 ? 收获多多 收获腾讯开源技术...

    腾讯大讲堂
  • 以Dubbo为例,聊聊如何为开源项目做贡献

    Github 上有众多优秀的开源项目,大多数 IT 从业者将其当做了予取予求的工具库,遇到什么需求,先去 Github 搜一把,但有没有想过有一天自己也可以给开...

    kirito-moe

扫码关注云+社区

领取腾讯云代金券