【原創】第五類人工智能處理器殺出,訓練推理通吃?

winniewei 提交于 周一, 02/17/2020
【原創】第五類人工智能處理器殺出,訓練推理通吃?

作者:張國斌

隨著算力、算法和大數據日益進步,帶動了人工智能技術的迅速普及,目前在人工智能技術應用主要分成兩步,首先在GPU等上利用大數據進行訓練,優化算法和模型,然后在端側通過特定的人工智能處理器NPU/APU上實現推理應用,有沒有可能同時將訓練和推理在一個處理器上實現呢?如果有,這是不是更高效?那將是可以顛覆行業的,也可能實現機器的自我學習和進化呢?

有!Graphcore --一家英國的人工智能領域的獨角獸(估值17億美元),提出了新的IPU(人工智能處理器)架構,它們在2016年10月獲得了 3000 萬美元A 輪融資(已經累計獲得超過3.25億美元投資),希望其產品可以對抗像英特爾和英偉達這樣的人工智能巨頭。其投資者包括Dell、微軟、Bosch、BMW、Microsoft和Samsung等,它的處理器可以同時支持推理和訓練,這可以說是繼CPU、GPU、FPGA和ASIC之后的第五類人工智能處理器。

Graphcore的投資主體來自很多大公司

Graphcore的投資主體來自很多大公司

目前,Graphcore的已經量產,主要產品是一款可插入服務器的double-width、full-height 300W PCI Express卡,頂部連接器可以實現卡間互連。每一片Graphcore C2卡都配有兩顆Colossus IPU處理器芯片;該芯片本身,即IPU處理器,是迄今為止最復雜的處理器芯片──在16nm單芯片上容納了240億個晶體管,每顆芯片可提供125 TFLOPS運算力。以靜態影像的前饋卷積神經網絡(feed-forward convolutional neural networks)來對比,IPU的性能優勢是目前GPU的兩到三倍有時甚至是五倍。

Graphcore的IPU產品???????

Graphcore的IPU產品

全球第一臺IPU服務器---Dell DSS8440

全球第一臺IPU服務器---Dell DSS8440

Dell DSS8440是第一臺Graphcore IPU服務器,具有16個IPU處理器,并在服務器中全部連接了IPU-Link?技術,因此IPU系統具有超過100,000個完全獨立的程序,所有程序均在機器智能知識模型上并行工作。

2019年11月14日,Graphcore還宣布與微軟進行合作,并發布Microsoft Azure上Graphcore智能處理單元(IPU)的預覽版。Graphcore表示,這是公有云領導供應商首次提供GrapchoreIPU,看來未來云計算領域將是Graphcore大展身手的地方,今天我們來聊聊這款人工智能處理器有哪些獨特的地方?

獨特的架構

Graphcore聯合創始人兼CEO Nigel Toon

Graphcore聯合創始人兼CEO Nigel Toon

Graphcore聯合創始人兼CEO Nigel Toon去年在接受電子創新網等媒體采訪時曾表示對于CPU、GPU、FPGA和ASIC而言,Graphcore的IPU處理器是與它們完全不同的,Graphcore 的IPU特點可概括為:

1、同時支持訓練和推理

2、采用同構多核(many-core)架構,有超過1000個獨立的處理器;

3、支持 all-to-all的核間通信,采用Bulk Synchronous Parallel的同步計算模型;

4、采用大量片上SRAM,不需要外部DRAM。

Graphcore的IPU處理器架構

Graphcore的IPU處理器架構

他強調IPU是專門為AI/Machine Learning設計的處理器。Graphcore的IPU有強大并行處理能力,能在自然語言處理以及理解自動駕駛方面取得重大進展,這是區別于其他處理器的一個重要因素。當然,他也順便噴了一下GPU,

“我們接觸過的所有創新者都說使用GPU正在阻礙他們創新。如果仔細看一下他們正在研究的模型類型,你會發現他們主要研究卷積神經網絡。因為遞歸神經網絡和其他類型的結構,并不能很好地映射到GPU,加上沒有足夠良好的硬件平臺,其研究領域受到限制。而這正是我們將IPU推向市場的原因?!盢igel Toon指出。

“大家常常對CPU解決不了的問題,試圖用FPGA來解決,其實FPGA用的大量場景不在AI領域,而是在網絡和存儲加速里面。另外,針對AI應用,FPGA無法支持訓練,另外易用性差,只可以做一些推理場景。而IPU很明確,專為機器智能或AI應用場景設計,可同時做訓練和推理?!?Graphcore銷售副總裁盧濤補充表示,“IPU是一個處理器,針對IPU我們開發了一套叫做 Poplar 的軟件,對程序員來說,在 IPU 上進行開發就是寫一個TensorFlow或者Pytorch 的程序,可能就幾十行代碼,易用性非常好?!?/p>

