Apache TVM是一款面向CPU、GPU及机器学习加速器的开源机器学习编译器框架。它兼容TensorFlow、Pytorch、MXNet、ONNX等主流框架,旨在优化模型在各类硬件平台上的执行效率。TVM提供从模型定义到部署的全链路自动化解决方案,涵盖深度学习模型的编译、优化和实施。
近期,TVM社区举办了一场名为TVMCon2023的活动,腾讯的BlazerML深度学习编译器团队在此分享了题为《TVM在腾讯的应用》的演讲。BlazerML是基于开源深度学习编译器(TVM/XLA)开发的端到端推理和训练加速方案,致力于降低深度学习编译器的使用门槛,促进编译优化技术在业务场景中的应用。
分享内容围绕强化学习推理加速与CPU上高性能卷积算子优化两大主题展开。强化学习是通过奖励与惩罚机制提升AI性能的方法。通过可视化图解展示,强化学习训练框架中的Learner部署于GPU集群,负责模型训练并接收Actor生成的样本;而Actor则部署在CPU集群,利用实时策略生成样本数据。高效推理框架的引入,旨在加快样本生成速度。
强化学习推理加速部分,BlazerML通过一系列优化,实现了模型性能的显著提升,将Actor的推理时间占比控制在总时间的30%至40%,并节省了6%至16%的机器资源。此外,通过记录并直接操作模型权重,BlazerML减少了资源消耗,提高了服务器性能。
在高性能卷积算子优化方面,BlazerML针对Winograd算法进行了专门优化。该算法通过输入变换、权重变换、核心矩阵乘法和输出变换四步完成计算过程。优化重点在于降低变换计算量和数据排布变换的开销。通过分析理论复杂度,BlazerML调整了数据块大小的选择逻辑,特别是在特定形状下,采用大小为4的数据块获得了更高的加速比。
未来,BlazerML将聚焦于改进Cost Model,以减少在Winograd模板自动调优过程中出现的性能波动。团队已识别出当前Cost Model设计中存在的问题,并正探索更精确的Cost Model方案,以期在未来提供更多的高性能算子支持。