带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.4 异构计算云服务和AI 加速器(一)

简介: 《弹性计算—无处不在的算力》第三章:计算产品和技术3.4 异构计算云服务和AI 加速器(一)


异构计算指由不同类型指令集和体系架构的计算单元组成系统的计算方式,目前主要包括GPUFPGA 和定制ASIC 等。它们好比天赋异禀的独门高手,在特定场景下比普通的云服务器高出一个甚至更多数量级的性价比和效率,例如,在图形图像处理、机器学习、科学计算等场景下。要把这些异构计算设备包装成云服务器,同样需要对它们进行虚拟化。而由于这些设备的特殊性,其虚拟化技术或多或少地有别 于CPU


随着人工智能浪潮的兴起,越来越多的AI 计算都采用异构计算来实现性能加速。异构计算能够为越来越复杂和精确的AI 的计算模型带来大幅性能提升,现在, AI 开发者大部分都采用了TensorFlowPyTorch 等主流的AI 计算框架来实现异构计算的性能加速。但是,这些主流的AI 框架不能充分发挥异构计算超强的计算能力, 因此我们针对异构计算云服务研发了云端 AI 加速器,通过统一的框架同时支持了


TensorFlowPyTorchMXNetCaffe 4 种主流AI 计算框架的性能加速,并且针对以太网和异构加速器本身进行了深入的性能优化。


3.4.1 功能特点

异构计算GPU

视觉、图形、虚拟现实、大数据和人工智能等新兴技术的发展和广泛应用对计算能力提出了更高的要求。传统计算机的计算主要是由计算机的中央处理器(CPU)完成的,CPU 除了必要的计算工作,还需要负责处理复杂的控制逻辑, 这就导致 CPU 的内部架构异常复杂,真正用于计算的部分占比并不高。随着芯片技术的发展,CPU 晶体管的数量不断增加,但是 CPU 的计算能力没办法得到质的提升。使用 CPU 对上述领域的数据进行处理,在经济性和实效性方面都无法满足实际应用的要求。异构计算因此而产生。


异构计算是相对于 CPU 的通用计算而言的,通过在现有 CPU 基础上引入新的硬件计算单元来解决上述问题。这些新的硬件单元针对特定的计算场景进行深度的优化和定制,在处理这一类计算任务时可以获得相比 CPU 几十倍甚至上百倍的效率提升。目前主流的异构计算解决方案有GPUFPGA,在阿里云弹性计算的产品序列上, 它们分别对应GPU 云服务、FPGA 云服务和弹性加速实例服务(Elastic Acceleration Instance ServiceEAIS)。


GPU 云服务器是基于GPU 应用的计算服务器。在GPU 硬件支持虚拟化之前, 已经在各个领域被广泛应用。GPU 在执行复杂的数学和几何计算方面有着独特的优势。特别是在浮点运算、并行计算等方面,GPU 可以提供上百倍于CPU 的计算能力。GPU 云服务器让GPU 的使用更便捷、成本更低,GPU 上云是大势所趋。GPU 云服务器发布和人工智能爆发在同一年,两者相互促进。GPU 云服务器已经成为人工智能应用依赖的基础设施。


CPU 相比,GPU 硬件的使用需要复杂的生态软件支持,环境的构建较为复杂, 以NVIDIA GPU 硬件为例,底层安装的GPU 硬件驱动,并行计算需要CUDAcuDNN 等基础库支持,上层应用还需要设置各种的环境变量,使用比较复杂。GPU 云服务器是虚拟化云服务器的一个规格族,具有虚拟化服务器的一切特性:在环境复用性上利用自定义镜像等功能,可以很便捷地规模化使用;支持停机迁移,GPU 或宿主机出现故障时,可以通过冷迁移,在几分钟内恢复起来。当前GPU 分片虚拟化技术已经成熟,各云服务提供商已经试水上线对应的规格,和GPU 直通相比,具容器服务对GPU 的支持已经非常成熟,GPU 硬件厂商对Docker 做了定制化的开发,在容器内可以获得GPU 全部功能,使用更加便捷。GPU 云服务器作为弹性的资源,在之上部署容器服务,从而实现弹性业务,这种架构方案已经被主流AI 公司广泛使用。


