數(shù)據(jù)中心已經(jīng)從物理服務(wù)器發(fā)展到虛擬化系統(tǒng),現(xiàn)在發(fā)展到可組合的基礎(chǔ)設(shè)施,而在這些基礎(chǔ)設(shè)施中,諸如存儲(chǔ)和持久性?xún)?nèi)存之類(lèi)的資源已從服務(wù)器中分離出來(lái)。與此同時(shí),數(shù)據(jù)處理已經(jīng)從僅在CPU上運(yùn)行演變?yōu)樵贕PU、DPU或FPGA上運(yùn)行,以進(jìn)行數(shù)據(jù)處理和聯(lián)網(wǎng)任務(wù)的加速計(jì)算。同樣,軟件開(kāi)發(fā)模型已經(jīng)從單臺(tái)計(jì)算機(jī)上運(yùn)行的程序演變?yōu)樵跀?shù)據(jù)中心上運(yùn)行的分布式代碼,這些代碼已實(shí)現(xiàn)為云原生的、容器化的微服務(wù)。
在這個(gè)新世界中,開(kāi)發(fā)人員需要一個(gè)可編程的數(shù)據(jù)中心結(jié)構(gòu)來(lái)組合各種處理器類(lèi)型和資源,以構(gòu)建組織完成任務(wù)所需的平臺(tái)。
數(shù)據(jù)中心的第一個(gè)時(shí)代是以CPU為中心和靜態(tài)的數(shù)據(jù)中心,通常是在一臺(tái)計(jì)算機(jī)上運(yùn)行一個(gè)應(yīng)用程序。軟件在CPU上運(yùn)行,程序員開(kāi)發(fā)的代碼只能在一臺(tái)計(jì)算機(jī)上運(yùn)行。由于資源分配是靜態(tài)的,因此服務(wù)器通常配置過(guò)多且未充分利用。
在數(shù)據(jù)中心的第二個(gè)時(shí)代,虛擬化成為常態(tài),每臺(tái)服務(wù)器上都在運(yùn)行許多虛擬機(jī)。其資源是動(dòng)態(tài)的,虛擬機(jī)是按需創(chuàng)建的。當(dāng)需要更多CPU、內(nèi)存或存儲(chǔ)時(shí),可以將工作負(fù)載遷移到不同服務(wù)器上的虛擬機(jī)。
其計(jì)算處理仍然主要由CPU執(zhí)行,僅偶爾使用GPU或FPGA來(lái)加速特定任務(wù)。幾乎所有內(nèi)容都在軟件中運(yùn)行,并且應(yīng)用程序開(kāi)發(fā)人員仍然大部分時(shí)間只能在一臺(tái)計(jì)算機(jī)上進(jìn)行編程。第二個(gè)時(shí)代的數(shù)據(jù)中心仍然以CPU為中心,只是偶爾會(huì)加速運(yùn)行。
數(shù)據(jù)中心就是計(jì)算機(jī)
如今,正在進(jìn)入數(shù)據(jù)中心的第三個(gè)時(shí)代,人們稱(chēng)之為加速分解基礎(chǔ)設(shè)施(ADI),它建立在可組合基礎(chǔ)設(shè)施、微服務(wù)和特定領(lǐng)域處理器的基礎(chǔ)上。
以下分別討論這些重要元素:
·加速:根據(jù)最佳選擇,不同的處理器可以加速不同的工作負(fù)載。CPU運(yùn)行通用的單線程工作負(fù)載,GPU并行處理工作負(fù)載,數(shù)據(jù)處理單元(DPU)管理數(shù)據(jù)的處理和低延遲移動(dòng),以使CPU和GPU高效地獲得所需的數(shù)據(jù)。例如,CPU可以運(yùn)行數(shù)據(jù)庫(kù),GPU可以進(jìn)行人工智能(AI)和視頻處理,而DPU可以快速、高效、安全地將正確??的數(shù)據(jù)交付到需要的地方。
GPU加速的人工智能和機(jī)器學(xué)習(xí)現(xiàn)在被廣泛使用:用于改善網(wǎng)上購(gòu)物、5G無(wú)線、醫(yī)療研究、安全、軟件開(kāi)發(fā)、視頻處理,甚至數(shù)據(jù)中心運(yùn)營(yíng)。云計(jì)算、容器以及合規(guī)性問(wèn)題的快速增長(zhǎng)要求DPU加快網(wǎng)絡(luò)、存儲(chǔ)訪問(wèn)和安全性。
·分解:將計(jì)算、內(nèi)存、存儲(chǔ)和其他資源分成多個(gè)池,并以適當(dāng)?shù)臄?shù)量動(dòng)態(tài)分配給服務(wù)器和應(yīng)用程序。應(yīng)用程序本身通常是由交互微服務(wù)構(gòu)建的,而不是作為一個(gè)整體的代碼塊構(gòu)建的。這樣可以更輕松地以正確的資源比例編寫(xiě)應(yīng)用程序,并根據(jù)需要更改該比例。
使用加速分解基礎(chǔ)設(shè)施(ADI)模型,GPU、DPU和存儲(chǔ)可根據(jù)需要連接到任何服務(wù)器、應(yīng)用程序或虛擬機(jī)。使用Nvidia公司的GPUDirect和Magnum IO等技術(shù),可使CPU和GPU在網(wǎng)絡(luò)上相互訪問(wèn)和存儲(chǔ),其性能幾乎都與同一臺(tái)服務(wù)器相同。可以將正確數(shù)量和類(lèi)型的GPU分配給需要它們的工作負(fù)載。每臺(tái)服務(wù)器中的DPU管理和加速常見(jiàn)的網(wǎng)絡(luò)、存儲(chǔ)、安全性、壓縮以及深度數(shù)據(jù)包檢查任務(wù),以保持?jǐn)?shù)據(jù)的快速和安全移動(dòng),而不會(huì)給CPU或GPU造成負(fù)擔(dān)。
采用加速分解基礎(chǔ)設(shè)施(ADI),數(shù)據(jù)中心是計(jì)算的新單元——由GPU和DPU完全可組合和加速。
要對(duì)數(shù)據(jù)中心進(jìn)行編程,必須對(duì)網(wǎng)絡(luò)進(jìn)行編程
采用加速分解基礎(chǔ)設(shè)施(ADI),數(shù)據(jù)中心是計(jì)算的新單元,而網(wǎng)絡(luò)結(jié)構(gòu)提供了一個(gè)靈活、自動(dòng)化的編程框架,可以動(dòng)態(tài)地組成工作負(fù)載資源。這意味著不僅要對(duì)CPU、GPU和DPU進(jìn)行編程,還要對(duì)網(wǎng)絡(luò)結(jié)構(gòu)本身進(jìn)行編程——將DevOps的優(yōu)勢(shì)擴(kuò)展到網(wǎng)絡(luò)中,這種方法稱(chēng)為“基礎(chǔ)設(shè)施即代碼”。
該結(jié)構(gòu)必須可編程、可擴(kuò)展、快速、開(kāi)放、功能豐富、自動(dòng)化友好和安全。它必須在CPU、GPU和存儲(chǔ)之間提供多條高帶寬路徑,并具有對(duì)流量類(lèi)別進(jìn)行優(yōu)先級(jí)排序的能力。借助在Spectrum交換機(jī)上運(yùn)行的Cumulus Linux和SONiC以及基于BlueField的DPU,Nvidia公司提供了一流的端到端光纖解決方案,可以在整個(gè)數(shù)據(jù)中心堆棧上進(jìn)行優(yōu)化的編程。這些解決方案(當(dāng)然還有許多由Nvidia GPU支持的平臺(tái)和軟件框架)可為客戶(hù)提供出色水平的數(shù)據(jù)中心性能、靈活性、可組合性、可編程性,從而支持Nvidia公司聯(lián)合創(chuàng)始人兼首席執(zhí)行官黃仁勛的發(fā)展愿景。數(shù)據(jù)中心是計(jì)算的新單元,在Nvidia公司完成對(duì)Mellanox Technologies的收購(gòu)并計(jì)劃收購(gòu)Cumulus Networks的過(guò)程中,對(duì)此進(jìn)行了詳細(xì)討論。
使用加速分解基礎(chǔ)設(shè)施(ADI),每個(gè)應(yīng)用程序都可以在由CPU、GPU和存儲(chǔ)資源構(gòu)建的虛擬服務(wù)器上運(yùn)行,并且DPU可以加快訪問(wèn)和安全性。
開(kāi)放式網(wǎng)絡(luò)操作系統(tǒng)支持分解基礎(chǔ)設(shè)施
傳統(tǒng)上,交換機(jī)被設(shè)計(jì)為專(zhuān)有的“黑盒”,其中網(wǎng)絡(luò)操作系統(tǒng)(NOS)鎖定在特定的交換機(jī)硬件平臺(tái)上,要求客戶(hù)購(gòu)買(mǎi)并將其部署在一起。
Nvidia公司的方法是提供最佳的開(kāi)放式端到端解決方案。客戶(hù)可以使用具有最佳交換機(jī)ASIC(頻譜)的交換機(jī),并選擇滿足其需求的最佳網(wǎng)絡(luò)操作系統(tǒng)(NOS):Cumulus Linux、Mellanox Ony、SONiC或其他??蛻?hù)甚至可以選擇在骨干交換機(jī)上運(yùn)行SONiC,而在機(jī)架式和園區(qū)交換機(jī)上使用Cumulus Linux。與此同時(shí),Nvidia公司出售電纜和收發(fā)器,并且不會(huì)鎖定客戶(hù),允許他們根據(jù)需要采購(gòu)其他電纜和光學(xué)器件。
與專(zhuān)有的閉合交換機(jī)模型不同,開(kāi)放式網(wǎng)絡(luò)允許客戶(hù)從最佳的軟件和硬件中選擇,以獲得他們所需的正確功能、性能和可管理性。
現(xiàn)在,人工智能、云計(jì)算和HPC工作負(fù)載可以通過(guò)最佳資源(包括GPU、CPU、DPU、內(nèi)存、存儲(chǔ)和高速連接)靈活地跨整個(gè)數(shù)據(jù)中心的任何部分運(yùn)行。對(duì)于這種加速的彈性計(jì)算的需求,而在過(guò)去,由于每臺(tái)服務(wù)器都有自己專(zhuān)用的、孤立的資源,應(yīng)用程序開(kāi)發(fā)人員只能在單臺(tái)服務(wù)器上編寫(xiě)程序。