导言

WeChat TFCC是微信技术架构部后台团队研发的服务端深度学习通用推理框架,也是腾讯深度学习与加速Oteam云帆的开源协同成果,具有高性能、易用、通用的特点,已在微信视频号、微信开放平台推荐系统、微信画像、微信智聆语音识别、语音合成等业务广泛使用; 支持81个ONNX Operation和108个Tensorflow Operation,覆盖推荐、NLP、语音等场景的各种主流模型,同时更多的Operation在持续接入中。

特性

WeChat TFCC由Library、Runtime、Generator三大组件构成,通过层层抽象、互相配合的方式,在保证高性能的前提下,极大的提高了扩展性和通用性。

一、高性能

TFCC通过模型结构优化、常数跟踪、算子优化等多方面措施优化通用模型推理性能。下图是BERT(bert-base)模型下的QPS对比,可以看到TFCC在CPU/GPU的性能都处于较高水准。

模型结构优化

模型结构优化包含常数折叠、模型剪枝、算子融合等。常数折叠可以预先算好部分数据,减少线上运行时的计算量。模型剪枝是减少模型的无用分支,算子融合是将多个小算子融合成一个大算子,减少内存和显存的带宽压力。

常数跟踪

常数跟踪是指跟踪常量的走向,是比常量折叠更激进的优化方案,该方案可以对详细区分一个矩阵存在的局部常量,从而得到模型的更详细的信息,达到更好的模型结构优化效果。

算子优化

TFCC Math Library是TFCC底层的算子库,部分算子是对底层oneDNN及cublas的封装,部分则是经过汇编级优化的高性能算子。CPU支持使用AVX2、AVX512指令集加速运算。

二、易用性

TFCC提供了一套完善的工具,可以很方便的一条命令将ONNX模型和Tensorflow模型转化为TFCC模型,然后由Runtime动态读入图结构,并用JIT技术动态生成图调用链, 业务无需编写模型代码,即可将训练模型转换并部署高性能运行。

三、通用性

TFCC的通用性包含模型通用性和硬件通用型两个方面。

模型通用性

TFCC提供一套完善的工具,通过类编译器架构:Frontend->Optimizer->Backend结构,将ONNX模型和Tensorflow模型转换为统一的TFCC内部模型表示。当前支持81个ONNX Operation和108个Tensorflow Operation,覆盖推荐系统、NLP等场景的主流模型;由于使用类编译器架构,WeChat TFCC可以很方便的进行平行扩展,以支持更多种类更多模型。

硬件通用性

TFCC目前支持的硬件平台有X86-64平台的CPU及NVIDIA的GPU,切换平台只需要修改调用参数即可,并且基于不同平台的特点进行汇编级性能优化。

结语

TFCC专耕于服务端的深度学习推理,还在不断迭代中,后续会加入更多的特性及性能优化,敬请期待。

????开源地址:https://github.com/Tencent/WeChat-TFCC

https://github.com/Tencent

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

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

国内镜像地址:

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

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

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

关注腾讯开源公众号

获取更多最新腾讯官方开源信息!

