量子位@| 腾讯第100个对外开源项目,微信也在用的Transformer加速推理工具( 二 )
图(b)将一个Cell的细节加以展开 , 每一个矩形都是一个独立的计算核心 。
文章图片
TransformerCell计算包含了8个GEMM(通用矩阵乘法 , GeneralMatrixMultiplication)运算 。 通过调优IntelMKL和cuBLAS的GEMM调用方式来获得最佳GEMM性能 。
并且在硬件允许条件下 , 在GPU上使用tensorcore方式进行GEMM运算 。
类似NVIDIAFasterTransformers方案 , 将所有GEMM运算之间的计算融合成一个调用核心 。 融合会带来两个好处 , 一是减少了内存访问开销 , 二是减少多线程启动开销 。
【量子位@| 腾讯第100个对外开源项目,微信也在用的Transformer加速推理工具】对于这些核心 , 在CPU上采用openmp进行并行 , 在GPU上使用CUDA进行优化实现 。
对于比较复杂的LayerNorm和Softmax算子 , 它们包含了不适合GPU上并行的规约操作 , TurboTransformers为它们设计了创新并行算法 , 极大降低了这些算子的延迟 。
理论上Transformers推理延迟应该近似于矩阵乘法延迟 。
框架层优化
TurboTransformers采用了一个有效的内存管理方式 。
由于NLP的采用变长输入特性 , 每次运算中间结果的大小其实并不相同 。 为了避免每次都分配释放内存 , 研究人员通过Caching方式管理显存 。
为了能够无缝支持pytorch/tensorflow训练好的序列化模型 , 提供了一些脚本可以将二者的预训练模型转化为npz格式 , 供TurboTransformers读入 。
特别的 , 考虑到pytorchhuggingface/transformers是目前最流行的transformers训练方法 , 支持直接读入huggingface/transformers预训练模型 。
应用部署
Turbo提供了C++和Python调用接口 , 可以嵌入到C++多线程后台服务流程中 , 也可以加入到pytorch服务流程中 。
研究人员建议TurboTransformers通过docker部署 , 一方面保证了编译的可移植性 , 另一方面也可以无缝应用于K8S等线上部署平台 。
—完—
- 金多多配资QDII基金业绩分化超100个百分点
- 职场小趣闻另两位大学生创始人,如今过得怎样了,当年跟马化腾一起创办腾讯
- 潮黑社腾讯与苹果妥协,却对国内友商一硬到底,现代版的远交近攻
- 量子位AI就能让它动起来!再也不怕3D动画拖更了,只要做出角色3D模型
- 口袋阅腾讯阅文口袋阅评测:130克,原来墨水屏也能打电话听歌玩游戏上网页
- 信息检索站麒麟处理器AI性能有多强?以至于可以拦截腾讯的“越轨”行为
- 财经涂鸦闫敏仍为法人,洪丹毅担任腾讯理财通运营主体公司总经理
- 云计算视界中国公有云服务市场一超多强:阿里云当先 华为腾讯尾随其后
- 米粉防务量子通信中国先突破,美国却要率先应用?美军潜艇或首先装备
- 锋潮评测室用上这个软件,你就可以卸载360和腾讯电脑管家了