隨著新一波智能數(shù)據(jù)密集型應用的興起,基于傳統(tǒng)的CPU架構已經(jīng)無法滿足這些新應用中計算需求的指數(shù)級增長,推動了對全新的、異構的、帶有可編程硬件加速器的計算架構的需求。

eFPGA是embedded FPGA的縮寫,用中文理解就是嵌入式FPGA。eFPGA的概念實際上是Achronix Semiconductor提出來的,這家公司成立于2004年,并推出過20nm的Speedster 22i FPGA,代工廠為Intel。

為什么要采用FPGA?硬件加速

以往業(yè)界習慣采用獨立的FPGA,但卻從未考慮將FPGA作為IP嵌入到SOC中。2016年11月,Achronix宣布可提供FPGA IP,可以將FPGA當成IP直接嵌入SOC中,命名為Speedcore eFPGA IP。Speedcore嵌入式FPGA(eFPGA)IP產(chǎn)品可以被嵌入到一款ASIC或者SoC之中,客戶通過細化其所需的邏輯功能、RAM存儲器和DSP資源,然后Achronix將配置SpeedcoreIP以滿足其個性化的需求。Speedcore查找表(LUT)、RAM單元、DSP64單元和定制單元塊能夠以靈活的縱列方式組合在一起,為客戶的應用創(chuàng)建最優(yōu)化的可編程功能。

在SOC中嵌入FPGA IP相當于增加了SOC在邏輯功能上的靈活性,根據(jù)用戶需要可以增加或減少SOC的功能;如果FPGA IP資源足夠多,可以實現(xiàn)算法加速。

eFPGA1

根據(jù)摩爾定律,CPU架構的發(fā)展受制于功耗和芯片大小。由于核心數(shù)量有限,越來越多的應用需要對某些特定應用進行硬件加速。FPGA的優(yōu)勢在于吞吐量以及并行處理,因此在數(shù)據(jù)加速方面有獨特的優(yōu)勢。

實際上2015年Intel收購Altera,其目的也是用它們的FPGA來做硬件加速。實際上這種CPU+FPGA異構處理得到越來越多的應用,尤其是在數(shù)據(jù)中心,比如cache緩存、網(wǎng)絡數(shù)據(jù)分析、網(wǎng)頁檢索和并行運算等等,得到諸如微軟、亞馬遜、谷歌、Facebook和百度等巨型互聯(lián)網(wǎng)公司的青睞。

人工智能推動eFPGA發(fā)展,Achronix三大產(chǎn)品線介紹

eFPGA2

5G移動通信、高性能計算、網(wǎng)絡加速、汽車應用是現(xiàn)在FPGA用于計算加速的主要4大應用,隨著網(wǎng)絡吞吐量的急劇增長,對于計算能力的需求也是急速增長。所以很多應用需要FPGA來計算。

eFPGA3

據(jù)介紹,Achronix現(xiàn)在有三種產(chǎn)品:第一種是獨立的FPGA芯片speedster,第二種是嵌入式FPGA內(nèi)核speedcore,就是eFPGA內(nèi)核,第三種是FPGA多晶粒組合封裝Speedchip。

eFPGA4

據(jù)了解,Achronix Speedcore eFGPA嵌入式FPGA可加速數(shù)據(jù)密集的人工智能(AI)/機器學習、5G移動通信、汽車先進駕駛員輔助系統(tǒng)(ADAS)、數(shù)據(jù)中心和網(wǎng)絡應用;Speedcore custom blocks定制單元塊可以大幅度地提升性能、功耗和面積效率,并支持以前在FPGA獨立芯片上無法實現(xiàn)的功能。利用Speedcore custom blocks定制單元塊,客戶可以獲得ASIC級的效率并同時保持FPGA的靈活性,從而帶來了一種可以將功耗和面積降至最低、同時將數(shù)據(jù)流通量最大化的高效實現(xiàn)方式。

Speedcore custom blocks定制單元塊三大優(yōu)勢?

2017年10月11日,Achronix Fusion定制單元塊新產(chǎn)品在深圳深航大廈發(fā)布。這個可定制單元塊分布在eFPGA內(nèi)部,可由用戶自定義。Achronix宣布為其eFPGA IP解決方案推出Speedcore custom blocks定制單元塊。該技術大幅度縮減了芯片晶粒大小及功耗,并提升了性能,可與客戶聯(lián)合定義特定功能性單元塊,可分布在整個eFGPA內(nèi)部結構中。

eFPGA5

Achronix Semiconductor市場營銷副總裁Steve Mensor表示,2017年Achronix的銷售收入將超過1億美元,將實現(xiàn)強勁的增長。其中SpeedCore是增速最快的產(chǎn)品。

“業(yè)界領袖對Speedcorecustomblocks定制單元塊及其可發(fā)揮的潛力倍感興奮,”AchronixSemiconductor市場營銷副總裁SteveMensor表示。“目前與我們合作的公司都在打造下一代異構計算平臺和高帶寬通信系統(tǒng),他們正在構建高性能的硬件加速器,可以隨著其計算算法的演進而不斷調(diào)整。現(xiàn)在,AchronixeFPGAIP產(chǎn)品在添加了Speedcorecustomblocks定制單元塊以后,就使其在擁有可編程性的同時還能夠擁有ASIC級的性能以及高片芯面積效率。”

