摩爾定律從2003年開始放緩。為了延續性能倍增、功耗減半,英特爾(Intel) CPU採用多核心來實現。然而,到2015年以後,多核心也達不到了。核心數每增加一倍,運算性能並不能成倍成長。因此,業界需要尋找新的方法來實現延續,比如針對應用進行硬體加速。

人工智慧(AI)的硬體加速,如果想要做得好的話,需要具備三個條件:運算能力很強、資料傳輸高效、記憶體頻寬高。業界衡量性能的指標包括性能功耗比和性能價格比。

硬體加速應用六大應用場景

日前,Achronix Semiconductor行銷副總裁Steve Mensor指出,硬體加速應用有幾大類應用場景:

Achronix行銷副總裁Steve Mensor

  1. 雲端加速。涉及壓縮解壓縮、區塊鏈和安全等,需要很高的運算能力和功耗成本比。
  2. 邊緣運算。很多應用由於需要低延遲,不允許將數據傳到資料中心處理,而需要在邊緣處理,並且需要低功耗。
  3. 儲存。有些應用需要高效率,因而要求在記憶體中進行資料處理。
  4. 5G基礎設施。5G網路中的BBU (基頻單元)和RRU (射頻遠端單元),其協定處理有很大不確定性,需要用FPGA來程式設計。
  5. 傳統的網路加速需要用FPGA,而現在網路中出現了新的智慧網卡,要求在發給伺服器之前進行加解密、壓縮解壓縮等各種處理。
  6. 自動駕駛。涉及人工智慧、資料運算和感測器融合等,需要具有可程式設計性。

人工智慧/機器學習應用為何需要FPGA?

FPGA在人工智慧/機器學習(AI/ML)上扮演重要角色。AI涵蓋各種應用和層面,工業、教育、政府、農業等各行各業都可以運用。個人電腦在1980年到2000年成長很快。從2000年開始(包括智慧型角手機的出現),無線網路成長更快。而在未來,據估計,隨著5G的到來,AI的成長又將會更快。據估計,在半導體業務方面,到2024年,AI將佔有約500億美元市場。

Mensor介紹,硬體加速從實現上看可以有幾種不同選擇:CPU、GPU、FPGA和ASIC。CPU最有靈活性,能夠覆蓋各種不同應用,但它的能力(效率)最弱。ASIC的成本、性能和功耗最好,但它不能改變。目前AI演算法層出不窮,ASIC不能滿足各種要求。

HW Acce Option

可程式硬體加速的選擇(來源:Achronix Semiconductor)

若要同時具有可程式設計性和效率,則可以採用GPU和FPGA。在功耗和效率上,FPGA比GPU更強。尤其是在AI推理上,對於低精度場景,FPGA的性能功耗比比GPU大16倍。Mensor補充說:「GPU更適合用在伺服器側,而FPGA則更適合用在邊緣側。」FPGA適合做推理,GPU適合做訓練。

FPGA advantage

FPGA的優勢(來源:Achronix Semiconductor)

7nm eFPGA性能增強

日前,Acronix推出新的7nm架構IP——Speedcore 7t,在功耗、性能和晶片尺寸(PPA)上均有改進。

從製程上看,7nm比16nm快60%。同時,它針對AI/ML做了新的架構改進(第四代架構),對於AI/ML應用,性能比16nm成長3倍。此外,相比16nm,其功耗降低50%,裸片面積減少2/3。

7nm相對16nm在架構上做了很大改變,例如演算邏單元(ALU)增加一倍,佈線佈局做了改善,並且針對AI/ML運算增加了新的模組(詳見下圖)。ALU和MAX針對AI/ML更有效率,其他四個則適用於所有應用,他補充說。

Achronix logic block

從走線架構來看,相對於傳統架構,它增加了bus走線,這對很多應用都很有用,例如現在有的AI應用資料高達512位元。Bus走線是在傳統走線之上,是另外一層,沒有佔用傳統LE (邏輯單元)和開關等等。尤其是在AI/ML方面更有效率,Mensor指出。