而對于業界認為ASIC方案在場景應用中效能更高的說法,Nigel Toon表示他不認同這個說法,因為不管是什么樣的神經網絡,不管處理什么應用,最后在底層都會表征成一個計算圖,所以IPU設計是來處理計算圖的,不管是在處理圖片也好,語言也好,最后就是個計算圖。所以在我們往后在下一代產品發布的時候,可能會有一些微小的優化,但基本架構還是會維持當前的產品架構,只是處理器的能力強、規模更大,能支持更大的系統,但架構本質上還是當前的架構。

不過Graphcore也表示小型加速器是適合ASIC化的,例如一個擁有大量用戶的具有非常特定工作量的公司,或許他們運營著一個龐大的社交網絡,他們可以創建一個非常具體的功能并將其構建到一個芯片中,然后將其部署到數據中心以提高這一功能的效率。所以Graphcore不care這個市場,它所做的是一個通用處理器,可以通過編程以驚人的效率來做許多不同的事情。

在人工智能訓練過程中,什么是最重要的?有什么方法可以捕捉到訓練數據,并捕捉到這些數據間的關系?讓所有數據產生關聯,有了足夠的數據才能建立出模型。就像小孩子一樣,他們的大腦不斷地吸收知識,消化知識才能產生知識模型,這些都需要經過長時期才可以建立。有了這樣一種模型之后,我們還要有推理引擎,從這些新的知識得到新的輸出。其實訓練、推理的過程都是一樣的,在訓練時需要很多計算,而計算需要有足夠長的時間,才能讓我們的知識得到很好的訓練。要培訓、要訓練這樣一個知識模型,就要去監督這些學習過程,才能知道到底從這些數據中學到了什么。我們要建立這樣的知識模型是非常復雜的,任何機器的計算模型都可以總結成為計算模式,可以用這些計算模式的描述,來描述這些數據到底是怎么樣的,并把這些描述放在神經網絡里面,讓它們進行學習,然后把知識傳輸到新的輸出上。我們Graphcore的芯片都是高度并行計算,很多種子數據都是同時并行計算的,就像檔案里面同時處理很多數據一樣。還有很多的并行計算過程正在發生,所以,要用不同的指令、多個機器,讓并行計算成為現實。這里的挑戰是怎么樣確保不同的數據放到合適的地方,在合適的時間進行計算。我們還需要有海量數據帶寬來實現高度、大量的數據計算,這就是發明Graphcore IPU的基本思路?!?/p>

這是一些對比數據,下圖是自然語言處理,Graphcore過BERT語言模型實現了最先進的性能和準確性,在IPU服務器系統中用7張C2 IPU處理器PCIe卡(每個都有兩個IPU)在56小時內訓練了BERT Base。通過BERT推理,吞吐量提高了3倍,延遲縮短了20%以上。

Graphcore?IPU自然語言訓練對比

Graphcore?IPU自然語言訓練對比

與其他領先處理器相比,Graphcore C2 IPU處理器PCIe卡吞吐量提升了3.4倍,延遲優化了20倍!?

第五類人工智能處理器殺出,訓練推理通吃?

Nigel Toon表示:“Graphcore的IPU 同時有上千個處理器在工作,單個IPU的存儲帶寬能達到45TB,比性能最快的HBM提升了50倍以上,且在相同算力的基礎上能耗降了一半?!?/p>

