2025-01-10 16:42:14 来源:
腾讯专有云首席架构师 方天戟
精彩观点
让一万张卡的计算能力等于单卡计算能力的10000倍,实际上不可能;如果能实现9000多倍,已经是极为出色的成绩。这不仅需要克服网络和存储耗时、通信时间造成的闲置等问题,更体现了腾讯云在多卡协同方面的不懈努力。
在当前数字化浪潮蓬勃发展的时代,AI技术日新月异,模型规模不断扩大,对算力的要求也达到了前所未有的高度。而云计算平台,作为强大的资源调度工具,与智算技术的融合,也成为了推动算力建设与发展的关键路径。腾讯云长期在这一领域的深耕细作,在为客户提供卓越的解决方案同时,还助力企业在数智化转型的道路上加速前行。
一、智算面临的挑战
(一)算力规模问题
随着AI与大模型的发展,其参数数量和复杂度呈指数级增长,这直接导致了对算力需求的急剧攀升。我们经常提到的模型参数,实际上指的就是矩阵元素的数量,如1B参数的模型,实际上是计算30000×30000的矩阵方程。我们回想学生时代,3×3的矩阵运算,可以使用手工计算完成,但面对如此庞大的矩阵计算,即使是对于性能强大的GPU,也面临着计算量与内存容量等挑战。这就迫使我们必须采用多卡协同计算的方式来满足大矩阵方程的计算需求,从而引发了算力规模的不断扩大。
(二)业务连续性问题
当算力规模增大,集群中卡的数量随之增多。此时,一个严峻的问题摆在我们面前:如果没有做好调度和高可用设计,会导致任何一张卡出现故障引起整个集群的计算中断。在智算领域,这种硬件故障对业务连续性的影响是不容忽视的,它可能会给企业带来显而易见的经济损失。
(三)跨域协同问题
构建智算集群需要投入高昂的成本,每一张计算卡都代表着大量的资金投入。因此,如何充分利用所有的计算资源,实现计算效率的最大化,成为了我们必须解决的关键问题。这其中涉及到多个层面的协同工作,包括AI计算中GPU计算和CPU计算的高效配合,以及在多租户环境下,如何确保每个租户的算力利用率都能达到最优状态,同时还要保证分布式训练的AI算力和网络之间能够协同工作。例如,在处理大规模矩阵计算时,我们需要将大矩阵合理拆分成许多小矩阵,然后分配给不同的卡进行迭代计算,并且要确保这些卡之间能够准确无误地同步计算结果,这对网络技术提出了很高的要求。同时大模型的训练离不开海量的样本和语料,这就对存储系统的性能提出了极高的要求。然而,传统的云上存储在面对这样的需求时,却暴露出了明显的局限性,需要解决增加存储节点数量时,存储的吞吐性能按照预期的比例提升的问题,才能满足大模型训练对数据读写速度的要求。硬件运维和安全能效管理自动化也是我们在智算过程中面临的重要挑战。前面提到,在多卡协同计算的过程中,我们追求的目标是让一万张卡的计算能力尽可能接近单卡计算能力的一万倍。但在实际操作中,这面临着诸多困难。网络和存储耗时、网络带宽的限制以及可能出现的丢包现象、存储拉取对性能的影响等因素,都会对并行计算造成干扰,降低总体性能。因此,构建智算平台的核心任务,就是通过各种技术手段,将这些不利因素对算力的影响降到最低限度,以实现高效的多卡协同计算。
(四)供应链安全
供应链安全是目前亟待解决的问题,现在业界出现了很多国产算力、存储与网络硬件厂商,智算云平台作为调度计算、存储与网络资源的分布式操作系统,需要兼容多厂商的硬件生态,这也是我们努力的一个方向。
多卡协同的核心问题是让一万张卡的计算能力无限趋近一张卡计算能力的 10000 倍,实际上这很难实现,若一万张卡的计算能力能达到单卡计算能力的 9000 多倍,就已经非常了不起。因为数据计算可能会阻塞在等待网络与存储的环节;网络带宽会导致前向计算和后向计算之间的通信时间增加,算力卡顿闲置;网络丢包可能导致GB级别的大块数据重传,这对整个计算机的性能影响是不可接受的;所以,怎样将这些因素对算力的影响减小到最低,是我们面临的挑战。
二、腾讯专有云智算方案
(一)云原生趋势
云原生这一概念最早可以追溯到2007 - 2008年左右,当时google推出的GAE平台,为开发者带来了全新的开发模式。在这种模式下,开发者只需按照google提供的框架编写代码,然后将代码上传到GAE,无需再为服务器、操作系统以及运行时库等底层基础设施操心,代码即可在google提供的程序容器中运行。如今,随着AI时代的到来,云原生已经成为了应用开发,特别是AI推理应用开发不可或缺的基础架构。它的最大优势在于能够让开发者完全摆脱对底层硬件的依赖,从而更加专注于应用程序的开发,大大提高了开发效率,同时也彻底屏蔽了不同硬件之间的差异,确保应用程序在各种硬件环境下都能稳定运行。
(二)腾讯专有云智算方案
云计算的本质架构包含多个层次,其中Iaas层、PaaS层和应用层是其核心组成部分。为了确保我们的平台能够有效地支撑AI应用的运行,在硬件支持方面,我们可以兼容多种异构GPU,除了业界广泛使用的Nvidia GPU之外,还包括AMD等其他品牌,同时积极引入国产化GPU,如华为昇腾、海光DCU、寒武纪等众多厂商的产品,为用户提供了丰富的选择。在软件层面,我们也提供了一系列与训练和推理紧密相关的开发库,这些开发库为用户提供了便捷的开发工具,使得他们开发的程序能够在我们的云平台上高效运行。
为了适配智算场景的需求,我们也将云计算平台进行了深度的改造。
传统云计算平台的虚拟化层,主要侧重于解决虚拟机对CPU的调度以及虚拟机接入云平台VPC平面的问题。然而,在智算场景下,这些功能远远不够。首先,对于如何将GPU资源高效地分配给虚拟机的问题,我们对kvm内核原生能力进行深度修改后,成功实现了这一目标。其次,针对GPU智算网络,我们不仅实现了其虚拟化,还对其进行了全方位优化,确保在多租户环境下,每个租户的GPU数据安全得到严格保障,并实现了网络数据交换的零丢包,这一系列优化工作都是由我们的高性能计算集群hcc来完成的:
在智算网络中,网络丢包是一个难以容忍的问题,万分之一的丢包率可能导致计算性能产生5%到50%的损耗。为了解决这一难题,腾讯云借鉴了交通领域的智能导航算法,将流量调度前置,以避免丢包的产生。大家可以想象一下,以前我们开车出门时,如果遇到堵车,只能依靠交通广播获取信息,这种方式无法实现有效避开拥堵路段。而现在有了手机导航,它能够提前预测拥堵情况,并自动为我们规划最优路线,让我们绕开拥堵点。我们将类似的原理应用到智算网络中,通过提前识别网络中的拥塞点,使数据交换能够提前绕开这些问题区域,从而确保整个智算网络实现零丢包。
高可靠的集合通信库
为了实现GPU之间高效的数据交换,集合通信库是AI训练应用强依赖的组件之一。在集合通信库领域,英伟达的NCCL是比较知名的,我们基于NCCL开发了自主的TCCL,在以下几方面进行了改进。首先,TCCL在防拥塞算法方面表现更为出色,能够更有效地避免网络拥塞对数据交换的影响;其次,NCCL在应对GPU搭配的网卡故障时存在高可用问题,一旦网卡坏掉,GPU就会脱网,导致集群运算中断。而我们的TCCL能够实现单GPU搭配两张网卡时的网络高可用问题,当一张网卡出现故障时,能够立即将路径切换到另一张网卡,实现多路径保障,大大提高了系统的稳定性。此外,TCCL还能够优化GPU之间的通信路径,尽量实现直通,避免数据绕行网络上行的核心交换机,从而有效减少了拥塞导致丢包的概率,显著提升了数据交换效率。
存储深度优化
针对传统存储系统在面对大模型训练时性能不足的问题,我们对存储系统进行了全面深入的优化。我们重新构建的存储系统在架构设计上独具特色,在对外提供了与传统文件存储兼容的POSIX接口的同时,在内部还实现了全互联的存储架构,这意味着任何一个虚拟化存储节点,都可以作为数据吞吐处理的节点。通过这种方式,当我们需要更高的存储性能时,只需简单地平行扩展存储节点,就能够轻松满足性能需求,例如实现每秒钟上百GB甚至TB级别的高性能读写。这种深度优化后的存储系统为大模型训练提供了强大的存储支持,确保数据的快速读写和高效处理。
推理业务特点与容器结合
推理业务在AI应用中具有独特的特点,它在运行过程中占用的数据量相对较少,每次所需的算力也比较低,但却具有极高的并发度,并且任务的到来往往是突然的,一旦推理完成,任务随即结束。我们发现,这种业务特点与腾讯云的容器平台特性高度契合。腾讯云的容器平台在我们的公有云上已经运营了近十年的时间,积累了丰富的经验。我们将容器平台与AI技术深度融合后,利用容器平台为GPU提供了类似操作系统的调度功能,实现了对GPU的按时间片严格调度。例如,我们可以精确地将时间片分配为100毫秒,并且确保用户最终获得的时间片就是100毫秒,不会出现抢占他人资源或浪费的情况。同时,我们的调度系统对用户业务完全透明,用户无需修改代码或替换任何运行时库,解决了业界其他GPU虚拟化系统对用户代码的侵入式修改问题。
网络拓扑与落地方案
为了实现高效的智算服务,我们搭建了一套完善的网络拓扑结构。在这个拓扑中,其关键是构建RDMA网络。RDMA网络是高性能智算网络的核心技术,需要确保数据交换的高效和零丢包。通过合理的组网设计,我们能够为不同规模的集群搭建RDMA网络。例如,从几百卡到几千卡的集群我们可以采用两层网络架构,理论上最多可以容纳8K卡;如果进一步扩展,在万卡集群的场景,就需要通过构建多层网络,如类似facebook的多平面组网方案。目前我们可以实现的更大规模的集群,可以从16k卡开始扩展,理论上可以扩展到512k卡。目前在实际应用中,由于电力供应、散热和成本等因素的限制,落地的规模大约在十万张卡的数量级。
(三)实践案例
1. 某银行案例
以某商业银行为例,该银行希望利用大数据和AI技术,提升信用卡、贷款审批等业务效率,同时要考虑到硬件的供应链安全。我们为客户提供的针对性解决方案是,同时采用了一部分英伟达卡和一部分国产化的华为昇腾卡来构建计算集群。虽然由于通信协议等问题,目前在将计算任务同时下发到两边卡并实现并行计算方面还存在一些困难,但这个客户已经通过组建两个智算集群,实现了异构智算集群上,软硬件各层次架构的对应,包括张量编译器、计算执行引擎、算子库等部件的对应。我们相信,在未来随着技术的发展,我们也能够实现更高效的异构GPU卡的并行计算,进一步提升业务处理速度和供应链安全性。
2. 某科技公司案例
我们与某个科技公司的合作也是值得业界借鉴的。这个客户本身专注于智算建设,我们在去年年底,与其合作了一个重要项目,为无锡市政府提供算力中心的建设服务。在这个项目中,我们充分发挥了自身技术优势,运用了全套的HCC技术、RDMA网络、训练集群以及高性能存储方案,帮助客户建设了GPU算力的高效运营技术平台与运营流程,不仅在无锡市成功落地应用,还将这套方案输出到了东南亚国家,为当地的数字化发展提供了有力支持。
✦精彩推荐✦
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。