FPGA advantage

下一代佈線結構(來源:Achronix Semiconductor)

除了bus走線以外,它還增加了bus mux,例如4進1出(不固定,也可以是2或3個)。AI/ML應用可能有幾個不同記憶體輸入,如果用傳統方法來做,則可能消耗很多LUT/LE資源以及佈線佈局資源。而新的bus佈線則不會佔用到這些資源。此外,其性能比傳統方法實現2倍成長。

Achronix logic Bus Muxing

可程式bus mux佈線途徑(來源:Achronix Semiconductor)

AI/ML運算趨勢

下面來看AI/ML計算趨勢。首先來看演算法,例如CNN、DNN、RNN等,對於影像和語音等不同應用需要用到不同的演算法。然後是精度,Int 32相比Int 8,其功耗會高10倍。新的演算法帶來精度降低,而準確性卻損失很小,是發展趨勢。而Speedcore 7t IP對所有演算法都提供支援,尤其是對小的演算法來說很有效率。除了運算能力以外,AI/ML涉及大量的矩陣乘運算,在記憶體和FPGA之間有大量的資料傳輸,因此兩者要靠得很近,從而提高效率。

AI/ML Computing

下一代DSP模組最佳化矩陣乘法

下一代DSP模組——MLP (機器學習處理器)——針對矩陣乘法運算進行最佳化,可以支援多種不同精度,性能達750MHz,並且支援不同類型(浮點、定點)運算。一個MLP可以支援1個16x16、8個8x8、12個6x6或16個4x4,滿足不同精度的乘方。

傳統上,做矩陣乘法運算,一行一列相乘得到一個資料,但是資料很寬,需要經過多次運算才能得到一個資料。對於MLP來說,則可以採用塊的方式做。對於1個時脈週期,可以實現6倍運算成長。

Achronix Block Matrix

一個時脈週期可實現6倍矩陣乘法運算(來源:Achronix Semiconductor)

MLP和記憶體放在一起。傳統架構進行矩陣乘法,性能受制於DSP、MLP以及走線。現在把記憶體和MLP放在旁邊,資料傳輸很快,不需要經過LE。另外,MLP和MLP之間走線類似ASIC連線。要做更寬運算,這種走線與傳統相較可以將性能提升不小。

總的來說,這種架構對於AI/ML運算具有可程式設計性,可以根據性能、功耗和精度進行權衡。矩陣乘法運算可以將參數放在MLP記憶體中運行,採用級聯方式可以一次性完成,獲得幾倍性能提升。MLP和記憶體及MLP和MLP之間綁在一起,這樣就不用經過LE,速度很快。另外,MLP可以支援不同精度(如4、6、8位元),非常靈活,而CPU只能支持某種比特乘法。另外,它支持多重取整和飽和,不需要在LE中再做另外一層運算。

除了用MLP做乘法以外,也可以用LUT來做。傳統用LUT做8x8運算,需要36個6輸入LUT。現在用新的架構來做,如果是6輸入LUT,只需要用到一半,即18個LUT即可。甚至精度更低一點則會更有效率。

此外,Speedcore IP資源可以定制。Acronix提供Speedcore Builder Tool工具供用戶進行參數選擇。一旦確定需要多少資源,一個半月即可實現IP交付。這個架構現在是針對7nm所做,在2019年年中還會過渡到16nm。

總結

摩爾定律現已打破。未來性能成長需要依賴架構上的改變,即需要利用可程式設計的硬體加速器來實現性能成長。

對於AI/ML應用,需要有高運算能力的運算單元、高效高速資料傳輸,以及高儲存頻寬。

Speedcore 7t在第四代架構中做了很多AI/ML最佳化。基本性能提高60%,AI/ML性能提高3倍,功耗減半,面積縮減到1/3等。可以使AI/ML應用設計很有效率,在運算能力和功耗等方面都有很大改進。