他表示人工智能技術經過簡單感知、自然學習的學習處理之后就會到了第三步--就是高度感知,從經驗中去學習,要了解到接下來的那一步會發生什么。在自動駕駛汽車里面面臨的幾大難題就是智能汽車能不能認識到前面的物體,以及它下一步要做什么,在這方面,已經取得了很多進步。這些模型比之前的模型都要復雜,它們高度集成的模型,要把很多東西集成在一起才能做決定。所以,“實際生活中,我們看到的不是單一的知識模型,而是多個知識模型,讓它們形成復雜決策過程,這就跟我們的大腦類似,因為我們的大腦可以處理不同的信息?!彼麖娬{,“谷歌的智能系統模型正在大規模增長,2016年它只能認識到2500萬信息量,2019年2月推出的GPT-2就能處理15億的參數了,未來還要能處理1萬億的參數,我們需要很大的計算?!彼赋?,“摩爾定律盡管放緩,但依然有效。我們需要有一種新的處理器,這個新處理器跟過去的CPU和GPU不一樣,它是能夠產生智能機器的處理器,還可以在同一個處理器同時處理數以千億的參數,此外還要有能力把不同的IPU系統聯系在一起,最后成為一個復雜的系統。而這個處理器要有更加復雜的存儲器,能助力更大的機器學習模式,這就是Graphcore的IPU?!?/p>

據介紹,借助Graphcore的IPU,一個完整的機器學習模型可以在處理器內部生成。而且IPU處理器具有數百兆字節的RAM,可在處理器上以1.6 GHz的速率全速運行,Nigel Toon說,一個4U機箱中有16個IPU將使用戶擁有無可比擬的內存帶寬,其上可以運行成千上萬的線程,而且同時運行,這是Graphcore得以加速機器智能工作的部分原因。

Nigel Toon表示,Graphcore的IPU相比友商競品,有三個核心區別:

一是處理器的“核”的架構不同,IPU 是 MIMD 的架構;

二是Graphcore的knowledge model在處理器之內;

三是IPU能解決大規模并行計算處理器核之間的通信效率,這是個非常難的事情。在這一點上,Graphcore有大量的創新,關于多核之間如何通信,如何讓軟件工程師和程序員處理起來比較簡單。

IPU開發復雜嗎?

“我們有一個BSP的算法,是硬件和我們的軟件一起協同工作的,這樣對軟件公司來說,雖然處理器有1000多個核,7000多個線程,但是不需要太擔心通信問題,可以讓軟件工程師非常方便地使用,而且處理器核之間的通信效率非常高?!盢igel Toon強調說。

Nigel Toon表示在人工智能領域,框架算法都變化很快,人工智能處理器需要應對靈活性問題,Graphcore的IPU速度會非???,處理單元可以支撐很多不同的神經網絡系統,可以作出新的技術突破,而在這個領域,像今天的CPU或者GPU都難做出技術突破,這些處理器的框架難以需求人工智能領域越來越多的需求。

他表示隨著AI的進化,會產生了很多創新的算法,面臨的挑戰很多,Graphcore和很多知名專家一起合作解決這些挑戰,例如Zoubin Ghahramani是劍橋的教授,也是Uber的首席科學家,他發表了很多關于創新算法的論文。他現在也是Graphcore的咨詢顧問。另外Graphcore也和AI領域很多知名科學家或者學者合作。

Graphcore銷售副總裁盧濤(左)和聯合創始人兼CEO Nigel Toon??? ??

Graphcore銷售副總裁盧濤(左)和聯合創始人兼CEO Nigel Toon??? ??

Graphcore銷售副總裁盧濤補充表示,“IPU是一個處理器,針對IPU,Graphcore開發了一套叫做 Poplar 的軟件堆棧,對程序員來說,在 IPU 上進行開發就是寫一個TensorFlow或者Pytorch 的程序,可能就幾十行代碼,易用性非常好?!彼脖硎続I算法發展非???,核心問題是怎么樣能夠支持未來的挑戰。而IPU是一個處理器,基于這樣一個處理器,我們通過軟件來實現一些算法,所以它有足夠靈活性?!跋衲壳皺C器學習框架,我們有一套自己的,能夠把這個計算圖表征成大規模并行計算的一整套庫,所以我們覺得很重要的就是,你不能做一個針對當前某一個具體問題,做一個具體的實現,你一定要可編程的。"他強調?!拔覀冊谝粋€芯片里有1200多個處理器核,這里面有一個叫all-to-all exhcange的總線,基本上就是從任何一個核到另外一個核,都可以直接訪問,不僅僅是互聯,這是第一個維度。?第二個維度,跨到多個芯片時,我們有個IPU-Link協議,可以把多個IPU聯結在一起,組成一個集群。all-to-all總線中間的BSP算法,不僅僅是在同一個芯片里面核之間的芯片,跨芯片核之間也可以通過那個協議總線做通信。IPU-Link可以最多支持128個核互聯。此外,通過IPU-Link over fabric技術,還能把幾千幾萬顆的處理器連在一起?!? ?

Graphcore的IPU芯片

Graphcore的IPU芯片

但這樣的強大系統并不意味著就不用對模型做優化了,他表示Graphcore在模型上也做稀疏和剪枝,一般剪枝是要減少參數數量,主要用在推理、部署場景?!坝行﹫鼍安挥米黾糁?,因為最后用的是FP16(16位浮點數)來做推理,所以很大程度上剪枝是跟量化在一起的。比如訓練一個模型, FP16部署的時候成INT8了,那這時肯定需要做剪枝。

另外,IPU芯片里面有一千多個核,每個核里面都有計算單元和Memory,所以IPU天生就是做稀疏化應用場景性能會更好。

Nigel Toon表示從AI產業的角度來看,AI處理器市場是很大,但目前玩家還是不多,Graphcore的目標是讓產品、技術能真正解決行業和客戶的問題,然后獲得很大的市場。

盧濤表示在AI領域,可編程的處理器雖然目前還只是GPU,但Graphcore認為未來會有更多應用場景,Graphcore要做的是一個非常靈活的處理器,“我們是從0開始,專門針對AI做處理器架構。我們認為未來有很多新型AI應用,我們的IPU會有自己的領域和賽道,并大放異彩?!彼麖娬{。

注:本文為原創文章,轉載請注明作者及來源

相關文章

Digi-Key