河套 IT TALK 90:(原创)智能算力新篇章:智算中心构建智能算力的大脑和神经中枢
上篇我们聊到了人工智能算力(Computing Power),以及对应的那些算力芯片。如果我们把算力芯片理解为神经元的话,智算中心就是智慧大脑和神经中枢。今天智愿君就来聊聊智算中心。
1. 战略性的选择
智能算力水平是国家智能化、数字化发展水平的集中体现,是数字化应用建设及发展的底层基础。《2021-2022全球计算力指数评估报告》数据显示,美国、日本、德国、英国等15个国家在AI算力上的支出占总算力支出比重从2016年的9%增加到了12%,预计到2025年AI算力占比将达到25%。按照当前发展趋势,在人均算力中智能算力所占的比重将会逐年增长,人均智能算力水平的高低与国家经济社会发展将会是紧耦合的绑定关系,成为综合国力发展的重要表现。
根据IDC联合浪潮信息发布的《2022-2023中国人工智能计算力发展评估报告》,中国人工智能计算力保持快速增长,2022年智能算力规模达到268百亿亿次/秒(EFLOPS),超过通用算力规模。预计未来5年中国智能算力规模的年复合增长率将达52.3%。算力指数平均每提高1点,数字经济和GDP将分别增长3.5‰和1.8‰。
毫无疑问,算力已成为挖掘数据要素价值,推动数字经济发展的重要驱动力,智算中心的战略性地位愈发凸显。规模部署智算中心是迎接未来技术挑战、加速城市智能化建设的必然选择。
2. 智算中心的系统架构
上篇,我们其实已经谈过了智算中心和超算中心、云计算中心的差异性,本篇不再赘述。
在国家信息中心发布的《智能计算中心创新发展指南》中,明确给出了智算中心的定义:“智算中心是基于最新人工智能理论,采用领先的人工智能计算架构,提供人工智能应用所需算力服务、数据服务和算法服务的公共算力新型基础设施,通过算力的生产、聚合、调度和释放,高效支撑数据开放共享、智能生态建设、产业创新聚集,有力促进AI产业化、产业AI化及政府治理智能化。智智算中心以多种异构方式共同发展的AI服务器算力机组为算力底座,不断提升智能计算能力和速度,满足人工智能应用场景下大规模、多线并行的计算需求。智算中心围绕“算力生产、算力聚合、算力调度、算力释放”四个核心业务功能,为各行业各领域人工智能应用提供稳定的技术支撑,打造可持续发展的算力生态。”
智算中心,如果要充分发挥智算的能量,从整体架构上要分为四层:
- 算力应用层:作为智算中心的最上层,负责接收用户的计算任务和应用需求。当然为了更好做好算力运营,这一层还需要有算力封装、算力统计、监控和交易计费、算力并网等管理功能。
- 算力调度层:负责智能资源调度和任务分配。包括算力感知和度量、算力解构、算力编排和分配,算力路由和调度等。
- 算力资源层:这是智算中心的核心,包括多个算力资源中心和计算节点,这些节点可以是具体的物理服务器,也可以是虚拟机部署,还要考虑分布式和分层架构,以实现立体计算的效果。资源层会直接接受来自调度层的任务分配并执行计算任务。算力资源层也需要监控和管理本地算力资源的状态,负载和性能,并将这些信息实时回馈到调度层。
- 算力网络通信层:负责智算中心内部和智算中心间的数据传输与通信。提供高速可靠的数据传输保障。包括互联互通,云边互联,边边互联。数据的安全性和完整性的保障,一般也在这一层。
接下来,我们就会针对上述的分层,分别来展开说明。先谈最下面的网络层,再逐级向上,最后来说应用层。
3. 算力网络通信层
算力网络通信层是智算网络的底座。算力网络对网络传输提出更为苛刻的要求,所以提出确定性网络(Deterministic Networking)的概念,也就是说:具有严格时间保证和低延迟的网络通信,以确保任务的及时响应和数据的准确传输。
确定性网络要求网络中的数据包传输要具有可预测性、稳定的传输速度,不会受到随机波动或者拥塞的影响,做到最小化阻塞和抖动性。要达到至少微秒级(Microsecond Level),甚至是纳秒级(Nanosecond Level)的硬实时要求。要想达到确定性网络,硬件上就必须采用高速的交换机、路由器、全光网络(All-Optical Network)的传输设备。同时,还需要在高精度原子钟的支持下,做到精准的任务调度和协调,并采用硬实时调度算法来避免资源竞争,达到实时性保障。同时在路由算法上,要采用低延迟路由技术,以减少数据包的传输时间和网络中的排队延迟。
除了时延之外,确定性网络还要求数据传输过程中绝对不能出现丢失。这就需要无损路由(Lossless Routing)技术的运用。在传统的网络中,当网络拥塞或缓冲区溢出时,可能会发生数据包的丢失。而在无损路由中,采用一系列拥塞控制和缓冲管理机制,确保所有的数据包都能够被成功传输,避免数据丢失。
网络层除了满足确定性网络要求外,还需要配合上层的资源调度提供信息保证,这就需要遵守资源感知路由协议(Resource-Aware Routing Protocol)。根据网络中的资源状态和拓扑、算力资源的负载、性能指标和能耗等信息,智能地动态选择最佳的网络路径和节点,以实现资源的高效利用和任务的优化调度。
4. 算力资源层
传统的云计算、和超算中心,由于业务的特殊属性,更倾向于集中计算。但是智算中心会更加强调立体计算的模式。立体计算将云、边不同位置的设备横向和纵向进行协同拉通,实现优势互补。解决业务体验不好、算力分布不均、算力利用率低、信息孤岛等一系列的问题与挑战。
边缘计算(Edge Computing)这个话题,之前我们专门出过一期聊过。详细参见:《河套IT TALK 82: (原创) 解锁边缘的力量:边缘计算的崛起和未来(万字长文)》。边缘计算就是将计算和数据处理功能移动到离数据产生源头更近的边缘设备、边缘节点或边缘服务器上进行处理。边缘计算的目标是减少数据的传输延迟、提高应用的实时性和响应性,并减轻云计算中心的负载。智算中心也同样可以分为集中部署节点和分布式的边缘部署节点。这就会牵扯到什么时候采用集中部署节点的算力来计算,什么时候用边缘计算的问题。
一般而言,边缘计算将计算和数据处理推向离数据源头更近的边缘,可以在接近数据产生的地方进行实时处理,减少数据传输的延迟。这对于需要即时响应的应用非常重要。制造、电力、城市、交通、金融等垂直行业的智能化升级与改造,是边缘计算在这些行业规模应用的重要驱动因素,将带来爆发式的增长。例如,物联网设备产生的传感器数据、智能城市的实时监测数据、虚拟现实、增强现实应用、在线游戏等。边缘算力的设备因未来业务发展多样化的诉求,逐渐向小型化、移动化、低功耗的方向发展。
在某些极端情况下,在没有持续互联网连接或有网络限制的环境下,边缘计算可以在本地进行计算和数据处理,降低对云端资源的依赖,提供离线环境下的支持。例如,边缘设备在偏远地区、海上平台或工厂车间等环境中的计算需求。而云端算力更适合于处理大规模数据集合、进行复杂的数据分析和机器学习算法训练。当业务需要根据需求进行弹性扩展和高可靠性部署时,云端算力的虚拟化和自动化特性能够快速分配和调整计算资源,提供高可用性和可伸缩性。
当然不能简单的二分法,从安全角度来看,算力集中云端部署会充分发挥数据潜能价值,但是数据容易受到云端的黑客攻击。而算力边缘层尽管相对可以保护核心资产的安全与隐私,但是也容易形成数据孤岛,同时也更容易遭受来自南向的物理硬件接口的安全攻击。在智算领域,从负载均衡、资源优化、弹性扩展、灵活性和安全性考虑,往往是边云协同,边边协同的方式来实现的。
在协同计算中,需要先将任务进行拆解,分割为多个子任务,可以根据任务的紧急程度和计算资源的可用性,将推理任务灵活地分配到边缘设备和云端进行处理。然后再通过上层的编排调度实现部分子任务在边,部分在云的方式执行。同时,优化模型的大小和复杂度,采用模型剪枝、轻量化等技术,减少推理时延,并针对不同设备和网络环境进行优化。将复杂的深度学习模型压缩为适合边缘设备的小型模型,以减少计算和存储需求。同时,可以利用分布式计算和任务卸载的方式,将部分计算任务卸载到云端进行处理,减轻边缘设备的负担。
在智能协同中,常见的模式是:“云端训练、边缘推理”。要通过联合学习(Federated Learning)等技术,将模型训练分散到边缘设备和云端进行,通过模型参数的交换和聚合来实现全局模型的训练。同时,还可以引入增量学习和迁移学习等技术,利用已有模型的知识和经验来加速协同训练精度和提高收敛速度。这种方式也能将边缘设备上的局部数据进行共享和融合,形成更丰富的数据集进行模型训练。同时,还可以利用生成对抗网络(GAN)等技术生成合成数据来扩充样本集。最终可以解决边缘计算数据孤岛和小样本问题。
在边云协同中,不同设备和节点可能具有不同的数据格式和特征表示。可以通过数据转换和标准化的方法,将异构数据转换为统一的表示形式,以便于模型的训练和推理。进而更好应对数据异构问题。
在算力资源层,如何节能也是一个重要的考虑因素。节能通过能源使用效率PUE(Power Usage Effectiveness)来衡量。PUE是将数据中心的总能源消耗除以用于支撑计算设备的能源消耗的值。由于数据中心的冷却设备、电源转换损耗和其他辅助设备的能耗,使得PUE值通常大于1.0。PUE的值越低,表示数据中心在提供计算服务时的能源利用效率越高。理想的PUE值是1.0,这意味着所有的能源都被用于计算设备,没有能源浪费。但随着可再生能源或能源回收系统的运用,数据中心的PUE可能会成为小于1的情况,这就是负PUE(Negative PUE)或者Net-Zero能耗的概念。负PUE是指数据中心的能源消耗低于用于支撑计算设备的能源消耗,也就是说,数据中心产生的能源超过了用于运行设备的能源需求。Net-Zero能耗,它表示数据中心在一定的时间范围内的总能源消耗与可再生能源的产生量相等,即数据中心的净能耗为零。
5. 算力调度层
算力调度层算是智算中心和网络的调度中枢系统,向下实现算力资源的统一管理、统一编排、智能调度和全局优化,以实现高效的资源利用和任务执行,提升算力网络效能。
要实现智能调度,先要有算力感知能力。算力调度层先要进行整个智算中心的算力资源进行解构和分类。这可能包括将算力资源划分为不同类型(例如CPU、GPU、FPGA等),不同规格和性能等级。这样可以更好地匹配任务需求和资源特性,提高资源利用效率。在建立智算中心时,可以通过手工配置的方式对算力资源进行解构和分类。这包括人工对每个算力资源进行分类、规格化和标记,将其划分为不同类型、不同规格和性能等级。这种方法需要依靠运维人员对算力资源的了解和判断,手动指定其所属的类别和特性。但这还远远不够,在现实运作中,需要借助传感器、监控系统和数据分析算法来实现。通过收集算力资源的运行数据,如CPU使用率、内存占用、能耗等指标,以及性能测试结果,可以利用机器学习、数据挖掘和模式识别等技术来自动分析和划分算力资源的类型和特性。在实际应用中,通常会采用一些自动化工具和系统来辅助算力解构的过程,提高效率和准确性。
具体运作过程中,算力调度层需要实时感知和监测算力资源的状态和可用性。这可以通过监测计算节点的负载、性能指标、能源消耗等来实现。传感器、监控系统和监测算法可以用于收集和分析这些数据,并提供准确的算力度量。这样结合任务需求和资源可用性,对算力资源进行编排和分配。这可能涉及到任务调度算法、负载均衡策略、资源分配策略等。通过综合考虑任务的优先级、资源的可用性和性能指标,算力调度层可以决定如何最优地分配算力资源,以实现任务的高效执行。以上也称为:弹性伸缩和自动化管理(Elastic Scaling and Automation),根据用户需求和负载情况动态调整算力资源的规模和配置。弹性伸缩可以根据负载变化自动增加或减少计算资源,以满足任务需求,并避免资源浪费。自动化管理可以自动监测和调整资源配置、执行任务调度和优化,从而提高系统的自动化程度和效率。
同时也结合前面算力网络通信层的算力路由上报信息,通过算力路由算法、网络拓扑优化、数据传输调度算法等,优化传输路径、降低通信延迟、提高数据传输速率,从而优化算力资源的利用效率。
智能算力调度和动态算力解构是一个不断试错和修正的过程。在任务分配过程中,可能会采用一些启发式算法、机器学习或优化算法来进行决策。这些算法会根据任务的特性、算力资源的性能指标、历史数据和反馈等信息,进行评估和预测,以确定最优的算力资源类型。然而,由于任务的特性和需求可能存在不确定性和变化,所以选择的算力资源类型可能不总是完全准确的。因此,智能算力调度和动态算力解构是一个迭代的过程。在实际应用中,可能会根据任务的执行情况和算力资源的反馈信息,对算力资源的选择和分配进行修正和优化。这可以包括动态调整任务分配策略、实时监控任务的执行情况,以及根据反馈信息对算力资源的选择进行修正。通过不断的试错和修正,智能算力调度和动态算力解构可以逐渐优化算力资源的利用效率和任务执行的性能。这种迭代的过程可以提高智算中心的整体效能,并适应任务需求和算力资源变化的动态性。
另外,智算中心的调度是一定会采用并行计算和分布式计算的方式来提升计算效率的。并行计算是将一个大型计算问题分解为多个子问题,并将这些子问题同时分配给多个计算资源进行独立计算,最终将它们的结果合并得到最终的计算结果。通过并行计算,可以加快计算速度,提高计算效率,并处理更大规模和复杂度的计算任务。分布式计算是将一个计算任务分发给多个计算节点进行并行计算,这些计算节点可以分布在不同的物理位置上,相互之间通过网络进行通信和协同工作。分布式计算利用了智算中心中的多个计算资源,使得计算任务可以在多个节点上同时进行,从而提高计算能力和资源利用率。
6. 算力应用层
作为智算中心的最上层,算力应用层直接与用户和应用程序进行交互,负责接收用户的计算任务和应用需求,并将其转化为具体的计算操作。这一层通过算力封装和算力统计等管理功能,确保任务的准确执行和高效运营。所以应用层也可以叫做运营层。
为了更好地运营,需要做好算力封装(Compute Packaging),将底层的算力资源进行抽象和封装,提供统一的接口和规范给上层的应用程序使用。这样,应用程序可以通过标准化的接口调用和管理算力资源,而无需关注具体的硬件和底层细节,做好隔离。算力封装可以通过容器化技术(如Docker)或虚拟化技术(如虚拟机)来实现。
有的时候,算力交易还存在算力并网(Compute Federation)的情况,也就是多个智算中心的算力资源进行联合和整合,形成一个统一的算力网络。这可以通过跨地域、跨机构的协同合作来实现,以共享和交换算力资源。算力并网可以提高算力资源的利用率和可用性,使得用户可以更加灵活地访问和利用分布在不同地方的算力资源。
为了繁荣生态,算力应用层还需要提供应用程序开发和部署(Application Development and Deployment)。以支持用户开发和部署自己的应用程序。这可能涉及编程框架、软件开发工具包、API接口等,使得用户可以方便地构建和部署各种计算任务和应用。此外,应用程序开发和部署也需要与算力封装和调度层进行协同,以实现应用程序的高效运行和资源利用。
当然,运营一定少不了算力统计与监控(Compute Monitoring)。对算力资源进行实时的监测、度量和统计,以获取关于算力资源的各种性能指标和使用情况。这可以帮助算力管理者了解算力资源的利用率、负载情况、性能状况等,从而进行合理的调度和管理。常见的算力统计与监控技术包括指标收集、日志记录、事件报警、性能分析等。
当然,运营的目的是为了营利,所以就需要算力交易和计费系统(Compute Billing)。基于用户的计算任务和资源使用情况,对其进行计费和结算。这需要实现计费模型、价格策略、账单生成等功能,并提供用户界面和API接口进行交互。交易计费的设计应当考虑公平、透明和可扩展性,以满足不同用户和应用场景的需求。如果要使得智算算力交易更为灵活,还可以提供算力交易市场(Compute Marketplace)的功能,允许用户交易和共享算力资源。这可以促进资源的合理利用和共享经济的发展,使得资源拥有者可以出租闲置资源,而需求方可以获得灵活的算力资源。算力交易市场需要提供可信的交易机制、支付结算功能和服务质量保证,以确保交易的安全和可靠。
7. 开放计算
我们前面介绍了,智算中心的解决方案会分四层,每层都会有很多的供应商,包括硬件供应商、软件供应商或者解决方案集成商。这种复杂的状况,是没有办法由一家供应商解决的,更不要说还存在智算中心协同的情况了。所以要构建一个繁荣的智算中心生态系统,必须通过开放的标准和接口,各方才可以更便捷地整合和扩展自己的产品和服务。
开放计算最先要做到的就是各方要遵循既定的标准,智算中心通常涉及大规模的数据中心建设和管理。因此,可以参考数据中心相关的标准和规范,如TIA-942(数据中心设计和建设标准)、ISO/IEC 27001(信息安全管理体系标准)和ISO/IEC 20000(IT服务管理标准)等。为了实现开放计算,可以参考开放计算的标准和规范,如Open Compute Project(OCP)的硬件设计规范。而互联互通的通信层面需要遵循网络通信的标准和规范,如IEEE和ITU的标准。
Open Compute Project(OCP)是当前最重要的开放计算社区之一。社区的成员包括各大科技公司、数据中心运营商、硬件供应商和软件开发者等。他们共同合作,通过共享硬件设计、制定开放标准和规范,推动数据中心、服务器、存储和网络等领域的创新。OCP社区的核心目标是降低数据中心成本、提高能源效率、提升计算性能,并推动可持续发展。社区通过开放的硬件设计和规范,促进各方共享最佳实践和技术创新,加速行业的进步。除此之外,在云层面和开源层面,也有很多和开放计算相关的社区和项目。比如Kubernetes(容器编排平台)、OpenStack(开源云计算平台)等。这些社区和项目在不同的领域推动开放计算的发展,吸引了大量的开发者和组织参与共同创新。
8. 展望未来
由于强劲的增长动力,智算中心,相信未来相当长的一段时间内,都会是科技领域的热点话题。智算中心的未来发展充满了潜力和机遇。通过不断探索和应用新技术,智算中心可以实现更高效、智能和可持续的计算能力,为社会和人类的进步做出更大的贡献。随着科技的不断进步和创新的推动,我们可以期待智算中心将在未来展现出更加令人惊叹的发展和成就。比如,当下,量子计算和量子网络方兴未艾,如果有可能在智算中心引入量子能力,相信一定会引发新的变革和突破,让我们拭目以待吧。