AI芯片的另一條路

來源:半導體行業觀察

在先進工藝和架構的協同下,芯片的性能在過去幾年獲得了爆發性的增長,尤其是在最近幾年火熱的人工智能行業,這個取得的成就是有目共睹的。

據OpenAI在2018年年中發表的報告,自 2012 年以來,人工智能訓練任務中使用的算力正呈指數級增長。人們對於算力的需求增長也超過 300,000 倍。作爲對比,如果是以摩爾定律的速度,這個數字只會是12倍的增長。在他們看來,正是這些硬件性能的跨越式突破,才成就了現在的AI產業。

自2012年以來,AI對算力的要求(source:OpenAI)

Open AI的報告進一步指出,成本考量和物理學特性等因素將會壓制傳統AI硬件性能的上升勢頭。但市場對AI算力的需求仍然處於增長期,爲此探索新的硬件方案成爲了AI芯片供應商亟待解決的問題。不少廠商也都另闢蹊徑從多個方向解決廣爲人知的“馮諾依曼瓶頸”。

在鯤雲信息科技有限公司創始人牛昕宇博士(以下簡稱牛博士)看來,一個不同於過往的新架構,是解決當前AI問題的正確之選。他同時也指出,目前的AI芯片行業,需要變革的不僅僅是架構。

亟待變革的AI芯片架構

對AI芯片行業有所瞭解的讀者都應該知道,現在統治人工智能芯片市場的廠商主要是英偉達,依靠GPU優秀的並行計算能力和CUDA生態,這家本來只是做顯卡的廠商在人工智能時代大放異彩。

除了英偉達之外,擁有龐大部署量的英特爾至強處理器和聲名在外的谷歌TPU和特斯拉FSD也是AI芯片市場一個不可忽略的角色。這些處理器有一個共同特點,那就是他們無一例外採用了指令集架構處理器。

經典指令集架構圖

這些架構在實際應用中不能發揮人工智能芯片的全部算力潛力,爲此牛博士指出,在算力需求猛增的AI時代,需要一種新的芯片架構,這主要是由以下兩個原因決定的:

從硬件架構上看,指令集架構芯片中有部分芯片面積用於支持指令控制。更關鍵的問題在於,在指令執行過程中,計算單元在多數時間內處於等待的狀態:等待計算所需數據的到來。從這個角度看,指令集架構下的算力並沒有被充分發揮出來給到用戶。

另一方面,如上圖右邊所示,一個標準的五級指令集的每一條指令都要經過讀取、解碼、執行、讀寫內存和把數據寫到寄存器裏面去這五個步驟。在這些步驟中,只有執行這一步驟是在執行真正的計算。其他部分都是在做指令的讀取和解碼這樣的功能。雖然可以通過指令流水降低計算單元閒置,不過在實際執行過程中,受限於指令間的依賴、以及指令間協同的時鐘不確定性,指令內部的計算單元會出現閒置等挑戰。

牛博士舉例說到,英偉達T4在Batch=128或Batch最高的測試環境下,按照其官網公佈的指標去比對幾個網絡實際的使用算力,得出的結果是峯值算力的7%到30%左右。這意味着產品有很大部分的性能還不能完全發揮出來。

“如果大家都在類似架構下競爭,在接近的芯片利用率前提下,芯片公司的產品升級最後會變成依賴製程工藝和軟件生態的比拼。而且,對比P4與T4產品的實測性能可以發現,隨着峯值算力的增加,芯片的實際利用率有所降低”,牛博士補充說。

從目前的市場發展上看,包括英偉達在內的多家AI芯片廠商都在沿着上述技術路線演進,但從當前製程工藝的發展和材料本身的特性限制看來,繼續大幅提升峯值算力意味着更高的芯片成本,而隨着峯值算力降低的芯片利用率意味着給到用戶的實測算力並不會等比例線性提升。這與當前AI應用客戶更高算力性價比的需求是相背而行的。換而言之,尋找一個新的AI芯片架構迫在眉睫。

