低延迟高性能AliFPGA亮相HotChips30

简介: 衡量一个处理器在目标场景的计算能力,需综合评估特定延迟下所能达到的吞吐FPS(Frame per Second)能力,这才是机器学习处理器选型时需要考虑的“场景内真实计算性能”。因此,对于机器学习处理器来说,同时达到计算的低延迟和高吞吐(FPS)显得极为重要。

image.png

在线业务的机器学习开发人员在面对市场上眼花缭乱的各类机器学习处理器时如何选择?相信第一因素是计算力。然而,计算力往往是和计算延迟成反比的,仅仅考虑峰值计算力,会遇到延迟性能不达标的尴尬;仅仅考虑延迟指标时,处理器往往在低延迟下又不能发挥出足够的计算力。

衡量一个处理器在目标场景的计算能力,需综合评估特定延迟下所能达到的吞吐FPS(Frame per Second)能力,这才是机器学习处理器选型时需要考虑的“场景内真实计算性能”。因此,对于机器学习处理器来说,同时达到计算的低延迟和高吞吐(FPS)显得极为重要。

近日,阿里巴巴首次在HotChips30大会上亮相,展示了在超低延迟-高吞吐机器学习处理器方面的研究成果,与来自各大顶级互联网以及芯片公司的专家进行了交流。

image.png

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的访问带宽。模块间相互配合,使得处理器实现了超高的性能。

image.png

(FPGA架构图)

在算法上,阿里巴巴提出了针对低精度的创新训练策略(相关论文号1707.09870),通过常规训练、稀疏化( Pruning)、权重量化( Weight Quantization) 和特征图量化(Feature Map Quantization)4个步骤获得优化的模型和参数。在此训练策略下,Resnet18网络模型达到了极佳的精度效果。

image.png

(Resnet18 ImageNet1K分类精度)

 阿里巴巴FPGA机器学习处理器通过架构和算法优化,实测运行Resnet18网络的计算延迟仅为0.174 ms,而吞吐能力高达5747 FPS。同样场景下,数据中心主流GPU的最低延迟为1.29ms,此时吞吐仅为769 FPS;在接近峰值FPS时,延迟为29.98 ms。

image.png

(性能对比图)

实际应用中,除了对延迟和吞吐有高要求外,业务使用的模型种类多样且更迭频繁,所以要求处理器支持敏捷开发。而传统的重开发FPGA方式,升级周期通常需要数月。

阿里巴巴将FPGA机器学习处理器设计成专用领域指令处理器架构,模型变动时编译器通过生成并加载新模型相应的指令即可完成网络模型的更换,模型升级周期时间从数月变为在线实时升级。

image.png

(软硬件计算流程图)

阿里巴巴技术团队使用FPGA实现了超低延迟机器学习处理器。在研发过程当中,不是简单的将模型的计算卸载到FPGA上来,而是通过FPGA架构、算法和指令编译器三个层面的协同优化,在性能、模型精度和灵活可用性各方面都取得了极好的效果。

作为一家技术驱动的互联网公司,阿里巴巴不断致力于基础设施技术积累和前沿科技突破,为全球消费者带来更好的用户体验。

目录
相关文章
|
运维 安全 Cloud Native
国产Linux:OpenEuler能否完美替代CentOS系统?
本文讨论了OpenEuler系统作为替代CentOS的一个有潜力的选择。OpenEuler系统是一种基于开源技术和社区支持的Linux发行版,具有许多优势,如安全性、高度可定制性、强大的社区支持、容器和云原生生态系统集成以及持续更新等。与CentOS相比,OpenEuler系统提供更多的灵活性和可定制性,适用于各种用途和工作负载。但在选择OpenEuler系统时,用户需要进行仔细评估并考虑其适用性和可行性。
|
前端开发 算法 Unix
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
本文介绍了MBIST存储器内建自测试的中,MBIST的特点,如何测试,Tessent加入的测试逻辑的结构等基础知识,继而以几个实例的图示和解读,描述了RTL设计满足MBIST设计的前置需求。
44700 3
面向前端设计的DFT基础介绍(一)——MBIST存储器内建自测试
|
存储 C语言
【C语言】typedef 关键字详解
`typedef` 关键字在C语言中用于定义现有数据类型的别名,提高代码的可读性和可维护性。它常用于简化复杂数据类型、定义函数指针类型以及处理联合体和枚举类型。掌握 `typedef` 的用法可以使你的代码更加清晰和易于管理。
601 1
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
1075 3
|
弹性计算 网络协议 API
原生Claude3免魔法本地轻松上手,这3步你必须要知道
本文详细介绍了如何在阿里云ECS上部署LobeChat,并通过Cloudflare实现Claude3 API的代理访问。首先准备ECS、Claude3 API密钥及域名,接着通过Docker部署LobeChat,并配置相关环境变量。然后,在Cloudflare上创建站点并部署API代理,最后通过SSH端口映射在本地访问LobeChat。文中提供了具体步骤与示例代码,帮助读者顺利完成部署,体验高效便捷的AI聊天功能。
1833 2
|
安全 Windows
警告!从ISO映像创建的U盘可能无法完全启动!Unknown引导扇区不支持NTFS文件系统
警告!从ISO映像创建的U盘可能无法完全启动!Unknown引导扇区不支持NTFS文件系统
4823 0
|
存储 算法 C++
BackTrader 中文文档(二十八)(3)
BackTrader 中文文档(二十八)
291 0
|
存储 算法 芯片
【乌拉喵.教程】LocalBus总线介绍及FPGA总线编程
【乌拉喵.教程】LocalBus总线介绍及FPGA总线编程
935 0
【乌拉喵.教程】LocalBus总线介绍及FPGA总线编程
|
存储 算法 数据安全/隐私保护
手把手教你在FPGA上搭建一个ARM Cortex-M3软核
手把手教你在FPGA上搭建一个ARM Cortex-M3软核
1873 0
手把手教你在FPGA上搭建一个ARM Cortex-M3软核
|
弹性计算
《弹性计算:无处不在的算力(全彩)》电子版地址
弹性计算:无处不在的算力(全彩)
831 0
《弹性计算:无处不在的算力(全彩)》电子版地址