异构计算FPGA

FPGA 自诞生之初,就以高度灵活的可编程性提供类ASIC 的性能和能效比而被广泛应用于有线和无线通信、航空航天、医疗电子和汽车电子等领域。但是,相比CPU GPUFPGA 的开发周期较长(尽管只有ASIC 开发周期的一半乃至三分之一)、开发和使用门槛较高,使得FPGA 的开发人员远远少于CPU GPU 的开发人员,同时应用范围和知名度也受到了很大的限制。


随着云计算的蓬勃发展,各种新的数据中心应用层出不穷,对算力(比如AI) 和计算结果实时性(比如基因测序和视频直播)提出了越来越高的要求。而CPU 的算力随着摩尔定律的终结,短时间内很难有大的提升,业界也逐渐尝到了采用FPGA 进行特定workload 加速的巨大优势。因此,在数据中心大力推广FPGA 异构加速逐渐成为业界共识。与之相对应,AWS 和阿里云在2017 4 月先后发布了基于FPGA 的云上应用,也即FPGA as a Service。其目的是提供超高性价比、超低延时(相比CPU 或者GPU,下同)的云上FPGA 服务。微软也通过Catapult 项目,在自家的数据中心大量部署FPGA,支持Bing Office 365 业务,更于2019 10 月北美XDF 大会上推出了自家的FPGA as a Service 产品,进一步佐证了FPGA 异构加速在数据中心应用的光明前景。


一般来说,云上FPGA 服务应具备如下功能和特点。

一是易用性,包括购买和使用要达到类ECS(基于CPU 的计算服务)的方便快捷性;具备类ECS 的灵活调度性,随用随开、不用释放。

二是稳定性,要具备类ECS 的热升级、热迁移功能。

三是安全性,包括客户和第三方ISV IP 地址要被合理合法使用;能够防范各种针对FPGA 的恶意攻击及受到攻击后迅速恢复。

四是要提供FPGA 云上开发和使用的工具及环境,让用户和线下一样方便地开发各种FPGA 加速器并在云上部署。

弹性加速实例服务

弹性加速实例服务(EAIS)支持异构计算资源的弹性挂载,前端可以使用不带异构加速的ECS 实例,后端可以动态挂载或者卸载GPUFPGANPU 等实例,让普通ECS 具备异构计算加速的能力。EAIS 可以让CPU 和异构加速器的数量配比实现灵活可配置,从而满足AI 推理、渲染、视频编解码全场景对于不同CPU 和异构加速器的数量配比的需求。同时,后端的GPUFPGANPU 等实例通过池化管理和调度,可以灵活选择最适合用户工作负载的异构加速器,大大降低异构加速成本。


AI 加速器