“數據流架構或許會是一個不錯的選擇”,牛博士說。

根據他的觀點,所有的計算架構需要保證一個核心需求:加減乘除等計算操作能夠按照編程需求按特定次序完成對特定數據的計算。與傳統的馮·諾依曼架構或控制流體系結構進行對比,數據流架構並沒有指令相關的指令控制與執行單元。數據流架構依靠數據流動次序,而不是指令執行次序保證計算執行順序,從而將計算與數據搬運重疊,以實現更高的吞吐量和更低的延遲。

定製數據流計算示例

“在指令集架構中,由於指令協同的不確定性,計算與數據讀寫無法深度重疊,部分時間計算單元處於等待數據狀態,從而導致閒置計算單元和芯片利用率的下降。而數據流架構中每個時鐘下所有計算單元的狀態是確定的,計算單元無需等待其它單元的計算,從而消除計算資源閒置。”牛博士表示。“這就像一個交響樂團,當樂團中每個人都按照統一的拍子進行演奏時,而且每個人在每個拍子下的動作是確定的,樂團中的樂器之間並不需要相互等待,可以按照自己的節拍並行的演奏,就會協作完成一首曲子。這就像數據流架構中計算單元間的協作關係:通過精確的時鐘進行協作,而並不存在先後依賴關係,所以無需等待。”牛博士補充說。

據介紹,數據流架構支持時鐘級的精確計算,讓每個數據流動及計算在每個時鐘都可精確預計,從而支持將數據流動與計算深度重疊,消除計算單元閒置;於此同時,數據流架構中沒有指令,從而破除了指令集架構的控制冗餘以及等待指令讀取譯碼帶來的計算單元閒置問題,進一步提升芯片利用率。此外,數據流架構中一個數據流流水線中可深度整合大量計算單元,從而打破指令集架構中峯值算力提升與芯片利用率的衝突問題:通過不斷加深數據流流水線,可以在提升峯值算力同時,不降低流水線中計算單元閒置時間。”

正是因爲數據流架構擁有如此多的優勢,包括Wave Computing、SambaNova和Groq在內的多家公司投入了這個領域的研發,值得一提的是Groq的初創團隊還是由谷歌TPU的核心成員創立,由此可以看到數據流架構的前景。

當然,鯤雲科技創始團隊自1994年就開始探索數據流架構在各個垂直領域的開發和落地,在數據流技術上具有深厚的積累,自然是這個架構的積極支持者。也正是在這個背景下,團隊創立了鯤雲科技,從零開始探索針對深度學習的數據流架構,也就是CAISA。

AI芯片能力≠芯片峯值算力

在架構類似的情況下,峯值算力是一個可以簡單快速估算芯片實測性能的指標,也是在AI芯片設計中重點關注的指標。然而近幾年,提升峯值算力的發展方向將人工智能芯片的發展推向了另一個極端:峯值算力(或每瓦的峯值算力)已經成爲評價一顆AI芯片性能的單一指標,導致大量AI芯片研發資源投入到如何把峯值算力推高。

然而對於用戶來說,峯值算力其實並不是他們的本質需求。

“用戶真正關心的是AI芯片的實測算力,而不完全是峯值算力。峯值算力並不能直接釋放給用戶,真正釋放給用戶的要乘上一個係數,叫做芯片利用率”,牛博士說。“峯值算力指標假設每個芯片內部計算單元每個時鐘都處於計算狀態,而現有指令集架構在運算執行中計算單元存在閒置”,牛博士強調。

以英偉達T4加速卡爲例,常用的識別、檢測和分割的算法ResNet50、SSD-ResNet50和U-Net Industrial,在Batch=128或者最高性能的情況下,可以分別獲得32.1%、7.5%、11.9%的芯片利用率,這意味着在實際應用中,只有7%到32%的峯值算力轉換爲實測性能釋放給用戶,當中帶來的芯片性能浪費是顯而易見的。

T4加速卡的測試結果