面對新的計算密集型功能,eFPGA數(shù)據(jù)加速可以說是最優(yōu)的解決方案。簡單來說定制單元塊的優(yōu)勢大概包括三點:最小的芯片面積、ASIC級的性能、構建獨立FPGA芯片無法提供的功能。

eFPGA6

微軟在一個項目白皮書提出一種云規(guī)模的加速架構。其中Shell占據(jù)了44%的總面積。對于eFPGA來說,可以靈活的處理。中間的應用邏輯電路可以放Speedcore,而周邊的Shell可以放到客戶的ASIC中。

eFPGA7

對于客戶自定義的功能模塊可以進一步將芯片面積減少75%,而且功耗更低,性能更高。

eFPGA8

由于減少了大量的shell和IO的面積,Speedcore custom blocks定制單元塊相比以往獨立的FPGA芯片面積減少了將近6倍。

案例對比:eFPGA與GPU各占優(yōu)勢

eFPGA9相關應用案例舉例:字符串搜索

如果用Speedcorecustomblocks定制單元塊來實現(xiàn),需要并行比較器陣列的大型字符串搜索功能的片芯面積可以縮減超過90%。

桶形移位器(Barrelshifter)和二進制位處理結構也可以在Speedcorecustomblocks定制單元塊中完全實現(xiàn),從而在同樣的面積中實現(xiàn)更大的、更精妙的應用,提升了可獲得的頻率。

一個運行在800MHz的400Gbps包處理數(shù)據(jù)通道的核心功能也可以用Speedcorecustomblocks定制單元塊來實現(xiàn),其可編程邏輯管理分析和控制功能。今天的FPGA獨立芯片不能為包處理應用提供這么高的數(shù)據(jù)吞吐量。

eFPGA10

以往FPGA都被拿來跟ASIC比較,但是隨著人工智能需求的增加,越來越多客戶用FPGA來跟GPU比較,來做機器學習和神經(jīng)網(wǎng)絡應用。案例舉例:以AI卷積神經(jīng)網(wǎng)絡應用為例,以前需要用到大量的DSP和RAM,經(jīng)過自定義優(yōu)化以后,總面積不管是DSP還是RAM都大大減少,整個芯片面積縮減大概35%。通過為矩陣乘法運算優(yōu)化數(shù)字信號處理器(DSP)和存儲單元塊,基于卷積神經(jīng)網(wǎng)絡(CNN)的YOLO目標識別算法的芯片面積被縮減了超過40%。

eFPGA11

一般通用計算是通過CPU,而數(shù)據(jù)加速則而通過eFPGA核。GPU功耗較大,相對來說FPGA更靈活,對于特殊應用,吞吐量和并行處理能力更強。FPGA相對于GPU的弱點是,在編程上通過軟件就可以實現(xiàn),相對來說編程難度會大一點。

eFPGA12案例舉例:以線速運行的功能

eFPGA13案例舉例:TCAMS

這是網(wǎng)絡應用中的常用功能,包括數(shù)據(jù)包分類、流量管理等。在獨立FPGA上往往無法提供該功能,因為需要用到大量的BRAM和邏輯,占用的面積太大。而通過我們的定制單元塊就可以實現(xiàn)。一個TCAMS可以把需要的RAM和logic放到一個模塊里面,相比傳統(tǒng)的FPGA占用的面積大大縮小。還可以通過多個TCAM來做級聯(lián),來構建更深或更寬的陣列。

eFPGA14

“我們的ACE工具可以給獨立的FPGA做設計,也可以給我們的SpeedCore做設計。SpeedCore最大可達到200玩?zhèn)€查找表。”STEVE MENSOR表示,Speedcore custom blocks定制單元塊由Achronix與其客戶共同定義,這需要一個詳細的加速工作負載架構分析。隨后,Achronix將為客戶提供一個用于基準測試和評估的新版ACE設計工具,它包含了帶有定制單元塊的、新的Speedcore eFPGA。

Achronix的ACE設計工具全面支持Speedcore custom blocks定制單元塊,可以與存儲器和DSP單元塊相同的方式,提供從設計捕獲到比特流生產(chǎn)和系統(tǒng)調(diào)試等功能。Achronix為每個Speedcore custom blocks定制單元塊創(chuàng)建了一種獨有圖形化用戶接口(GUI),它可以管理所有的配置規(guī)則。ACE擁有Speedcore custom blocks定制單元塊所有配置的完整的時序細節(jié),支持ACE去完成各種設計基于時序的布局和布線。客戶可以用強大的版圖規(guī)劃器來優(yōu)化設計,并為所有的單元實例去制定局域或者定點的任務安排。ACE還包括一個關鍵路徑分析工具,它可以支持客戶去分析時序??蛻暨€可以使用ACE強大的Snapshot嵌入式邏輯分析儀,去創(chuàng)建復雜的觸發(fā)器并展示Speedcore內(nèi)的實時信號。