开源公告|微信云端深度学习推理框架WeChat TFCC开源啦!相关推荐

  1. 开源公告|分布式深度学习训练工具PatrickStar正式开源

    PatrickStar是一款分布式深度学习训练工具,它的设计目标是支持以GPT.Bert为代表的超大预训练模型训练.在性能表现上远超目前业界DeepSpeed效果.它可以显著降低PTM的使用成本,使我 ...

  2. 腾讯优图开源深度学习推理框架 TNN,助力 AI 开发降本增效

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

  3. 深度学习推理框架调研总结

    深度学习推理框架 作者介绍 1.移动端深度学习推理框架调研 1.1 小米的MACE(2017) 1.2 阿里的MNN 1.3 腾讯的TNN 1.4 ARM的tengine 1.5 百度的paddle- ...

  4. 自制深度学习推理框架-第七课-构建自己的计算图

    自制深度学习推理框架-第六课-构建自己的计算图 项目主页 https://github.com/zjhellofss/KuiperInfer 感谢大家点赞和PR, 这是对我最大的鼓励, 谢谢. 现在K ...

  5. 阿里 深度学习推理框架_如何通过Knative无服务器框架构建深度学习推理

    阿里 深度学习推理框架 在某些学术界和行业界,深度学习正在获得巨大的动力. 推理(基于预训练模型从现实世界数据中检索信息的能力)是深度学习应用程序的核心. 深度学习推理可用于在图像到达对象存储时对其进 ...

  6. 自制深度学习推理框架-第十一节-再探Tensor类并构建计算图的图关系

    自制深度学习推理框架-第十一节-再探Tensor类并准备算子的输入输出 本课程介绍 我写了一个<从零自制深度学习推理框架>的课程,课程语言是 C++,课程主要讲解包括算子实现和框架设计的思 ...

  7. 人机交互系统(2.1)——深度学习分布式计算框架

    1 为什么需要分布式计算? 在这个数据爆炸的时代,产生的数据量不断地在攀升,从GB,TB,PB到ZB.挖掘其中数据的价值也是企业在不断地追求的终极目标.但是要想对海量的数据进行挖掘,首先要考虑的就是海 ...

  8. 英伟达深度学习推理引擎TensorRT,现在开源了

    https://www.toutiao.com/a6703740623364555271/ 2019-06-18 13:37:53 机器之心报道 参与:李亚洲.李泽南.思 英伟达的深度学习推理引擎Te ...

  9. 微软开源人工智能工具和深度学习框架

    微软机器视觉.语音处理.视频检索人工智能开源工具和深度学习框架. 本文介绍了微软在人工智能领域的领先成果.产品线,开源人工智能框架和工具.读者可以运用这些工具快速开发机器视觉.语音处理.视频检索等丰富 ...

  10. 深度学习多框架多平台推理引擎工具

    一种深度学习推理引擎工具,支持多框架.支持多平台推理 项目下载地址:下载地址 支持的计算平台: - Windows 10 (Visual Studio 2019 x64) - Linux (x64, ...

最新文章

  1. 0 - python简介
  2. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器
  3. 关于共享单车的供电问题如何解决?
  4. java freememory 单位_Runtime类中的freeMemory,totalMemory,maxMemory区别
  5. 周志明:职业电竞选手的Java大神路
  6. java期末试题c卷,JAVA程序设计期末考试试卷及参考答案
  7. 原生开发小程序 和 wepy 、 mpvue 对比
  8. python编写代码实现文件的拷贝功能_如何使用Python脚本实现文件拷贝
  9. 解决CentOS内网机通过Windows下架设代理来访问网络
  10. atitit.词法分析原理 词法分析器 (Lexer)
  11. c语言内存四区,详解C语言中的内存四区模型及结构体对内存的使用
  12. 最详细的制作正式版10.11 OS X El Capitan 安装U盘的方法
  13. Cron每年1月5号 4月5号 7月5号 10月5号 00:00:00执行任务
  14. Discuz仿今日头条模板/Discuz新闻资讯商业版GBK模板
  15. Caffe中的solver文件参数
  16. 完全但不完美信息博弈
  17. 网易云音乐API使用
  18. [工业互联-1]:工业互联全局概述
  19. Python OpenCV开发MR智能人脸识别打卡系统(四、服务模块设计)
  20. Windows中Nginx下载、安装、配置

热门文章

  1. 好嗨游戏:20款最好玩的运动游戏:足球、篮球、网球等等(上)
  2. css代码 文字超出点点点
  3. 服务器数据恢复案例:FreeNAS数据恢复过程记录
  4. 52_LSTM及简介,RNN单元的内部结构,LSTM单元的内部结构,原理,遗忘门,输入门,输出门,LSTM变体GRU,LSTM变体FC-LSTM,Pytorch LSTM API介绍,案例(学习笔记)
  5. My Fifty-First Page - 组合总和 - By Nicolas
  6. 读懂电影专业名词(转自CMCT-PT)
  7. quora 查看自己关注了谁
  8. python编译原理 书籍_如何想学点编译原理,又不想直接看龙虎之类的书籍,太多理论,干燥?...
  9. MFC写的单人拖拉机游戏程序
  10. 概率论排列公式和组合公式实质 压强 : 压力=ps=压强*面积; 万有引力公式: