01算力,已經成為先進生產力
當前承載算力的基礎設施是各種規模的的數據中心,從幾十個服務器節點的小規模企業級計算中心到數萬個節點的巨型數據中心,通過云計算的模式對應用層客戶提供存儲、軟件、計算平臺等服務。這個生態直接承載了全球數十萬億美元規模的數字經濟,而且對全球服務業、工業、農業的滲透率隨著大數據、5G、人工智能等技術的發展還在不斷提高。算力,已不僅僅是一個技術指標,它已經成為了先進生產力的代表。
算力源于芯片,通過基礎軟件的有效組織,最終釋放到終端應用上。目前數據中心中核心算力芯片包括CPU、GPU、FPGA和少量的ASIC,其中各類通用CPU的占比還是絕對統治地位。數據顯示目前CPU的年出貨量超過200億顆,其中數據中心中使用的服務器端CPU的出貨量約2000萬顆,PC(包括桌面、工作站等)端約2.6億顆。僅在2020年第4季,全球基于ARM IP的芯片出貨達到了創紀錄的67億顆;GPU的出貨量也非常可觀,超過4億顆(包括Intel、AMD的集成核顯),大部分都應用在各種終端設備中,如大量消費級和工業級電子產品中。在云端,高性能CPU和GPU是主要的兩種算力芯片——也是規模最大,單價最高,應用環境最復雜的芯片。
02負載分化:從存內計算到網內計算,出現大量可從CPU卸載的任務
計算的兩個核心要素:數據和計算,在數據和計算之間通過復雜的存儲層次來均衡帶寬、延遲、容量、成本等因素,盡可能讓計算芯片對數據能做到“隨用隨取”,然而這在物理上是不可能實現的。將數據從生產側或存儲側搬運到計算節點上也需要時間和能耗。為了把數據搬運到完成布爾邏輯的計算單元,已經消耗了90%以上的能耗了。過去50年,乘著摩爾定律的東風,單顆計算芯片的處理性能指數增長,然而訪存帶寬受限于管腳數和時鐘頻率僅能做到線性增長,相對而言數據搬運的開銷被繼續放大了。端到端的延遲越來越難以控制,要把處理器“喂飽”也變得越來越困難。為了不浪費處理器計算容量,只好通過各種共享機制來相互隱藏數據搬運的延遲和開銷——而這本身就是一種開銷。
一個直接的想法就是將數據靠近計算芯片、或者將計算芯片靠近數據,而且是物理臨近。出現了“存內處理(PIM,Process In Memory)”的概念,也稱之為"In-Memory Computing”,存內計算。例如,將一些地址計算,地址轉換,校驗碼計算、查找表等設置在存儲控制器中。但這本質上是卸載了部分CPU負載的計算到內存控制器,其實并沒有把CPU完全“嵌入”內存,但也算是一種間接的存內計算的實現方式。還有一種更依賴新型器件技術的“存算一體”,比如非易失性存儲單元的阻抗(或導納)作為被存數據,當在一端施加輸入數據(電壓),輸出就是二者的乘積,再通過模擬信號處理,模擬-數字轉換后,得到CPU可以處理的二進制數據;當把這些節點組織稱一個陣列,就相當于完成了一次兩個向量的乘累加(MAC)操作。
另外一種存算融合的方式是“近內存計算(Near-Memory Computing)”, 主要體現為放置更多的存儲器件(包括非易失性存儲器件)到片上,可以視為一種通過片上集成大內存作為一級高速緩存,這種方式更多是存儲技術和集成技術來驅動的,比如已經開始采用的高帶寬存儲器(HBM), 得益于3D集成技術,單個存儲堆棧帶寬即可以達到100GB/s,相比于GDDR5的DRAM的28GB/s,有接近4倍的提升!本質上來看,CPU的存儲層次之所以發展為多層、多級,也是為了使處理器更“靠近”數據。
中科馭數SmartNIC產品
這些技術都是局部計算和存儲的融合技術,即以單機、單節點為優化對象。如果把一座數據中心視為一臺計算機,正所謂"The Datacenter as a Computer", 那么計算的分布就有新的可能性。數據中心雖然可以邏輯上被視為一臺計算機,但其中的節點是需要通過網絡互連的。計算的分配、存儲的共享、硬件資源的虛擬化等,都將成為整合數據中心資源的開銷。而數據中心的CPU和GPU都不是針對數據中心的這些負載來設計的,諸如網絡協議處理、存儲壓縮、數據加密。網卡設備在數據中心中起到了關鍵作用。既然網卡可以處理物理層和鏈路層的數據幀,為什么不繼續卸載網絡層和部分應用層的計算到網卡上來呢?所以網卡從只負責節點間的“互連互通”到可以幫助CPU處理一些底層數據處理,其名稱也就從NIC(Network Interface Card)升級成了SmartNIC。網卡也從單純的處理數據幀變成了附帶更多計算業務的“小服務器”,拓展成真正的“網內計算(In- Network Computing)”。
無論是存內計算、近內存計算、還是網內計算、其最終的目的都是將數據所經歷的的存儲、傳輸、計算的環節做有針對性的處理,提升系統的整體效率。
03計算組織:從“端-云”一體,到“端-邊緣-云”一體
為了承載AIoT、自動駕駛、V2X、智慧城市、智能安防等新興產業,計算的組織也有了很多新的變化。從端-云一體,到端-邊緣-云一體,例如未來自動駕駛中,車將會成為邊緣的一個載體;在5G時代,5G基站也可能會成為一個邊緣節點,云計算的部分計算功能會下放到邊緣端的算力節點上,獲得更及時響應時間,更節省的網絡帶寬 。除 了 邊 緣 計 算 , 在 端 - 云 之 間 甚 至 有 研 究 人 員 提 出 了 “ 霧 計 算 (Fog Computing)”,“霾計算(Mist Computing)”,來不斷的將計算進行分層處理,以獲得更好的服務質量,更低的成本。類似于一個國家的行政治理結構:省、市、區、縣等,上級負責所轄的下一級整體規劃,下級負責具體實施;在下一級能處理的業務,就不需要往上一級推送。這樣就可以有序得將計算合理分配到各個計算層次。每個終端業務無須關心是哪一朵“云”在提供服務,也不需要關心有多少層“云”、是“云”還是“霧”在提供服務。計算能力將會像電力一樣,通過端-邊緣-云一體化系統,“輸送”到用戶。至于電來自于哪一座發電站,并不重要。這個計算組織結構的變化,直接影響了計算指標的演變:從高性能到高效能,進而到高通量,最終落實到高生產率計算。
04體系結構:通用、專用并舉孕育了“X”PU的新機遇
目前各類CPU(包括服務器端、桌面端、移動端、工控和各類嵌入式場景等)的年出貨量超過百億顆,全球平均每人都能達到3顆CPU的消費量,基本可以認為CPU已經成為一個泛在的器件。建立在CPU上的軟硬件生態,無論是x86還是ARM,也自然成為了整個算力系統的載體,CPU也責無旁貸地成為了這個體系中的主角。隨著對圖形圖像處理的需求,在上世紀90年代出現了GPU,并逐漸發展到目前的GPGPU。隨著深度學習算法的爆發,GPU找到了除圖像處理之外的施展空間——神經網絡模型的訓練。直至目前,神經網絡訓練都是GPU占絕對統治地位。伴隨著這第四次AI浪潮,GPU的全球領導廠商NVIDIA的市值也在2020年8月一舉超越了X86 CPU的領導廠商Intel,并一騎絕塵。GPU同時也成為了下一代數據中心里算力芯片的又一個重要角色。適逢摩爾定律的放緩,GPU這一領域專用架構(DSA)技術路線下的代表,終于成為成為了數據中心的核心算力芯片之一。DSA這一技術路線已經被業界在大范圍內認可,問題是,下一個DSA的代表是誰?
NVIDIA在2020年公布了對這個問題的看法,他認為在未來,CPU、GPU、DPU將成為數據中心的三個重要算力芯片,這與我們兩年前的看法不謀而合。我們認為,CPU優勢是通用和所承載的復雜的業務生態,其定義了軟件生態和系統的可用性。GPU作為流媒體處理的核心,將繼續朝著AR、VR的方向發展。行業預測在5G時代,90%的數據都將是視頻、圖片等非結構化數據,GPU必將成為這處理這類負載的主要引擎。而DPU,將會成為SmartNIC的下一代核心引擎,將軟件定義網絡,軟件定義存儲,軟件定義加速器融合到一個有機的整體中,解決協議處理,數據安全、算法加速等“CPU做不好,GPU做不了”的計算負載。我們也大膽預測,未來數據中心的算力引擎將出現CPU、GPU和DPU并舉的情景。DPU不僅僅是網卡芯片,而是全面成為“軟件定義硬件”的重點對象。同時,DPU的市場也不會局限在服務器端,也會出現在邊緣端,例如智能駕駛的V2X場景,用于解決實時視頻結構化、傳感器數據融合,和一些消費級的DPU產品,用于在隱私保護等業務上提升終端的用戶體驗。
05DPU如何變革下一代計算基礎設施
DPU是 Data Processing Unit的簡稱。
DPU將作為CPU的卸載引擎,釋放CPU的算力到上層應用。以網絡協議處理為例,要線速處理10G的網絡需要的大約4個Xeon CPU的核,也就是說,單是做網絡數據包處理,就可以占去一個8核高端CPU的一半的算力。如果考慮40G、100G的高速網絡,性能的開銷就更加難以承受了。Amazon把這些開銷都稱之為“Datacenter Tax”——還未運行業務程序,先接入網絡數據就要占去的計算資源。AWS Nitro產品家族旨在將數據中心開銷(為虛機提供遠程資源,加密解密,故障跟蹤,安全策略等服務程序)全部從CPU卸載到Nitro加速卡上,將給上層應用釋放30%的原本用于支付“Tax” 的算力!
DPU將成為新的數據網關,將安全隱私提升到一個新的高度。在網絡環境下,網絡接口是理想的隱私的邊界,但是加密、解密的算法開銷都很大,例如國密標準的非對稱加密算法SM2、哈希算法SM3和對稱分組密碼算法SM4。如果用CPU來處理,就只能做少部分數據量的加密。在未來,隨著區塊鏈承載的業務的逐漸成熟,運行共識算法POW,驗簽等也會消耗掉大量的CPU算力。而這些都可以通過將其固化在DPU中來實現,甚至DPU將成為一個可信根。
DPU將成為存儲的入口,將分布式的存儲和遠程訪問本地化。隨著SSD性價比逐漸變得可接受,部分存儲遷移到SSD器件上已經成為可能,傳統的面向機械硬盤的SATA協議并不適用于SSD存儲,所以,將SSD通過本地PCIE或高速網絡接入系統就成為必選的技術路線。NVMe(Non Volatile Memory Express)就是用于接入SSD存儲的高速接口標準協議,可以通過PCIe作為底層傳輸協議,將SSD的帶寬優勢充分發揮出來。同時,在分布式系統中,還可通過NVMe over Fabric協議擴展到InfiniBand、或TCP互連的節點中,實現存儲的共享和遠程訪問。這些新的協議處理都可以集成在DPU中來實現對CPU的透明處理。進而,DPU將可能承接各種互連協議控制器的角色,在靈活性和性能方面達到一個更優的平衡點。
DPU將成為算法加速的沙盒,成為最靈活的加速器載體。DPU不完全是一顆固化的ASIC,在CXL, CCIX等標準組織所倡導CPU、GPU與DPU等數據一致性訪問協議的鋪墊下,將更進一步掃清DPU編程障礙,結合FPGA等可編程器件,可定制硬件將有更大的發揮空間,“軟件硬件化”將成為常態,異構計算的潛能將因各種DPU的普及而徹底發揮出來。在出現“Killer Application”的領域都有可能出現與之相對應的DPU,諸如傳統數據庫應用如OLAP、OLTP, 或新興應用如智能駕駛等。
06中科馭數的DPU方案:KPU1+KPU2+......=DPU
鑒于以上的認知,中科馭數在這條賽道上已經布局。馭數采取了以算法加速為核心,以網絡加速為切入點的策略,以清晰的行業應用為驅動,做直接面向應用的DPU。先單點打通,再按需擴展的策略。
現有的DPU大體上有兩種類型:1)以通用眾核為基礎的同構眾核DPU,類似早期以處理數據包為目的的網絡處理器,例如Broadcom的的Stingray架構,以多核ARM為核心,以眾取勝。得益于通用處理器核(絕大部分都是ARM系列),可編程性比較好,但是應用的針對性不夠,對于特殊算法和應用的支持相對于通用CPU沒有優勢。2)以專用核為基礎,構建異構核陣列。這種結構針對性強,性能最好,但犧牲了部分靈活性。現有的最新的產品趨勢都是二者的折中,而且專用核的比重越來越來大,NVIDIA最新的BlueField2系列DPU的結構就包括4個ARM核再加多個專用加速核區域,Fungible的DPU包含52個MIPS小型通用核,但還包含6個大類的專用核。
中科馭數的DPU是以KPU為運算核心,以高速傳輸和存儲總結為接口,弱通用化控制的數據面領域專用處理器。
馭數K2系列DPU架構
上圖展示了馭數DPU的頂層結構,其核心是四類KPU的異構核陣列,分別處理網絡協議,OLAP\OLTP處理,機器學習和安全加密運算核。不同于Broadcom,Fungible等廠商,我們將重點放在了異構核上,即以針對性算法加速為核心,馭數提出了KPU架構,來組織異構核。在KPU架構下,馭數提出了完善的L2/ L3/L4層的網絡協議處理,提出了直接面向OLAP、OLTP的數據查詢處理核,而沒有采用原來眾核為主的架構。這一路線與NVIDIA的技術路線更接近,但更加側重異構核的使用。看似犧牲了部分通用核的可編程性,但換來的是更高效的處理效率,更直接的使用接口,更瘦的運行時系統和更佳的虛擬化支持。一個理想的DPU必然不像CPU,才有可能與CPU更好的互補。通用的計算不應該、也不需要卸載到DPU上,而可卸載到DPU上的負載必然也不需要在基礎算子層面來進行運算控制。
馭數超低時延NVMeOver TCP Host端加速卡架構圖
中科馭數的DPU頂層架構支撐了馭數其中一條重要產品線:SWIFT系列的網絡加速卡。SWIFT?-2000M是中科馭數KPU-SWIFT?網絡加速產品系列中一款超低時延NVMe Over TCP網絡端加速卡,基于中科馭數KPU架構和自主研發的全硬件TCP/IP協議簇解決方案,它集成了完整的TCP、UDP、ARP、ICMP和IP等協議處理模塊,配套馭數的高性能PCIe驅動和NVMe協議的軟件接口適配,從而實現NVMe over TCP的網絡 端全功能極速系統。SWIFT?-2000M集成了豐富的系統運行狀態監測功能,擁有硬件處理的TCP包傳輸、數據重傳、亂序重排、ping等完備的功能,解決10G/100G高速NVMe-oF場景下網絡協議處理CPU資源占用過高、解析過慢的痛點,大幅提升系統吞吐,優化遠端存儲訪問效率。
中科馭數首顆芯片于2019年成功流片
07未來展望:構建專用處理器系統結構的幾個關鍵點
專用處理器與通用處理器是處理器發展的兩個互補的方向,雖然單獨一類專用處理器的市場要遠小于通用處理器,但是多類專用處理器的市場總和將遠遠大于通用處理器的市場。而且,專用處理器的發展將會在很多增量的應用市場中占有絕對的性能優勢,而受到的通用計算的生態限制更少,有利于專用架構逐步擴展去覆蓋更長尾端的應用。
在過去處理器芯片發展的60年里,前50年都是通用處理器的發展以絕對優勢占據了處理器芯片的市場份額,相信在接下來的30年,隨著數據的爆發和“端云一體”這種計算范式的繼續滲透,將形成通用處理器與專用處理器并行的新局面,在2020年7月的COMMUNICATIONS OF THE ACM中,有一篇文章提出了一個新概念:“ASIC Clouds”, 全文標題是“ASICClouds: Specializing the Datacenterfor Planet-Scale Applications”,這里的“ASIC”其實就是各種專用處理器的呈現形式,我們相信專用處理器將迎來空前的增長機遇。
我們認為構建專用處理器系統結構有以下幾個關鍵點:
▲ 針對“數據平面”的計算架構
專用計算體系結構和通用計算體系結構的陣地是不同的,專用計算競爭的焦點是數據平面,而通用計算競爭的焦點是控制平面。專用計算好比是造賽車,目標就是快,重點是根據賽道的類型來決定賽車的結構;通用計算好比是造民用車,目標更加的多元化,不僅要兼顧不同路況下的可用性,還要考慮性價比、代際兼容性。所以,以通用CPU的標準來看待專用XPU可能并不合適,甚至會制約了專用處理器的發展。
▲融合創新技術
計算架構的范疇不僅僅是狹義的處理器芯片,還包括相應的存儲、傳輸、集成工藝等,是一個系統性概念。專用計算由于其“專用”的屬性,對融合新技術更有優勢,例如,引入高速非易失性存儲(NVMe),利用 “NVMe oF”技術構建更高效的分布式存儲系統;將主機內存直接連接在PCIe設備端,建立更大、更快的遠程直接內存訪問(RDMA);集成HBM支持更大的片上數據集,更高效的數據平面操作;將神經網絡計算融入網內計算,透明賦能需要推理的場景。
▲面向的領域專用描述語言
應用都是可以進行無二意性的語言進行描述的,專用計算也不例外。對應用的描述層是專用計算架構的邊界:描述層之上是客戶的實際應用程序,描述層之下都是專用計算系統涉及定制的部分。整個系統的參考邊界由傳統ISA(指令集)上升到了DSL(Domain-specific Language)。例如,P4編程語言是面向SDN的領域專用語言,專門用于定義路由器和交換機如何轉發數據包,屬于數據平面的編程語言。至于網絡處理器是用ARM還是MIPS,或是X86并不重要。現在的深度學習框架例如TensorFlow,其實也是提供了一整套定義深度學習模型結構、描述模型訓練方法的DSL;還有面向數據庫的SQL,本身就是一種聲明式(Declaritive)的DSL編程語言,有望成為新專用處理器設計的參考邊界。
▲先垂直深耕,再水平擴展
對于專用計算架構業界的一個普遍的共識是“碎片化”問題,挑戰“one-size-fitall”的ASIC商業模式。傳統上認為碎片化意味著單個產品線難以上量,難以攤薄芯片研發的巨額一次性投入,即所謂的高昂的NRE成本。一個有商業價值的技術必須建立在“技術閉環”的基礎上:研發、使用、反饋、再研發改進、再擴大使用范圍……。技術只有投入使用才能體現價值,有使用價值才有可能商業化,才能完成技術閉環到商業閉環的進化。技術閉環的形成需要集中火力,全鏈條主動出擊才能鋪就。碎片化并不是“專用”障礙,反而應該是專用技術路線充分利用的優勢。(END)
發布評論請先 登錄
中科馭數攜DPU全棧產品亮相福州數博會,賦能智算時代算力基建

大算力芯片的生態突圍與算力革命
DeepSeek對芯片算力的影響


評論