“爲了讓用戶獲得更高的性能,除了持續提高峯值性能以外,芯片利用率的提升會是一個更好的方案,因爲這會在不增加芯片成本的情況下,大幅提升芯片的實測性能。這也是鯤雲科技新推出的CAISA 芯片正在努力的方向”,牛博士說。

這是一款採用28nm工藝打造的芯片,搭載了四個CAISA 3.0引擎,具有超過1.6萬個MAC(乘累加)單元,峯值性能可達10.9TOPs。而通過PCIe 3.0×4接口與主處理器通信,同時具有雙DDR通道,可爲每個CAISA芯片提供超過340Gbps的帶寬。

CAISA芯片架構圖

作爲一款面向邊緣和數據中心推理的人工智能芯片,CAISA芯片可實現最高95.4%的芯片利用率。這就讓他們在既滿足客戶在價格和功耗方面需求的同時,還能爲客戶提供更強的算力,提高了性價比。而之所以能做到如此高的芯片利用率,與鯤雲科技的CAISA 3.0數據流架構有莫大的關係。

CAISA3.0架構圖

在文章前面我們提到,鯤雲科技首席科學家Wayne Luk陸永青院士從1994年就開始將數據流架構應用到各個垂直領域。經歷了前十幾年的發展積累,到鯤雲科技於2016年成立並在FPGA上實現交付,與客戶的交流迭代之後,完成了此次全新的架構升級。

來到CAISA3.0中,數據計算與數據流動的重疊,壓縮計算資源的每一個空閒時鐘;通過算力資源的動態平衡,消除流水線的性能瓶頸;通過數據流的時空映射,最大化複用芯片內的數據流帶寬,減少對外部存儲帶寬的需求。上述設計使CNN算法的計算數據在CAISA3.0內可以實現不間斷的持續運算,最高可實現95.4%的芯片利用率,在同等峯值算力條件下,可獲得相對於GPU 3倍以上的實測算力,從而爲用戶提供更高的算力性價比。

相比旗艦款Xavier加速卡,搭載CAISA芯片的星空加速卡X3可以最高提供4.12倍實測性能提升;而與T4相比,鯤雲科技也能提供最高3.91倍實測性能提升。這都是超高的芯片利用率提升所帶來的。得益於這個利用率,過往通過提升峯值性獲得更高性能而帶來的高成本問題,也迎刃而解。

X3 vs Xavier 芯片利用率對比圖

X3 vs Xavier 性能對比圖

X3 vs Xavier 延時對比圖

X9 vs T4 芯片利用率對比圖

X9 vs T4 性能對比圖

X9 vs T4 延時對比圖

也許很多人並沒有理解這個3.91倍背後的意義,讓我們舉個現有的例子來對比說明一下。

AI從業人員都知道,英偉達爲了展現其T4的實力,在其官方網站上公佈了這個加速卡跑在不同網絡模型下的性能指標。作爲AI芯片行業的風向標,任何一款芯片想要說明自己的實力,只需要跑和T4一樣的網絡,然後公佈相關的Benchmark就可以如願以償。早前被英特爾收購的Habana就是這樣做的。根據Habana所公佈benchmark性能,相比於T4官網指標(最新官網指標爲5415FPS),通過更高的峯值算力,Habana的產品提供了2.85倍實測性能提升。正是因爲在實測性能上取得的領先,最終獲得Intel的青睞,讓他們以20億美元的估值被收購。

通過這個例子,我們也可以看到鯤雲科技這個數字的真正價值。

在這個高性能芯片的支持下,鯤雲科技打造了高算力性價比的AI計算平臺星空加速卡系列,並推出了X3和X9兩款產品。

其中星空X3加速卡是搭載單顆CAISA 芯片的數據流架構深度學習推斷計算平臺,爲工業級半高半長單槽規格的PCIe板卡。得益於其輕量化的規格特點,X3加速卡可以與不同類型的計算機設備進行適配,包括個人電腦、工業計算機、網絡視頻錄像機、工作站、服務器等,滿足邊緣和高性能場景中的AI計算需求。相較於英偉達邊緣端旗艦產品Xavier,X3可實現1.48-4.12倍的實測性能提升。

