微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow( 二 )


应用部署
TurboTransformers 提供了 C++ 和 Python 调用接口,可以嵌入到 C++ 多线程后台服务流中,也可以加入到 PyTorch 服务流中 。官方建议通过 Docker 部署 TurboTransformers,一方面保证编译的可移植性,另一方面也可以无缝应用于 K8S 等线上部署平台 。
性能方面,官方分别以 CPU 和 GPU 两方面进行测试:
CPU 测试效果
在 3 种 CPU 硬件平台测试了 TurboTransformers 的性能表现,选择 pytorch、pytorch-jit 和 onnxruntime-mkldnn 和 TensorRT 实现作为对比 。性能测试结果为迭代 150 次的均值 。为了避免多次测试时,上次迭代的数据在 cache 中缓存的现象,每次测试采用随机数据,并在计算后刷新的 cache 数据 。

  • Intel Xeon 61xx

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
  • Intel Xeon 6133
相比 61xx 型号,Intel Xeon 6133 向量化长度更长为 512 bit,并且它拥有一个 30 MB 核间共享 L3 cache 。
微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
GPU 测试效果
在 4 种 GPU 硬件平台测试了 TurboTransformers 的性能表现,选择 pytorch、NVIDIA Faster Transformers、onnxruntime-gpuTensorRT 实现作为对比 。性能测试结果为迭代 150 次的均值 。
  • RTX 2060

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
  • Tesla V100

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
  • Tesla P40

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
  • Tesla M40

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 

微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow

文章插图
 
同时,腾讯也表示,TurboTransformers 目前只支持了 FP32 的计算,对于 GPU FP16 的支持将在后续提供 。TurboTransformers 目前重点支持了 BERT 模型,未来也会增加 TurboTransformers 的自动化优化能力 。另外,TurboTransformers 解决了计算加速的问题,用户还需要自己搭建服务框架,未来腾讯也会将服务流程开源,打通用户上线的最后一站 。




推荐阅读