在线业务的机器学习开发人员在面对市场上眼花缭乱的各类机器学习处理器时如何选择?相信第一因素是计算力。然而,计算力往往是和计算延迟成反比的,仅仅考虑峰值计算力,会遇到延迟性能不达标的尴尬;仅仅考虑延迟指标时,处理器往往在低延迟下又不能发挥出足够的计算力。
衡量一个处理器在目标场景的计算能力,需综合评估特定延迟下所能达到的吞吐FPS(Frame per Second)能力,这才是机器学习处理器选型时需要考虑的“场景内真实计算性能”。因此,对于机器学习处理器来说,同时达到计算的低延迟和高吞吐(FPS)显得极为重要。
近日,阿里巴巴首次在HotChips30大会上亮相,展示了在超低延迟-高吞吐机器学习处理器方面的研究成果,与来自各大顶级互联网以及芯片公司的专家进行了交流。
HotChips是每年八月在美国举办的顶级处理器和集成电路技术研讨会,今年是第30届,除了Intel、AMD、Samsung、IBM、 NVIDIA等传统芯片巨头,Google、 Microsoft等互联网公司以及MIT、University of Toronto等高校也分享了各自的新技术和新产品。
**阿里巴巴通过“软硬件一体化设计”、“网络模型低精度化和稀疏化”、 “FPGA处理器架构优化”等一系列技术手段,基于FPGA设计了超低延迟高吞吐的高效机器学习处理器,以Resnet18的网络模型为例,单张图片计算时间仅为0.174 ms,同时吞吐可达到5747 FPS,达到“实时人工智能”的效果,带来更好的用户体验。
**
GPU、ASIC和FPGA是当前数据中心常用的机器学习加速方案。GPU在延迟敏感的场景下需要使用小Batch Size以减少计算延迟,然而吞吐也会显著的降低,做不到兼顾低延迟和高吞吐;ASIC开发周期长,在网络模型发展日新月异的现状下,对新算子的支持有滞后性;而FPGA具有硬件可编程性和定制化开发的特性,可在保留灵活性的同时达到低延迟高吞吐。
阿里巴巴针对FPGA架构和算法进行了软硬件优化,实现了高效高精度的机器学习处理器。
阿里巴巴设计的FPGA机器学习处理器架构针对模块进行了深度优化:指令模块实现了高效的调度,卷积计算效率可达90%以上,处于行业领先水平;计算处理模块支持低精度数据类型,大幅提升计算力;参数模块采用CSR压缩技术,大幅减少稀疏化时DDR的访问带宽。模块间相互配合,使得处理器实现了超高的性能。
(FPGA架构图)
在算法上,阿里巴巴提出了针对低精度的创新训练策略(相关论文号1707.09870),通过常规训练、稀疏化( Pruning)、权重量化( Weight Quantization) 和特征图量化(Feature Map Quantization)4个步骤获得优化的模型和参数。在此训练策略下,Resnet18网络模型达到了极佳的精度效果。
(Resnet18 ImageNet1K分类精度)
阿里巴巴FPGA机器学习处理器通过架构和算法优化,实测运行Resnet18网络的计算延迟仅为0.174 ms,而吞吐能力高达5747 FPS。同样场景下,数据中心主流GPU的最低延迟为1.29ms,此时吞吐仅为769 FPS;在接近峰值FPS时,延迟为29.98 ms。
(性能对比图)
实际应用中,除了对延迟和吞吐有高要求外,业务使用的模型种类多样且更迭频繁,所以要求处理器支持敏捷开发。而传统的重开发FPGA方式,升级周期通常需要数月。
阿里巴巴将FPGA机器学习处理器设计成专用领域指令处理器架构,模型变动时编译器通过生成并加载新模型相应的指令即可完成网络模型的更换,模型升级周期时间从数月变为在线实时升级。
(软硬件计算流程图)
阿里巴巴技术团队使用FPGA实现了超低延迟机器学习处理器。在研发过程当中,不是简单的将模型的计算卸载到FPGA上来,而是通过FPGA架构、算法和指令编译器三个层面的协同优化,在性能、模型精度和灵活可用性各方面都取得了极好的效果。
作为一家技术驱动的互联网公司,阿里巴巴不断致力于基础设施技术积累和前沿科技突破,为全球消费者带来更好的用户体验。