星空X3加速卡

X9加速卡爲搭載4顆CAISA 芯片的深度學習推斷板卡,峯值性能43.6TOPS,主要滿足高性能場景下的AI計算需求。同英偉達旗艦產品T4相對,X9在ResNet-50, YOLO v3等模型上的芯片利用率提升2.84-11.64倍。在實測性能方面,X9在ResNet50可達5240FPS,與T4性能接近,在YOLO v3、UNet Industrial等檢測分割網絡,實測性能相較T4有1.83-3.91倍性能提升。在達到最優實測性能下,X9處理延時相比於T4降低1.83-32倍。實測性能以及處理延時的大幅領先,讓數據流架構爲AI芯片的發展提供了提升峯值性能之外的另一條技術路線。

星空X9加速卡發佈

據瞭解,目前星空X3加速卡已經推出市場,而星空X9加速卡將於今年8月推出市場。

全球首個數據流AI芯片背後

從行業的現狀看來,鯤雲科技是全球首家推出數據流AI芯片,並且提供第三方實測benchmark的中國芯片企業。這是前文說到的Wave Computing、SambaNova和Groq等國外明星初創企業所不能達到的成就。而通過數據流網絡中算子的不同配置和組合,鯤雲科技的CAISA芯片更可支持到絕大多數的CNN算法,並能讓開發者輕易地將模型遷移到這個平臺上。。

能做到這樣,是其架構和軟件相互協同獲得的成果。

CAISA3.0架構可以通過流水線動態重組實現對不同深度學習算法的高性能支持。通過CAISA架構層的數據流引擎、全局數據流網、全局數據流緩存,以及數據流引擎內部的人工智能算子模塊、局部數據流網、局部數據流緩存的分層設計,在數據流配置器控制下,CAISA架構中的數據流連接關係和運行狀態都可以被自動化動態配置,從而生成面向不同AI算法的高性能定製化流水線。在保證高性能的前提下,支持用戶使用基於CAISA3.0架構的計算平臺實現如目標檢測、分類及語義分割等廣泛的人工智能算法應用。

“專爲CAISA3.0架構配備的RainBuilder編譯工具鏈支持從算法到芯片的端到端自動化部署”,牛博士強調。而在RainBuilder編譯工具鏈的支持下,用戶和開發者無需瞭解架構的底層硬件配置,簡單兩步即可實現算法快速遷移和部署。

RainBuilder架構圖

據透露,RainBuilder編譯器可自動提取主流AI開發框架(TensorFlow,Caffe,Pytorch,ONNX等)中開發的深度學習算法的網絡結構和參數信息,並面向CAISA結構進行優化;工具鏈中的運行時(Runtime)和驅動(Driver)模塊負責硬件管理併爲用戶提供標準的API接口,運行時可以基於精確的CAISA性能模型,實現算法向CAISA架構的自動化映射,同時提供可以被高級語言直接調用的API接口;最底層的驅動可以實現對用戶透明的硬件控制。RainBuilder工具鏈使用簡單,部署方便,通用性強,可以讓用戶快速和低成本的部署和遷移已有算法到CAISA硬件平臺上。

回顧計算行業的發展,不同的應用催生了不同的處理器架構。早期PC的出現,讓X86架構和Intel名揚天下;近十年移動設備的出現,又推動了Arm架構和高通的蓬勃發展。

現在,我們進入了AI時代,也許一個屬於數據流處理器和鯤雲科技的時代,從這刻開始正式上演。

未來智能實驗室的主要工作包括:建立AI智能系統智商評測體系,開展世界人工智能智商評測;開展互聯網(城市)雲腦研究計劃,構建互聯網(城市)雲腦技術和企業圖譜,爲提升企業,行業與城市的智能水平服務。

  如果您對實驗室的研究感興趣,歡迎加入未來智能實驗室線上平臺。掃描以下二維碼或點擊本文左下角“閱讀原文”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章