過去十年,全球迎來一場AI革命,人工智能在各行各業(yè)引發(fā)了顛覆性的變革。在機器學習、深度學習、大規(guī)模語言模型等AI能力的加持下,自動駕駛、生物醫(yī)藥、行業(yè)大模型、智算中心等行業(yè)和領(lǐng)域正迎來百萬倍的效率飛躍。而這一切的背后,離不開加速計算。
在昨日舉行的“2022 百度云智峰會·智算峰會”上,NVIDIA亞太區(qū)開發(fā)與技術(shù)部總經(jīng)理李曦鵬分享了以“加速計算助力智能云深入產(chǎn)業(yè)”為題的演講,介紹了NVIDIA在加速計算領(lǐng)域的思考及洞見,包括NVIDIA如何與客戶一起探索互聯(lián)網(wǎng)行業(yè)的加速計算解決方案,實現(xiàn)端到端的極致性能優(yōu)化,以及加速計算可以如何助力云深入到行業(yè)。以下為內(nèi)容概要。
10年100倍,加速計算價值千億的巨大空間
我們首先看一下加速計算,以及各種計算任務(wù)(workload)如何上云。
對于一個現(xiàn)代的加速計算集群,這個集群可以是云上的一個高性能集群,也可以是客戶自建的一個加速計算集群。它們需要去承擔非常多種類的計算任務(wù),從AI任務(wù)到simulation(模擬或仿真),以及二者的組合Sim+AI,或者AI for Science,再到目前最火爆的數(shù)字孿生、量子計算等。大家可以看到,加速計算集群需要去支撐的計算任務(wù)非常豐富,實際上,這里還有大量,類似于數(shù)據(jù)處理、云端渲染、信息召回,數(shù)據(jù)庫等也同樣需要去加速的計算任務(wù)沒有羅列出來。
大家可能會說,上面的這些計算任務(wù)是一個數(shù)據(jù)中心的典型應(yīng)用,為什么要說是加速計算集群的典型應(yīng)用呢?過去幾十年間,得益于摩爾定律,算力在持續(xù)增長。但如今摩爾定律已經(jīng)放緩,從最初每年1.5-1.6倍性能的提升,下降到如今每年1.1倍左右的提升。與此同時,加速計算卻依然保持著每年1.6x以上的性能增速。五年可以實現(xiàn)10倍的性能提升,十年就可以實現(xiàn)100倍的提升,這與摩爾定律十年可以實現(xiàn)的4倍性能提升形成了顯著的差異。
另一個方面,碳足跡、能源消耗,以及機房空間等各個因素,都制約了傳統(tǒng)計算的規(guī)模擴大。如果大家看一下使用了加速計算的Green 500前30的超級計算機,它們的平均效能比是其他超級計算機的7倍多。這不但帶來了能源的節(jié)省,也同時帶來了更低的成本,使得我們的計算任務(wù),特別是以AI為代表的計算任務(wù)可以不斷地持續(xù)增加。
針對AI部分,和大家通常理解的只是模型訓(xùn)練和預(yù)測不同,NVIDIA一方面需要對整個工作流提供端到端的加速,另外,也需要通過對不同部分的模塊化,普惠到更多企業(yè)和終端用戶。NVIDIA在這方面一直引領(lǐng)業(yè)界,我們也提供了從基礎(chǔ)設(shè)施、調(diào)度、加速庫、加速框架、部署工具,一直到最上層的應(yīng)用框架的全套解決方案,也就是PPT中所展示的NVIDIA AI平臺軟件NVIDIA AI Enterprise。這里我就不具體展開,只是舉一個例子。
我們以典型的AI模型端到端流程,介紹NVIDIA能提供什么支持。通常我們看到的,其實是圖中中間的兩個步驟,訓(xùn)練和預(yù)測,還有部分人在預(yù)測的時候也會簡單使用框架進行預(yù)測。但是實際上,問題比這個復(fù)雜很多。
首先我們需要去做數(shù)據(jù)預(yù)處理,這里NVIDIA提供了RAPIDS (針對結(jié)構(gòu)化的數(shù)據(jù)),CV-CUDA(針對圖片數(shù)據(jù))等各種解決方案。
數(shù)據(jù)預(yù)處理的一個難點,需要做到訓(xùn)練預(yù)測的一致性,減少調(diào)試過程。處理好的數(shù)據(jù)需要喂給模型訓(xùn)練,模型訓(xùn)練企業(yè)用戶可以選用不同的框架。NVIDIA加速了PyTorch、TensorFlow、JAX,還有國內(nèi)越來越流行的PaddlePaddle等框架。同時,也有TAO Toolkit來做遷移學習。
這里的一個難點是,需要做好數(shù)據(jù)預(yù)處理和訓(xùn)練的流水,避免頻繁的數(shù)據(jù)搬運。有了模型之后,我們需要做預(yù)測優(yōu)化。TensorRT是現(xiàn)在精度最高、速度最快的深度學習推理優(yōu)化器,NVIDIA也在不斷提高它的性能,并與各個深度學習框架集成,降低使用門檻。有了加速預(yù)測的模型后,我們可以使用Triton來進行大規(guī)模的部署。而實際使用中采集到的新數(shù)據(jù),又可以用于訓(xùn)練。如果我們只是加速其中一部份,是沒有辦法達到模型的快速迭代,和實現(xiàn)整體性能的成倍提升,因此我們強調(diào)端到端的優(yōu)化。
剛才我們以AI為例,講到了AI 類的計算任務(wù)如何可以被加速。但是實際上,目前世界上只有5%的計算任務(wù)被加速,這已經(jīng)是幾百億美金的市場。
未來十年,所有的計算任務(wù)都將被加速,包括現(xiàn)有的以及十倍于現(xiàn)階段的新計算任務(wù)!這將為加速計算市場帶來100倍的增長空間!
NVIDIA在加速計算的探索與經(jīng)驗
大家可能會覺得,NVIDIA真是高瞻遠矚,早早落子各個行業(yè)的加速計算方案。但是實際上,今天大家看到的解決方案,都是NVIDIA基于客戶的實際需求,與客戶深入合作出來的。下面,我們用大家最為熟悉的互聯(lián)網(wǎng)行業(yè)作為例子,介紹NVIDIA如何與客戶一起,打造行業(yè)的加速計算解決方案。
這一頁對我們理解加速計算的價值非常重要,因為,加速計算的特點,決定了我們的工作方式。首先,加速計算對于應(yīng)用來說,可以帶來數(shù)量級的性能提升,加速與沒加速的應(yīng)用,性能可能相差幾十倍甚至幾百倍。
第二,底層的庫,例如矩陣計算、快速傅立葉變換、排序、向量操作等,它有一定的普適性,但是上層的應(yīng)用通常有特異性,并非所有的優(yōu)化策略都可以自然而然地帶來上層應(yīng)用的優(yōu)化。這里沒有一個一勞永逸的方法。我們常常聽到一些加速計算初學者說自己使用了這樣或者那樣的優(yōu)化方法,為什么性能并不明顯?因為,我們的優(yōu)化應(yīng)該是應(yīng)用導(dǎo)向,Profiling導(dǎo)向。
第三,根據(jù)Amdahl’s law,一個計算任務(wù)里面只有盡可能多的環(huán)節(jié)被加速才能帶來性能的大幅提升。舉個極端例子,如果一個計算任務(wù),只有一半的部分被加速了,即使加速速度達到1000x,整個計算任務(wù)的加速上限也只有2x。因為上層應(yīng)用的特異性,需要對整個工作流進行優(yōu)化。而優(yōu)化帶來的巨大收益,我們需要更多地進行軟硬協(xié)同的設(shè)計。所以,AI/HPC的核心是加速計算,而加速計算的核心是優(yōu)化,優(yōu)化,端到端的優(yōu)化!這需要,業(yè)務(wù)、算法、工程人員和優(yōu)化工程師的密切配合。這也是我今天最重要的一頁PPT。
下面,我們以推薦系統(tǒng),這個互聯(lián)網(wǎng)最重要的應(yīng)用為例,介紹NVIDIA如何與客戶一起,打造行業(yè)的加速計算解決方案。
目前NVIDIA在推薦系統(tǒng)方面已經(jīng)擁有了全鏈路的解決方案和產(chǎn)品。但是幾年前,我們最早和百度合作的時候還不是這個樣子。
大家可以看到,最著名的wide & deep模型是Google團隊在2016年推出的,NVIDIA和行業(yè)客戶的深入合作則從2018年開始。在一開始,我們就針對NVIDIA的DGX高性能服務(wù)器來重新設(shè)計了推薦系統(tǒng)的訓(xùn)練方法和數(shù)據(jù)分布方式,并且后續(xù)的軟件、硬件演化都是在此基礎(chǔ)上不斷去解決新遇到的技術(shù)瓶頸。
我們在一開始就是希望去解決TB級別以上的推薦系統(tǒng)的模型。在這個過程中的一些重要節(jié)點包括:NVIDIA Merlin的推出、DLRM進入MLPerf、Merlin-HugeCTR將DLRM的訓(xùn)練時間推進到1分鐘以內(nèi)、Big-ANN-Benchmark將技術(shù)點從排序部分拓展到召回部分等等。另外,今年3月份推出的NVIDIA Grace Hopper SuperChip,更近一步推進了推薦系統(tǒng)的進化。這是一個軟硬協(xié)同設(shè)計、軟件適配硬件,應(yīng)用和軟件反過來推進硬件架構(gòu)革新的典型例子。
我們再來看一下推薦系統(tǒng)技術(shù)架構(gòu)路線及其架構(gòu)的演化。大家注意,軟件架構(gòu)與硬件架構(gòu)的演進是和應(yīng)用本身的發(fā)展息息相關(guān),兩者是相輔相成的。軟硬件架構(gòu)的演進為應(yīng)用和算法的演進提供了可能性,而應(yīng)用和算法的演進也對軟硬件架構(gòu)提出了新的要求。因此,我們稱之為co-design。
我們回到這頁PPT,從最左邊看,是在沒有深度學習時期的推薦系統(tǒng),例如傳統(tǒng)的矩陣分解,協(xié)同過濾等。這個階段對于算力的要求其實并不高,因此通常直接采用CPU的方案。
而到了一些淺層DNN的引入,計算量有了適當增加,embedding大小也持續(xù)增加,大家出于慣性,還是喜歡直接使用CPU。但是很自然,這樣的性能會受到節(jié)點間通信帶寬的限制,也就是再增加服務(wù)器的數(shù)目,對于提高計算速度沒有幫助。這個時候大家就想,我是不是應(yīng)該做加速計算?
而企業(yè)用戶很自然第一步,把DNN部分移到GPU上,這是因為,一,這部分算力最大;另外,二,例如TensorFlow等深度學習工具,針對這一部分已經(jīng)提供了很好的支持。更進一步,隨著DNN部分的加速,大家會發(fā)現(xiàn)瓶頸開始往embedding和CPU-GPU之間的通信轉(zhuǎn)移,也就是CPU的內(nèi)存帶寬和PCIe的帶寬成為了新的瓶頸。
這個時候,下一代的技術(shù)演變就出現(xiàn)了,也就是把embedding table也進行GPU加速,這里解決了兩個問題,一個是內(nèi)存帶寬,GPU 的內(nèi)存帶寬高達2T~3TB/s,遠遠高于系統(tǒng)的內(nèi)存帶寬。另外,把embedding table移到GPU上,將CPU GPU之間通過PCIe的通信變?yōu)镚PU GPU之間NVLink的通信,這部分通信速度也得到了成倍的提高。這就有了NVIDIA的全GPU解決方案。
更進一步,因為embedding數(shù)據(jù)天然存在冷熱分布,因此可以利用系統(tǒng)內(nèi)存進一步提升模型大小,同時保持訓(xùn)練速度,這個時候,NVIDIA的Grace Hopper、CPU和GPU之間的高速C2C互聯(lián)就起到了幫助。
我們觀察到,幾乎所有的重點客戶都已經(jīng)遷移到CPU+GPU的混合部署,而頭部客戶都有重點業(yè)務(wù)遷移到純GPU方案上,而業(yè)界領(lǐng)先的幾家公司都有在調(diào)研和開發(fā)Grace Hopper的統(tǒng)一架構(gòu)。這是一個清晰的發(fā)展趨勢,各個公司有快有慢,但是加速計算的潮流是無法阻擋的。
對NVIDIA而言,推薦系統(tǒng)是一個完全誕生于中國、推廣到全世界的全新計算任務(wù)。在這個過程中,NVIDIA的經(jīng)驗是,立足于客戶真正有價值的難題,和客戶一起攻堅,實現(xiàn)端到端的性能優(yōu)化!
以推薦系統(tǒng)為例,NVIDIA的技術(shù)增長飛輪是從解決模型推理線上時延的問題,通過優(yōu)化,實現(xiàn)了幾十倍的性能提升,從而給廣告業(yè)務(wù)帶來顯著的收入提升,進一步推動了更多的模型研發(fā),更復(fù)雜的模型開始向 GPU 遷移,最后,引導(dǎo)整個工作流向GPU的遷移。
通過一個個關(guān)鍵難題的解決,客戶的更多計算任務(wù)在 GPU 上實現(xiàn)了性能加速,同時NVIDIA也沉淀出了Merlin 這樣的產(chǎn)品來降低推薦系統(tǒng)的進入門檻,擴大了用戶群體,帶動新一輪的需求產(chǎn)生。這便是我們業(yè)務(wù)增長的邏輯!
NVIDIA非常關(guān)注客戶計算任務(wù)中最關(guān)鍵的問題,和客戶一起工作,一起為了端到端的極致優(yōu)化。可以說,加速計算的本質(zhì)就是實現(xiàn)性能極致優(yōu)化。而能實現(xiàn)這一點,除了NVIDIA帶來全棧計算能力之外,更重要的是我們有一批優(yōu)秀的優(yōu)化工程師,這是我們的核心生產(chǎn)力。
加速計算助力智能云深入產(chǎn)業(yè)
我們剛才看了一個互聯(lián)網(wǎng)的典型應(yīng)用,推薦系統(tǒng)。下面,我們來討論下,加速計算如何可以助力云深入到行業(yè)、產(chǎn)業(yè)。
以自動駕駛行業(yè)為例,看看NVIDIA可以做些什么,讓技術(shù)飛輪轉(zhuǎn)動起來。自動駕駛是一個巨大的行業(yè),麥肯錫的報告稱其產(chǎn)業(yè)規(guī)??蛇_8,660億美金。而行業(yè)的玩家也非常需要技術(shù)賦能,特別是基于AI的技術(shù)賦能。大家想到自動駕駛行業(yè),首先想到的還是車上的設(shè)備,比如多少個雷達,多少個攝像頭,用的什么芯片。其實這個行業(yè)遠遠不止這樣。
我們換個角度,從業(yè)務(wù)的端到端來看,從自動駕駛汽車的設(shè)計、工程、仿真、制造、到銷售、服務(wù),都存在著大量的計算任務(wù)需要去發(fā)掘和構(gòu)建。這里面的計算任務(wù)包括AI的計算任務(wù)、HPC的計算任務(wù)、數(shù)據(jù)科學的計算任務(wù),還有數(shù)字孿生所帶來的各種機會。
這一切,誰最懂?我們的客戶應(yīng)該最懂自己的需求。當然,也有很多客戶,還沒有能將自己的需求和加速計算連接起來。而這個行業(yè)的解決方案,還有很多空白和等待我們?nèi)グl(fā)掘的地方。這就需要NVIDIA、百度智能云,一起深入到客戶一線,和客戶一起分析他們的計算任務(wù),一起共創(chuàng),找到真正關(guān)鍵的、有價值的計算任務(wù),利用云設(shè)施、云服務(wù),構(gòu)建基于加速計算的解決方案,并通過優(yōu)化好這些計算任務(wù),實現(xiàn)業(yè)務(wù)價值,從而推動更多的需求。
再舉一個例子,比如未來自動駕駛汽車的設(shè)計,也是一個充滿想象力的領(lǐng)域。這里面需要大量的計算機輔助工程(CAE)。比如,基于流體力學的外型設(shè)計、基于材料力學和結(jié)構(gòu)力學的整車強度分析、基于熱物理的電池熱管理模擬、雷達天線方位和覆蓋范圍模擬等。這些都是典型的HPC應(yīng)用,更快的模擬速度、更低的模擬成本,可以加大設(shè)計的選擇空間和加快效果的驗證。
目前,GPU已經(jīng)支持了主流的120多個CAE應(yīng)用,單就計算流體力學(CFD)部分,已經(jīng)可以帶來7x的成本節(jié)省和4x的電力消耗下降。并且,CFD也是AI for Science快速發(fā)展的領(lǐng)域,NVIDIA的Modulus,百度的Paddle AI+Science科學開發(fā)套件,都可以進一步加速CFD這一領(lǐng)域。
未來,汽車外型的氣動設(shè)計可以變成一個自動化的過程,會不會有更多優(yōu)秀的氣動外形的車問世?這將是一個讓人充滿遐想的領(lǐng)域。注意,這還只是整個產(chǎn)業(yè)鏈中,設(shè)計環(huán)節(jié)中CAE的一個例子而已。因此,在我看來,未來利用云設(shè)施、云服務(wù),構(gòu)建基于加速計算的解決方案,大有可為!
最后,我想重新展示這張技術(shù)飛輪,和NVIDIA創(chuàng)始人兼首席執(zhí)行官黃仁勛今年10月份對于加速計算的判斷,作為分享的結(jié)束頁。
這個世界需要加速計算,需要云,需要NVIDIA和百度智能云,一起深入客戶一線,一起發(fā)現(xiàn)、優(yōu)化,加速最重要的計算任務(wù),需要業(yè)務(wù)、工程、優(yōu)化工程師的緊密合作!