三大運(yùn)營商都在積極地推廣“算力網(wǎng)絡(luò)”的相關(guān)技術(shù)概念落地,互聯(lián)網(wǎng)公司有類似的概念叫“分布式云”。個人理解,兩個概念的技術(shù)實(shí)現(xiàn)基本相同,不同點(diǎn)在于:算力網(wǎng)絡(luò)站在基礎(chǔ)計(jì)算環(huán)境的視角,著眼于算力資源的整合;分布式云從業(yè)務(wù)服務(wù)的視角,著眼于計(jì)算以何種形式提供。
今天這篇文章,拋磚引玉,探討一下宏觀視角的算力網(wǎng)絡(luò)的底層算力體系。
1 算力網(wǎng)絡(luò)和分布式云的概念
Garnter 2021年發(fā)布的戰(zhàn)略技術(shù)趨勢,將分布式云(Distributed Cloud)列為云計(jì)算的重要戰(zhàn)略技術(shù)趨勢。分布式云的定義:將公有云服務(wù)分布到不同的物理位置(即邊緣),而服務(wù)的所有權(quán)、運(yùn)營、治理、更新和發(fā)展仍然由原始公有云提供商負(fù)責(zé)。解決客戶讓云計(jì)算資源靠近數(shù)據(jù)和業(yè)務(wù)活動發(fā)生的物理位置的需求。分布式云是整合公有云、私有云和邊緣云在一起,核心思想是,讓公有云的全棧服務(wù)能力延伸到最靠近用戶所需的地方。分布式云,本質(zhì)上是一朵云,由云負(fù)責(zé)調(diào)配計(jì)算資源。雖然中間需要網(wǎng)絡(luò),但是網(wǎng)絡(luò)主要是承擔(dān)管道的角色。
按照運(yùn)營商的觀點(diǎn),算力網(wǎng)絡(luò)是云網(wǎng)協(xié)同和分布式云的升級版,指的是:在計(jì)算能力不斷泛在化發(fā)展的基礎(chǔ)上,通過網(wǎng)絡(luò)手段將計(jì)算、存儲等基礎(chǔ)資源在云-邊-端之間進(jìn)行有效調(diào)配的方式,以此提升業(yè)務(wù)服務(wù)質(zhì)量和用戶的服務(wù)體驗(yàn)。算力網(wǎng)絡(luò)中的網(wǎng)絡(luò)非常關(guān)鍵:網(wǎng)絡(luò)是用戶去往算力資源的必經(jīng)之路,也是用戶發(fā)起業(yè)務(wù)需求的入口,通過網(wǎng)絡(luò)調(diào)配算力。
站在用戶業(yè)務(wù)的角度,分布式云和算力網(wǎng)絡(luò)的目標(biāo)是一致的:云網(wǎng)邊端從協(xié)同走向融合。算力網(wǎng)絡(luò)是網(wǎng)絡(luò)擁有者為滿足這類需求,提出的方案;分布式云是云計(jì)算廠商為滿足同樣的需求,提出的方案。從趨勢看,兩種方式是既合作又競爭的關(guān)系,隨著未來技術(shù)和業(yè)務(wù)的不斷發(fā)展,兩種方式會逐漸趨于統(tǒng)一。
2 從計(jì)算形態(tài)看算力網(wǎng)絡(luò)
2.1 計(jì)算機(jī)的資源分類
在傳統(tǒng)CPU的計(jì)算機(jī)架構(gòu)里,計(jì)算機(jī)資源主要分為三類:CPU、內(nèi)存和外設(shè)。在異構(gòu)和超異構(gòu)的計(jì)算體系下,計(jì)算機(jī)的硬件資源可以分為四類:
CPU:站在控制的視角,CPU作為中央處理器,是整個系統(tǒng)的核心;站在計(jì)算的視角,CPU和其他加速器一樣,是用于計(jì)算的處理器之一。
內(nèi)存:在異構(gòu)或超異構(gòu)計(jì)算體系下,內(nèi)存的概念同經(jīng)典架構(gòu)下意義相同;區(qū)別在于,在異構(gòu)或超異構(gòu)情況下,內(nèi)存的訪問者更多,訪問更加頻繁,帶寬等性能要求更高。
I/O設(shè)備:同經(jīng)典架構(gòu)下意義基本相同。
其他的加速處理器:如GPU、AI-DSA、網(wǎng)絡(luò)DSA,以及各種ASIC類的加速器等。從CPU視角看,其他的加速器是和I/O設(shè)備對等的“外部設(shè)備”;而從計(jì)算的視角看,其他的加速器是和CPU對等的計(jì)算處理器。
2.2 IaaS服務(wù)分類
IaaS服務(wù)主要分為四類:計(jì)算、網(wǎng)絡(luò)、存儲和安全,詳細(xì)分析如下:
計(jì)算類:不管是裸金屬機(jī)、虛擬機(jī)或者容器的形態(tài),云計(jì)算的主機(jī)或容器硬件平臺都是由計(jì)算機(jī)的四大大資源組件組成的:
計(jì)算的CPU處理器,不管是通用(CPU)計(jì)算,還是異構(gòu)計(jì)算,CPU都是不可缺少的資源組件。
計(jì)算的加速處理器,異構(gòu)計(jì)算需要有GPU、AI加速等加速處理器資源組件。
計(jì)算的內(nèi)存,內(nèi)存是用于計(jì)算暫存的存儲資源。
網(wǎng)絡(luò)和存儲I/O,是計(jì)算不可或缺的組件;在IaaS體系里,網(wǎng)絡(luò)和存儲通常以獨(dú)立服務(wù)的形態(tài)存在。
根據(jù)業(yè)務(wù)場景的需要,計(jì)算的硬件平臺是這些資源的不同規(guī)格不同比例的組合。
根據(jù)需要,可以通過很多種方式,實(shí)現(xiàn)所有資源的池化,以及實(shí)現(xiàn)硬件平臺計(jì)算資源的本地或(和)遠(yuǎn)程擴(kuò)展。
網(wǎng)絡(luò)類:狹義的網(wǎng)絡(luò)只是一個網(wǎng)卡,為計(jì)算提供網(wǎng)絡(luò)訪問的通道。廣義的網(wǎng)絡(luò)類服務(wù),包括兩類:網(wǎng)絡(luò)轉(zhuǎn)發(fā),如VPC、EIP、各類網(wǎng)關(guān)、LB等;網(wǎng)絡(luò)通信:如高性能網(wǎng)絡(luò)、確定性網(wǎng)絡(luò)等。
存儲類:從計(jì)算的角度看,外存是計(jì)算的輸入輸出,即使計(jì)算機(jī)關(guān)機(jī),外存的數(shù)據(jù)依然存在。但從云服務(wù)器的視角看,本地外部存儲是臨時(shí)存儲,當(dāng)云服務(wù)器資源被銷毀后,也會銷毀本地存儲的數(shù)據(jù)。要想長期地持久化地保存數(shù)據(jù),則需要采用遠(yuǎn)程的分布式存儲。本地臨時(shí)存儲和分布式的快存儲、對象存儲、歸檔存儲等都是以服務(wù)的形式,支撐計(jì)算類服務(wù)。
安全類:安全的計(jì)算,如可信計(jì)算;安全的網(wǎng)絡(luò),如防火墻;安全的存儲,如數(shù)據(jù)加解密等。安全是個非常龐大的話題,無處不在,這里我們不再展開。
2.3 算力網(wǎng)絡(luò)的兩種類型
簡單介紹一下Serverless的概念。Redhat給出的Serverless定義為:“無服務(wù)器是一種云原生開發(fā)模型,可使開發(fā)人員專注構(gòu)建和運(yùn)行應(yīng)用,而無需管理服務(wù)器。無服務(wù)器方案中仍然有服務(wù)器,但它們已從應(yīng)用開發(fā)中抽離了出來。云提供商負(fù)責(zé)置備、維護(hù)和擴(kuò)展服務(wù)器基礎(chǔ)架構(gòu)等例行工作。開發(fā)人員可以簡單地將代碼打包到容器中進(jìn)行部署。部署之后,無服務(wù)器應(yīng)用即可響應(yīng)需求,并根據(jù)需要自動擴(kuò)容。公共云提供商的無服務(wù)器產(chǎn)品通常通過一種事件驅(qū)動執(zhí)行模型來按需計(jì)量。因此,當(dāng)無服務(wù)器功能閑置時(shí),不會產(chǎn)生費(fèi)用。”
通俗易懂的講,有服務(wù)器的服務(wù),需要用戶自己創(chuàng)建服務(wù)的具體實(shí)例Instance,一個實(shí)例只能歸屬于一個用戶,一個用戶可以擁有一個或多個實(shí)例;而Serverless類型的服務(wù)則不需要創(chuàng)建服務(wù)實(shí)例,直接使用服務(wù)即可,很多用戶共享使用同一個服務(wù)“實(shí)例”(不是所有用戶,服務(wù)軟件在不同數(shù)據(jù)中心的部署可以是不同的服務(wù))。至于服務(wù)所需要的各種底層資源,用戶不需要關(guān)心,服務(wù)可以根據(jù)業(yè)務(wù)使用的情況自動地?cái)U(kuò)縮容等。
也因此,算力網(wǎng)絡(luò)的實(shí)現(xiàn)形態(tài),我們大體上可以分為兩個類型:有服務(wù)器型和無服務(wù)器型。
類型1,有服務(wù)器型
有服務(wù)器的形態(tài),更接近算力網(wǎng)絡(luò)的概念。通過網(wǎng)絡(luò)等方式實(shí)現(xiàn)數(shù)據(jù)中心的以及跨數(shù)據(jù)中心的各類資源的池化,然后再通過云裸金屬機(jī)、云虛擬機(jī)、云容器等方式組合出供用戶業(yè)務(wù)運(yùn)行的硬件的計(jì)算平臺。
可以根據(jù)用戶的需求,在云、網(wǎng)、邊、端的任何位置,組合出規(guī)格和形態(tài)各異的計(jì)算平臺,給用戶提供最優(yōu)的算力服務(wù),實(shí)現(xiàn)算力的無處不在。
類型2,Serverless無服務(wù)器型
業(yè)務(wù)軟件,經(jīng)典的C/S或B/S架構(gòu),一切皆(微)服務(wù)的架構(gòu)下,可以簡單地理解成客戶端和多個微服務(wù)組成的分布式軟件。
Serverless無服務(wù)器型,更接近分布式云的概念。類似分布式云的早期經(jīng)典案例是CDN,當(dāng)用戶訪問加入CDN服務(wù)的網(wǎng)站時(shí),域名解析請求將最終交給全局負(fù)載均衡DNS進(jìn)行處理。全局負(fù)載均衡DNS通過一組預(yù)先定義好的策略,將當(dāng)時(shí)最接近用戶的節(jié)點(diǎn)地址提供給用戶,使用戶能夠得到快速的服務(wù)。CDN只是一些靜態(tài)內(nèi)容,而分布式云則需要把服務(wù)分布式的放置在邊緣等節(jié)點(diǎn)。
在分布式云的體系下,用戶不需要關(guān)心底層的主機(jī)和容器,只需要關(guān)注自己的業(yè)務(wù)邏輯。通常情況下,客戶端可以運(yùn)行在終端本地(不排除有的系統(tǒng)只在服務(wù)器運(yùn)行,客戶端也運(yùn)行在服務(wù)器側(cè)),具體的運(yùn)行位置用戶不需要關(guān)心。云服務(wù)供應(yīng)商可以根據(jù)微服務(wù)所需的帶寬、時(shí)延、性能、成本等要求,選擇最優(yōu)的運(yùn)行環(huán)境,它可以是終端本地,也可以是邊緣、網(wǎng)絡(luò)或者云端。并且,這些服務(wù)還可以根據(jù)環(huán)境的變化,動態(tài)地調(diào)整運(yùn)行的位置。
3 面向未來十年的宏觀計(jì)算系統(tǒng)特征
3.1 需求的未知
首先,系統(tǒng)場景一直在快速變化:上層軟件場景層出不窮,兩年一個新熱點(diǎn),已有熱點(diǎn)仍在快速演進(jìn)。并且,宏觀大系統(tǒng),計(jì)算資源是預(yù)先準(zhǔn)備好的。購買和部署相關(guān)資源時(shí),并不知道具體的計(jì)算資源會分配給哪個用戶,也不知道用戶在此資源上會運(yùn)行什么任務(wù)。此外,資源分配和任務(wù)運(yùn)行會一直動態(tài)變化。
傳統(tǒng)芯片和系統(tǒng)設(shè)計(jì),需要先理解場景,然后根據(jù)場景需求來設(shè)計(jì)芯片和系統(tǒng)。未來的挑戰(zhàn)是,系統(tǒng)的場景需求是不確定的;不但芯片公司不了解,客戶自己也“不了解”。
因此,復(fù)雜計(jì)算系統(tǒng)的設(shè)計(jì),需要“無的放矢”。
3.2 全面而綜合
不管是云計(jì)算數(shù)據(jù)中心系統(tǒng),還是云網(wǎng)邊端萬物互聯(lián)系統(tǒng),亦或是云宇宙虛實(shí)融合系統(tǒng),宏觀的計(jì)算系統(tǒng),只有“一個”。
然而,千千萬不同用戶的需求多種多樣;并且,用戶的需求一直處于快速的變化中;此外,還會不斷有新增用戶和新增需求。
因此,系統(tǒng)需要有包羅萬象的能力,即面對已知的和未知的各種各樣的需求,系統(tǒng)都要能夠支持。
3.3 專業(yè)而高效
通常情況下,“專業(yè)的人做專業(yè)的事”。言下之意是:專才只能做本領(lǐng)域的事情,其他領(lǐng)域的事情幾乎做不了。與此同時(shí),通才什么事情都能做,但在每個領(lǐng)域都不夠高效。
但對宏觀的復(fù)雜計(jì)算系統(tǒng)來說,系統(tǒng)不僅僅要能干幾乎所有事情,并且干任何事情都要足夠的專業(yè)而且高效,達(dá)到既通又專。
3.4 超級并發(fā)
數(shù)以億計(jì)的用戶,數(shù)以萬億計(jì)的用戶任務(wù),而系統(tǒng)只有“一個”。
千千萬用戶的計(jì)算需求需要及時(shí)響應(yīng),用戶的工作任務(wù)需要快速地處理。
因此,同一時(shí)刻,系統(tǒng)并發(fā)處理數(shù)以億計(jì)的各種類型的用戶任務(wù)。
3.5 無處不在
系統(tǒng)覆蓋非常廣泛的地域,實(shí)現(xiàn)算力無處不在,使得算力資源唾手可得。
即在任何地方,任何時(shí)刻,為用戶的任何工作任務(wù),都能提供算力和相關(guān)資源支撐。
并且,需要以最合適的形態(tài),最合適的方式,給用戶更好的體驗(yàn),為用戶創(chuàng)造更大的價(jià)值。
3.6 快速演進(jìn)
上層軟件應(yīng)用層出不窮,系統(tǒng)需求快速變化。并且,同一領(lǐng)域,不同用戶的需求具有差異性;與此同時(shí),同一用戶的業(yè)務(wù)需求仍會快速迭代。
宏觀地看,用戶以及用戶需要運(yùn)行的任務(wù),一直處于不斷地變化狀態(tài)。
復(fù)雜而融合的系統(tǒng),需要持續(xù)快速演進(jìn),才能適應(yīng)上層業(yè)務(wù)需求的不斷變化。
4 體系結(jié)構(gòu)視角看算力網(wǎng)絡(luò)
4.1 算力資源的多樣性
隨著CPU的性能瓶頸,我們需要通過GPU、FPGA、DSA等各種形態(tài)的加速處理器,來持續(xù)不斷地提升性能和算力。也因此,計(jì)算的資源,就不僅僅是CPU了,而是多種架構(gòu)多種類型處理器的組合:
CPU:包括x86、ARM和RISC-v等各種架構(gòu)的CPU,并且每種CPU還有Vector、Matrix、Tensor等各種加速的協(xié)處理器。
GPU:GPU作為通用的并行計(jì)算平臺,是使用最廣泛的加速計(jì)算處理器。并且,目前的GPU除了支持通用計(jì)算的CUDA外,還集成了更高效加速處理的Tensor Core,進(jìn)一步提升了GPU的加速能力。
FPGA:通過各種硬件編程設(shè)計(jì),實(shí)現(xiàn)各種形態(tài)各種架構(gòu)的計(jì)算引擎。
DSA:計(jì)算有很多領(lǐng)域,每種領(lǐng)域還有很多公司的很多DSA,甚至同一家公司同域但不同代的DSA架構(gòu)也有可能不同。
ASIC:ASIC完全面向特定場景,不同領(lǐng)域的不同場景,都有形態(tài)和架構(gòu)各異的各種ASIC引擎。
這么多的處理器類型,這么多的處理器架構(gòu),造就了算力網(wǎng)絡(luò)計(jì)算資源的多樣性特征。
性能和靈活性是一對矛盾,對單個處理器引擎來說,如果要性能就必須損失靈活性,如果要靈活性必然損失性能。然而,支撐算力網(wǎng)絡(luò)的宏觀計(jì)算系統(tǒng),既要“全面而綜合”,又要“專業(yè)而高效”。怎么辦?
通過CPU、GPU、DSA等多種類型的處理器相互協(xié)作,實(shí)現(xiàn)團(tuán)隊(duì)作戰(zhàn)。每個處理器引擎各司其職,發(fā)揮各自的性能/靈活性優(yōu)勢,從而實(shí)現(xiàn)宏觀意義上的性能和靈活性的兼顧和微觀上的每個處理的高效和高性能。
4.2 算力資源的融合
算力資源的多樣性,其實(shí)也就是算力資源的碎片化,并不是一個好的現(xiàn)象。
4.2.1 算力資源的池化
如果每個處理器核是一個孤島式的計(jì)算資源,那么就沒有意義。算力網(wǎng)絡(luò)的價(jià)值本就在涓涓小溪流匯聚成大海,這是算力網(wǎng)絡(luò)的基礎(chǔ)。這樣,把宏觀的不同云/邊緣數(shù)據(jù)中心、不同終端設(shè)備的計(jì)算資源匯聚在一起,形成算力的統(tǒng)一的大資源池。
網(wǎng)絡(luò)本身更多承擔(dān)的是連接和總線的角色,網(wǎng)絡(luò)設(shè)備中也會有一些計(jì)算和存儲的資源,可以歸屬到計(jì)算或存儲資源類型。
池化雖然可以把不同服務(wù)器不同設(shè)備上的相同計(jì)算資源連成一個資源池,但受限于算力資源的多樣性,不同類型不同架構(gòu)的資源仍然是無法整合到一起的。因此,算力資源的池不是一個,而是很多很多個。比如x86和ARM、RISC-v的CPU資源就無法整合到一個池里;不同廠家的GPU也無法整合到一個資源池里;甚至存儲或網(wǎng)絡(luò)I/O設(shè)備,因?yàn)榻涌诘牟煌?,也可能無法整合到一個資源池;包括各種DSA/FPGA/ASIC,更是無法整合。
當(dāng)有多達(dá)上百個不同類型不同架構(gòu)的資源池的時(shí)候,其實(shí)已經(jīng)弱化了資源池化的價(jià)值。
4.2.2 算力資源的聚合
ChatGPT等AI模型對算力的需求,每2個月翻一倍。如此快速的算力增長,目前只能通過Scale out的方式來提升整個計(jì)算集群的性能。但隨著集群規(guī)模的擴(kuò)展,集群的損耗變得越來越不可承受:集群內(nèi)部東西向的網(wǎng)絡(luò)流量會占到90%以上,真正外部交互的流量只有不到10%。這個現(xiàn)象也符合阿姆達(dá)爾規(guī)律,受限于系統(tǒng)中串行部分的影響,隨著并行計(jì)算的節(jié)點(diǎn)越來越多,通過提升并行數(shù)量來提升系統(tǒng)性能的方式會逐漸遇到瓶頸。
也因此,在Scale out方式無法進(jìn)一步提升系統(tǒng)性能的情況下,提升性能的方式只能通過Scale up。也就是要提升單個計(jì)算節(jié)點(diǎn)的性能。也因此,單個計(jì)算節(jié)點(diǎn)的計(jì)算架構(gòu)需要從現(xiàn)在的異構(gòu)計(jì)算逐步過渡到多個異構(gòu)融合的超異構(gòu)計(jì)算架構(gòu)。
4.2.3 軟件需要跨硬件移動
傳統(tǒng)場景下,軟件通常附著在硬件之上,兩者是綁定的。可以通過如HAL一樣的抽象層來實(shí)現(xiàn)平臺的標(biāo)準(zhǔn)化,然后再部署操作系統(tǒng)和應(yīng)用軟件。而在系統(tǒng)越來越復(fù)雜的情況下,軟件的實(shí)體,如虛擬機(jī)、容器等,需要在不同的硬件上遷移,這就使得軟件和硬件逐漸分開了。
通常來說,可以通過虛擬化實(shí)現(xiàn)硬件架構(gòu)的屏蔽,軟件不需要太多關(guān)注硬件的架構(gòu)和接口。但隨著虛擬化技術(shù)的完全硬件化,硬件的架構(gòu)和接口完全地暴露給了上層的虛擬機(jī)或容器。這就對硬件的架構(gòu)和接口提出了更加嚴(yán)苛的要求。
4.2.4 開放架構(gòu)和生態(tài),讓架構(gòu)收斂
CPU、GPU、AI-DSA等只有單個類型架構(gòu)的處理器,一家公司只做私有的架構(gòu),如果公司的產(chǎn)品成功,那么就可以獨(dú)占整個生態(tài)。這里的成功案例如Intel的x86,NVIDIA的CUDA。
在同構(gòu)和異構(gòu)時(shí)代,這種做法是可能成功的;但到了處理器架構(gòu)非常多的超異構(gòu)時(shí)代,這種做法幾乎不可行。因?yàn)闆]有任何一家公司能做到,在所有的計(jì)算架構(gòu)上都能夠做到最好。并且“百花齊放”的做法,其實(shí)在進(jìn)一步分裂整個計(jì)算生態(tài),與算力網(wǎng)絡(luò)資源池化和云網(wǎng)邊端融合的發(fā)展趨勢相悖。
在超異構(gòu)時(shí)代,唯一能成功的方式是,大家都遵循一定的架構(gòu)規(guī)范,從而形成開放的架構(gòu)和生態(tài),讓計(jì)算的架構(gòu)逐漸收斂,從而能發(fā)揮算力資源池化的優(yōu)勢,真正實(shí)現(xiàn)算力無所不在。