AI 加速器通过统一的框架同时支持TensorFlowPyTorchMXNetCaffe 4 种主流的人工智能计算框架的分布式性能加速,并且针对以太网和异构加速器都做了很深入的性能优化,在不同场景不同训练规模下可以提升1 10 倍的训练性能。同时,AI 加速器和各AI 计算框架是解耦的,一方面可以轻松支持各AI 计算框架社区版本的向前迭代;另一方面,用户使用各AI 计算框架实现的模型、算法代码基本上不用修改,就可以很轻松的获得性能加速。


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 人工智能 算法
【AI系统】计算图的优化策略
本文深入探讨了计算图的优化策略,包括算子替换、数据类型转换、存储优化等,旨在提升模型性能和资源利用效率。特别介绍了Flash Attention算法,通过分块计算和重算策略优化Transformer模型的注意力机制,显著减少了内存访问次数,提升了计算效率。此外,文章还讨论了内存优化技术,如Inplace operation和Memory sharing,进一步减少内存消耗,提高计算性能。
58 34
【AI系统】计算图的优化策略
|
1天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
4天前
|
机器学习/深度学习 人工智能 前端开发
【AI系统】计算图的控制流实现
计算图作为有向无环图(DAG),能够抽象神经网络模型,但在编程中遇到控制流语句(如if、else、while、for)时,如何表示成为难题。引入控制流后,开发者可构建更复杂的模型结构,但部署含控制流的模型至不支持Python的设备上较为困难。目前,PyTorch仅支持Python控制流,而TensorFlow通过引入控制流原语来解决此问题。计算图的动态与静态实现各有优劣,动态图易于调试,静态图利于优化。
22 5
【AI系统】计算图的控制流实现
|
4天前
|
机器学习/深度学习 存储 人工智能
【AI系统】计算图与自动微分
自动求导利用链式法则计算雅可比矩阵,从结果节点逆向追溯计算路径,适用于神经网络训练中损失值对网络参数的梯度计算。AI框架中,自动微分与反向传播紧密相连,通过构建计算图实现高效梯度计算,支持动态和静态计算图两种模式。动态图如PyTorch,适合灵活调试;静态图如TensorFlow,利于性能优化。
26 6
【AI系统】计算图与自动微分
|
4天前
|
机器学习/深度学习 人工智能 算法
【AI系统】计算图挑战与未来
当前主流AI框架采用计算图抽象神经网络计算,以张量和算子为核心元素,有效表达模型计算逻辑。计算图不仅简化数据流动,支持内存优化和算子调度,还促进了自动微分功能的实现,区分静态图和动态图两种形式。未来,计算图将在图神经网络、大数据融合、推理部署及科学计算等领域持续演进,适应更复杂的计算需求。
34 5
【AI系统】计算图挑战与未来
|
4天前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】计算图基本介绍
近年来,AI框架如TensorFlow和PyTorch通过计算图描述神经网络,推动了AI技术的发展。计算图不仅抽象了神经网络的计算表达,还支持了模型算子的高效执行、梯度计算及参数训练。随着模型复杂度增加,如MOE、GAN、Attention Transformer等,AI框架需具备快速分析模型结构的能力,以优化训练效率。计算图与自动微分紧密结合,实现了从前向计算到反向传播的全流程自动化。
24 4
【AI系统】计算图基本介绍
|
5天前
|
机器学习/深度学习 存储 人工智能
【AI系统】离线图优化技术
本文回顾了计算图优化的各个方面,包括基础优化、扩展优化和布局与内存优化,旨在提高计算效率。基础优化涵盖常量折叠、冗余节点消除、算子融合、算子替换和算子前移等技术。这些技术通过减少不必要的计算和内存访问,提高模型的执行效率。文章还探讨了AI框架和推理引擎在图优化中的应用差异,为深度学习模型的优化提供了全面的指导。
19 5
【AI系统】离线图优化技术
|
5天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
28 4
【AI系统】计算图优化架构
|
2天前
|
机器学习/深度学习 人工智能 边缘计算
24/7全时守护:AI视频监控技术的深度实现与应用分享
本文深入解析了AI视频监控系统在车间安全领域的技术实现与应用,涵盖多源数据接入、边缘计算、深度学习驱动的智能分析及高效预警机制,通过具体案例展示了系统的实时性、高精度和易部署特性,为工业安全管理提供了新路径。
|
4天前
|
机器学习/深度学习 人工智能 PyTorch
【AI系统】计算图原理
本文介绍了AI框架中使用计算图来抽象神经网络计算的必要性和优势,探讨了计算图的基本构成,包括标量、向量、矩阵、张量等数据结构及其操作,并详细解释了计算图如何帮助解决AI工程化中的挑战。此外,文章还通过PyTorch实例展示了动态计算图的特点和实现方法,包括节点(张量或函数)和边(依赖关系)的定义,以及如何通过自定义Function实现正向和反向传播逻辑。
29 7