賽靈思 All Programmable FPGA 和 SoC 針對一系列計(jì)算密集型工作負(fù)載提供最高效、最具成本效益、時延最低、最具設(shè)計(jì)靈活性并且滿足未來需求的計(jì)算平臺。
為了滿足不斷攀升的數(shù)據(jù)處理需求,未來系統(tǒng)需要在計(jì)算能力上大幅改進(jìn)。傳統(tǒng)解決方案(例如 x86 處理器)再也無法以高效、低成本的方式提供所需的計(jì)算帶寬,系統(tǒng)設(shè)計(jì)人員必須尋找新的計(jì)算平臺。FPGA 和 GPU 越來越多地被系統(tǒng)設(shè)計(jì)人員看好,認(rèn)為它們能夠滿足未來需求的計(jì)算平臺。為新時代提供必要的計(jì)算效率和靈活性,本文將對 GPU 以及賽靈思 FPGA和 SoC 器件進(jìn)行分析。
簡介
未來系統(tǒng)(例如云數(shù)據(jù)中心 [DC] 和自動駕駛汽車)需要在計(jì)算能力上大幅改進(jìn),以支持不斷增多的工作負(fù)載以及不斷演進(jìn)的底層算法 [ 參考資料 1]。例如,大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、視覺處理、基因組以及高級駕駛員輔助系統(tǒng) (ADAS) 傳感器融合工作負(fù)載都在促使計(jì)算性能能以低成本、高效的方式實(shí)現(xiàn)提升,并且超出現(xiàn)有系統(tǒng)(例如 x86 系統(tǒng))的極限。
系統(tǒng)架構(gòu)師正在尋找能滿足要求的新計(jì)算平臺。該平臺需要足夠靈活,以便集成到現(xiàn)有的架構(gòu)中 , 并支持各種工作負(fù)載及其不斷演進(jìn)的算法。此外,這些系統(tǒng)很多還必須提供確定性的低時延性能,以支持實(shí)時系統(tǒng)(例如自動駕駛汽車)所需的快速響應(yīng)時間。
圖形處理單元 (GPU) 廠商非常積極地將 GPU 定位成新時代計(jì)算平臺的最佳之選,主要依據(jù)其在機(jī)器學(xué)習(xí)訓(xùn)練的高性能計(jì)算 (HPC) 領(lǐng)域取得的成功。在此過程中,GPU 廠商針對機(jī)器學(xué)習(xí)推斷工作負(fù)載修改了他們的架構(gòu)。
然而,GPU 廠商還是忽視了基本的 GPU 架構(gòu)的局限性。這些局限性會嚴(yán)重影響 GPU 以高效、低成本方式提供必要的系統(tǒng)級計(jì)算性能的能力。例如,在云端 DC 系統(tǒng)中,對工作負(fù)載的需求在一天內(nèi)會發(fā)生很大變化。此外,這些工作負(fù)載的底層算法也會發(fā)生快節(jié)奏變化。GPU 架構(gòu)的局限性會阻止很多今天的工作負(fù)載和明天形成的工作負(fù)載映射到 GPU,導(dǎo)致硬件閑置或低效。本白皮書的“GPU 架構(gòu)的局限性”部分對這些局限性進(jìn)行了更詳細(xì)介紹。
相反,賽靈思 FPGA 和 SoC 具有眾多關(guān)鍵屬性,使它們非常適合解決未來系統(tǒng)要求所提出的種種挑戰(zhàn)。
這些獨(dú)特屬性包括 :
? 針對所有數(shù)據(jù)類型提供極高的計(jì)算能力和效率
? 具備極高靈活性,能夠針對多種工作負(fù)載將計(jì)算和效率優(yōu)勢最大化
? 具備 I/O 靈活性,能方便地集成到系統(tǒng)中并實(shí)現(xiàn)更高效率
? 具備大容量片上存儲器高速緩存,可提高效率并實(shí)現(xiàn)最低時延
本白皮書的“賽靈思 FPGA 和 SoC 的獨(dú)特優(yōu)勢”章節(jié)介紹了賽靈思架構(gòu)的優(yōu)勢,并與 GPU 架構(gòu)及其局限性進(jìn)行對比。
GPU 起源和目標(biāo)工作負(fù)載
GPU 的起源要追溯到 PC 時代,英偉達(dá) (NVidia) 公司聲稱在 1999 年推出世界首款 GPU,但有很多其他顯卡要先于該公司的出品 [ 參考資料 2]。GPU 是一款全新設(shè)計(jì)的產(chǎn)品,用來分擔(dān) / 加速圖形處理任務(wù),例如替 CPU 進(jìn)行像素陣列的陰影和轉(zhuǎn)換處理,其架構(gòu)非常適合高并行吞吐量處理 [ 參考資料 3]。本質(zhì)上,GPU 的主要作用是為視覺顯示器 (VDU) 渲染高質(zhì)量圖像。
多年來,少量非圖形的大規(guī)模并行和存儲器相關(guān)工作負(fù)載是在 GPU(而非 CPU)上實(shí)現(xiàn)并且受益良多,例如需要大規(guī)模矩陣計(jì)算的醫(yī)療成像應(yīng)用。GPU 廠商意識到他們可以將 GPU 的市場延伸到非圖形應(yīng)用領(lǐng)域,并導(dǎo)致 GPU 的非圖形編程語言(諸如 OpenCL)應(yīng)運(yùn)而生。這些編程語言實(shí)際上是將 GPU 轉(zhuǎn)化成了通用 GPU (GPGPU)。
機(jī)器學(xué)習(xí)
最近,能夠良好映射到 GPU 實(shí)現(xiàn)方案的工作負(fù)載之一就是機(jī)器學(xué)習(xí)訓(xùn)練。通過充分運(yùn)用 GPU,顯著縮短了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間。
GPU 廠商試圖利用機(jī)器學(xué)習(xí)訓(xùn)練方面的成功來助推其在機(jī)器學(xué)習(xí)推斷上的發(fā)展(部署經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò))。隨著機(jī)器學(xué)習(xí)算法和所需數(shù)據(jù)精度的發(fā)展演進(jìn),GPU 廠商一直在調(diào)整他們的架構(gòu)以保持自身地位優(yōu)勢。例如,英偉達(dá)在他們的 Tesla P4 產(chǎn)品中提供 INT8 支持。然而,即使是更低的精度,例如二進(jìn)制和三進(jìn)制,今天也正在被很多用戶探索 [ 參考資料 4]。要利用機(jī)器學(xué)習(xí)及其它領(lǐng)域的進(jìn)步,GPU 用戶必須等待新硬件推出之后購買新硬件。正如本白皮書后面所述,賽靈思 FPGA 和 SoC 的用戶則無需等待或購買新硬件,因?yàn)檫@類產(chǎn)品本身就具有高度的靈活性。
GPU 廠商想使自身成為這個新計(jì)算時代的首選計(jì)算平臺,機(jī)器學(xué)習(xí)是他們的基礎(chǔ)。但要弄清楚 GPU 是否適合未來系統(tǒng),還要做更全面的系統(tǒng)級分析,需要考慮 GPU 架構(gòu)的很多局限性以及系統(tǒng)要求如何隨時間發(fā)展演進(jìn)。
GPU 架構(gòu)的局限性
本部分將深入研究典型的 GPU 架構(gòu),以揭示它的局限性以及如何將它們應(yīng)用于各種算法和工作負(fù)載。
SIMT ALU 陣列
圖 1 給出了典型的 GPU 方框圖。通用 GPU 計(jì)算功能的核心是大型的算數(shù)邏輯單元 (ALU) 或內(nèi)核陣列。這些 ALU 通常被認(rèn)為是單指令多線程 (SIMT),類似于單指令多數(shù)據(jù) (SIMD)。
?
圖 1 :GPU 方框圖
基本原理是將工作負(fù)載分成數(shù)千個并行的線程。需要大量 GPU 線程來防止 ALU 閑置。然后,對這些線程進(jìn)行調(diào)度,以使 ALU 組并行執(zhí)行同一(單個)指令。利用 SIMT,GPU 廠商能實(shí)現(xiàn)相對 CPU 占位面積更小和能效更高的方案,因?yàn)閮?nèi)核的很多資源都可與相同組中的其他內(nèi)核共享。
然而,顯然只是特定的工作負(fù)載(或部分工作負(fù)載)能被高效映射到這種大規(guī)模并行架構(gòu)中 [ 參考資料 5]。如果構(gòu)成工作負(fù)載的線程不具有足夠的共性或并行性(例如連續(xù)工作負(fù)載或適度并行工作負(fù)載),則ALU 會閑置,導(dǎo)致計(jì)算效率降低。此外,構(gòu)成工作負(fù)載的線程預(yù)期要最大化 ALU 利用率,從而產(chǎn)生額外的時延。即使有英偉達(dá)的 Volta 架構(gòu)中的獨(dú)立線程調(diào)度這樣的功能,底層架構(gòu)也保持 SIMT,也需要大規(guī)模并行工作負(fù)載。
對于連續(xù)、適度并行或稀疏工作負(fù)載,GPU 提供的計(jì)算功能和效率甚至低于 CPU [ 參考資料 6]。例如用 GPU 實(shí)現(xiàn)稀疏矩陣計(jì)算 ;如果非零元素數(shù)量較少,則從性能和效率角度看 GPU 低于或等同于 CPU[ 參考資料 7][ 參考資料 8]。
有趣的是,很多研究人員正在研究稀疏卷積神經(jīng)網(wǎng)絡(luò),以利用很多卷積神經(jīng)網(wǎng)絡(luò)中的大規(guī)模冗余[ 參考資料 9]。這種趨勢顯然在機(jī)器學(xué)習(xí)推斷領(lǐng)域向 GPU 提出了挑戰(zhàn)。
稀疏矩陣計(jì)算也是大數(shù)據(jù)分析中的關(guān)鍵環(huán)節(jié)。[ 參考資料 10]
包含大量并行計(jì)算任務(wù)的大多數(shù)工作負(fù)載也包含一些連續(xù)或適度并行元素,意味著需要 GPU-CPU 混合系統(tǒng)來滿足系統(tǒng)性能要求 [ 參考資料 11]。顯然,高端 CPU 需求會影響平臺的效率和成本效益,CPU 與GPU 之間的通信也會給系統(tǒng)增加潛在瓶頸。
SIMT/GPU 架構(gòu)的另一個局限性是 ALU 的功能取決于它的固定指令集和所支持的數(shù)據(jù)類型。
離散數(shù)據(jù)類型精度支持
系統(tǒng)設(shè)計(jì)人員正在探索簡化數(shù)據(jù)類型精度,以此實(shí)現(xiàn)計(jì)算性能的跳躍式提升,而且不會使精度明顯降低[ 參考資料 12][ 參考資料 13][ 參考資料 14]。
機(jī)器學(xué)習(xí)推斷在降低精度方面一馬當(dāng)先,首先是 FP16,然后是 INT16 和 INT8。研究人員正在探索進(jìn)一步降低精度,甚至降到二進(jìn)制 [ 參考資料 4][ 參考資料 15]。
GPU ALU 通常原生支持單精度浮點(diǎn)類型 (FP32),有些情況支持雙精度浮點(diǎn) (FP64)。FP32 是圖形工作負(fù)載的首選精度,而 FP64 經(jīng)常用于一些 HPC 用途。低于 FP32 的精度通常無法在 GPU 中得到有效支持。因此采用標(biāo)準(zhǔn) GPU 上的更低精度,除了能減少所需存儲器帶寬以外,作用甚微。
GPU 通常提供一些二進(jìn)制運(yùn)算功能,但通常只能每 ALU 進(jìn)行 32 位寬運(yùn)算。32 位二進(jìn)制運(yùn)算存在很大的復(fù)雜性和面積需求。在二值化神經(jīng)網(wǎng)絡(luò)中,算法需要 XNOR 運(yùn)算,緊接著進(jìn)行種群 (population) 計(jì)數(shù)。NVidia GPU 只能每四個周期進(jìn)行一次種群計(jì)數(shù)運(yùn)算,這會極大影響二進(jìn)制計(jì)算 [ 參考資料 18]。如圖 2 所示,為了與機(jī)器學(xué)習(xí)推斷空間的發(fā)展保持同步,GPU 廠商一直進(jìn)行必要的芯片修改,以支持有限的幾種降精度數(shù)據(jù)類型,例如 FP16 和 INT8。例如,Tesla P4 和 P40 卡上的 NVidia GPU 支持 INT8,每 ALU/Cuda 內(nèi)核提供 4 個 INT8 運(yùn)算。
?
圖 2 :英偉達(dá)降精度支持
然而,英偉達(dá)面向 Tesla P40 上的 GoogLeNet v1 Inference 發(fā)布的機(jī)器學(xué)習(xí)推斷基準(zhǔn)結(jié)果表明,INT8 方案與 FP32 方案相比效率只提升 3 倍,說明要在 GPU 架構(gòu)中強(qiáng)行降低精度并取得高效結(jié)果存在較大難度[ 參考資料 16]。
隨著機(jī)器學(xué)習(xí)和其他工作負(fù)載轉(zhuǎn)向更低精度和定制精度,GPU 廠商需要向市場推出更多新產(chǎn)品,他們的現(xiàn)有用戶也需要升級平臺才能受益于這種改進(jìn)。
通過嚴(yán)格的存儲器層級實(shí)現(xiàn)軟件定義數(shù)據(jù)路徑
與 CPU 類似,GPU 中的數(shù)據(jù)流也由軟件定義,并取決于 GPU 的嚴(yán)格而復(fù)雜的存儲器層級 [ 參考資料 17]。典型的 GPU 存儲器層級如圖 3 所示。
每個線程在寄存器文件中都有自己的存儲器空間,用以存儲線程的本地變量。少量線程(相同的存儲塊中)可通過共享存儲器通信 ;所有線程都能通過全局或片外存儲器通信 [ 參考資料 18]。
如圖 3 所示,與存儲器訪問有關(guān)的能耗和時延分別增加 100 倍和 80 倍以上,因?yàn)閿?shù)據(jù)需要遍歷存儲器層級——從寄存器文件到全局存儲器 [ 參考資料 15][ 參考資料 17][ 參考資料 19]。此外,存儲器沖突不可避免,會增大時延,導(dǎo)致 ALU 閑置,致使計(jì)算能力和效率降低。
?
圖 3 :典型的 GPU 存儲器層級
因此,如果實(shí)現(xiàn) GPU 的計(jì)算和效率潛能,工作負(fù)載的數(shù)據(jù)流必須準(zhǔn)確映射到 GPU 存儲器層級。工作負(fù)載要具備足夠的數(shù)據(jù)局部性,才能高效地映射到 GPU,實(shí)際上這樣的工作負(fù)載很少。對大多數(shù)工作負(fù)載而言,當(dāng)在 GPU 上實(shí)現(xiàn)時,實(shí)際的計(jì)算能力和效率會大打折扣,解決方案的時延也會增加 [ 參考資料 19][ 參考資料 20]。
機(jī)器學(xué)習(xí)推斷作為量化實(shí)例,能清楚反應(yīng)出這種數(shù)據(jù)流局限性。GPU 必須批處理,例如 128,以實(shí)現(xiàn)高效但時延更長的解決方案。最終,批處理使機(jī)器學(xué)習(xí)處理局部化,但代價是時延增加 [ 參考資料 21]。GoogLeNet v1 Inference 的 NVidia P40 基準(zhǔn)測試結(jié)果可清楚地反映出該效應(yīng)。對于 GoogLeNet v1,網(wǎng)絡(luò)因 P40 存儲器帶寬而受計(jì)算束縛,因此與批處理有關(guān)的存儲器帶寬削減不會產(chǎn)生很大幫助。然而,P40顯然需要 128 批處理以實(shí)現(xiàn) 50% 的 GPU 理論性能,會給系統(tǒng)帶來很大時延 [ 參考資料 16]。
有些情況下,可利用 CPU 對數(shù)據(jù)進(jìn)行預(yù)處理,以便工作負(fù)載更好地映射到 GPU SIMT 架構(gòu)和存儲器層級,但代價是產(chǎn)生更多 CPU 計(jì)算和功耗,抵消了 GPU 的優(yōu)勢 [ 參考資料 7]。
有限的 I/O 選項(xiàng)
如“GPU 起源和目標(biāo)工作負(fù)載”部分所述,GPU 的角色是作為協(xié)處理器。為了便于與主機(jī)通信,GPU以往只有一個硬 PCIe? 接口以及幾個片外 DRAM 接口(例如 GDDR5)。最近幾代產(chǎn)品中,有些 GPU 采用硬接口實(shí)現(xiàn) GPU 到 GPU 通信。仍然需要使用 CPU 來與網(wǎng)絡(luò)進(jìn)行連接以及向 GPU 分配任務(wù),這會增加系統(tǒng)功耗,同時會因 PCIe 的有限帶寬而帶來瓶頸問題。例如,英偉達(dá)的 Tesla P40 支持 PCIe 3.0 x16,只能實(shí)現(xiàn) 16GB/s 帶寬。
GPU 廠商已經(jīng)開始構(gòu)建小型 SoC,例如 NVidia Tegra X1,能夠提供集成 GPU 計(jì)算、ARM? 處理器以及一些通用汽車外設(shè)(如 HDMI、MIPI、SIP、CAN 和基礎(chǔ)以太網(wǎng))。這些器件只具備少量計(jì)算能力,必須依靠額外的分立 GPU 實(shí)現(xiàn)必要的計(jì)算能力。然而,分立 GPU 的接口有很大局限性,例如 Tegra X1 僅支持 PCIe 2.0 x4,造成嚴(yán)重瓶頸。額外的 SoC 的功耗會進(jìn)一步降低平臺的效率。
片上存儲器資源
除了時延、效率和吞吐量方面的不利影響,片外存儲器的帶寬要顯著低于本地 / 片上存儲器。因此,如果工作負(fù)載需要依靠片外存儲器,不僅片外存儲器的帶寬會成為瓶頸,而且計(jì)算資源也會被閑置,從而降低 GPU 提供的計(jì)算功能和效率。
因此,更有利的做法是采用大型低時遲、高帶寬片上存儲器。再次以機(jī)器學(xué)習(xí)推斷為例,GoogLeNet 共需要 27.2MB 的存儲器,假設(shè) FP32 方案,這樣沒能提供 GPU,這意味著需要片外存儲器 [ 參考資料 22]。很多情況下需采用高昂的高帶寬存儲器 (HBM) 和批處理,以防止內(nèi)核閑置。如果選擇具有更大型片上存儲器的器件,就能避免 HBM 成本以及額外的時延和功耗問題。
功耗范圍
GPU 廠商在設(shè)計(jì)板卡和 GPU 時通常要適應(yīng) 250W 功耗上限,并依靠有效熱管理來調(diào)節(jié)溫度。針對機(jī)器學(xué)習(xí)推斷市場,英偉達(dá)開發(fā)了滿足 75W 功耗范圍的器件,例如 Tesla M4 和 P4。即使 75W 也遠(yuǎn)超出所允許的系統(tǒng)級功耗和熱范圍。 GPU 的絕對功耗依然是阻礙 GPU 廣泛使用的一大因素。
功能安全性
GPU 源自消費(fèi)圖形處理和高性能計(jì)算領(lǐng)域,不存在功能安全性要求。隨著 GPU 廠商瞄準(zhǔn) ADAS 市場,功能安全性就變成了優(yōu)先考慮和要求。器件需要全新設(shè)計(jì),以確保實(shí)現(xiàn)所需的功能安全性認(rèn)證等級,以便用在 ADAS 系統(tǒng)中。對 GPU 廠商來說這是一個長期學(xué)習(xí)過程,涉及各個方面,需要新的工具和設(shè)備。
賽靈思 FPGA 的起源
1984 年,賽靈思發(fā)明了現(xiàn)場可編程門陣列 (FPGA),使用戶能夠在單個器件中編程(重編程)幾乎無限數(shù)量的功能。以前,系統(tǒng)設(shè)計(jì)人員使用很多通用的分立邏輯組件或通過構(gòu)建高成本的 ASIC 來實(shí)現(xiàn)這些功能[ 參考資料 23]。
三十多年來,靈活性和可編程性仍然是賽靈思 All Programmable FPGA 和 SoC 的支柱。賽靈思提供的可編程平臺能滿足有線與無線通信、云計(jì)算、醫(yī)療、汽車、工業(yè)以及航空航天與國防領(lǐng)域中多種終端應(yīng)用的核心需求。所有這些應(yīng)用都需要強(qiáng)大的計(jì)算能力,很多還有非常嚴(yán)格的實(shí)時要求,例如工業(yè)自動化和 ADAS。
通常,F(xiàn)PGA 在使用上的挑戰(zhàn)之一是需要利用硬件描述語言 (HDL)(例如 Verilog 或 VHDL)對其進(jìn)行編程。最近,賽靈思開發(fā)出了 SDSoC ? 和 SDAccel ? 工具,能夠?qū)⒖删幊唐骷闹T多優(yōu)勢提供給更廣泛的用戶(例如軟件開發(fā)人員和系統(tǒng)架構(gòu)師)[ 參考資料 24] ;并且構(gòu)建了更多加速堆棧,使系統(tǒng)設(shè)計(jì)人員能更快速地實(shí)現(xiàn)賽靈思器件的優(yōu)勢 [ 參考資料 25]。
賽靈思 FPGA 和 SoC 的獨(dú)特優(yōu)勢
原始計(jì)算能力
與 GPU 擁護(hù)者的說法不同,單個賽靈思器件能提供強(qiáng)大的原始計(jì)算能力,例如 Virtex? UltraScale+ ?XCVU13P FPGA 的性能達(dá)到 38.3 INT8 TOP/s。最先進(jìn)的 NVidia Tesla P40 加速卡以基礎(chǔ)頻率運(yùn)行時提供相似的 40 INT8 TOP/s 原始計(jì)算能力,但功耗是賽靈思解決方案的 2 倍多 [ 參考資料 26]。賽靈思器件的靈活性和片上存儲器能針對很多工作負(fù)載和應(yīng)用顯著提高計(jì)算能力(詳見 All Programmable 器件靈活性和片上存儲器資源)。
此外,賽靈思器件的靈活性意味著能夠支持各種數(shù)據(jù)類型精度,例如 FP32、INT8、二進(jìn)制和定制[ 參考資料 27]。例如,針對二值化神經(jīng)網(wǎng)絡(luò),賽靈思提供 500TOPs/s 的超高二進(jìn)制計(jì)算能力(假設(shè) 2.5LUT/ 運(yùn)算),相當(dāng)于 GPU 典型性能的 25 倍。有些精度最適合使用 DSP 資源,有些最適合在可編程邏輯中實(shí)現(xiàn),還有些適合將二者結(jié)合起來使用。這種靈活性確保器件的計(jì)算和效率隨著精度降低而調(diào)整,一直到二進(jìn)制運(yùn)算。
機(jī)器學(xué)習(xí)領(lǐng)域的大量研究都從計(jì)算、精度和效率角度來研究最佳精度 [ 參考資料 28][ 參考資料 29][ 參考資料 30][ 參考資料 31][ 參考資料 32]。無論最佳點(diǎn)在哪,對于給定工作負(fù)載,賽靈思器件的計(jì)算能力和效率都能隨之調(diào)整,以實(shí)現(xiàn)降低精度后的所有優(yōu)勢。
幾年來,很多 FPGA 用戶實(shí)現(xiàn)了脈動陣列處理設(shè)計(jì),以便針對多種工作負(fù)載實(shí)現(xiàn)最佳性能,包括機(jī)器學(xué)習(xí)推斷。[ 參考資料 33][ 參考資料 34]。為了確保賽靈思 FPGA 和 SoC 用戶能夠在現(xiàn)有的賽靈思器件上針對此類工作負(fù)載將可實(shí)現(xiàn)的計(jì)算能力和效率實(shí)現(xiàn)最大化,賽靈思為此提供多種資源。這些資源包括 INT8最優(yōu)化以及將 DSP 陣列映射到 block RAM 和 UltraRAM 的最高效存儲器層級 [ 參考資料 27]。如需了解有關(guān)這些資源的更多信息,敬請聯(lián)系您所在地的賽靈思銷售代表。
為了針對當(dāng)今的深度學(xué)習(xí)工作負(fù)載提高可用的計(jì)算能力和效率,英偉達(dá)在 Volta 架構(gòu)中以 Tensor Core 的形式硬化了類似功能。然而,深度學(xué)習(xí)工作負(fù)載會隨時間演進(jìn),因此 Tensor Core 架構(gòu)也可能需要改變,而且 GPU 用戶需要等待和購買新的 GPU 硬件。
效率和功耗
從系統(tǒng)級角度看,計(jì)算平臺必須在給定的功率和熱范圍之內(nèi)提供最大計(jì)算能力。為滿足這一需求,計(jì)算平臺需要 :
? 處于允許的功率范圍內(nèi)
? 能夠在功率預(yù)算內(nèi)將計(jì)算能力最大化
賽靈思提供豐富的 All Programmable 器件,這使用戶能選擇與功率和熱范圍最匹配的器件。此外,賽靈思的 UltraScale+ 器件具有低壓模式 (VLOW),能將功耗降低 30%,效率提升 20%。
如表 1 所示,賽靈思器件針對固定精度數(shù)據(jù)類型提供從原始計(jì)算角度看最高效的通用計(jì)算平臺。這主要是因?yàn)橘愳`思 FPGA 架構(gòu)中的處理開銷更低。例如,GPU 需要圍繞計(jì)算資源實(shí)現(xiàn)更多復(fù)雜性,以便實(shí)現(xiàn)軟件可編程功能。對于當(dāng)今的深度學(xué)習(xí)工作負(fù)載的張量運(yùn)算,英偉達(dá)的 Tesla V100 憑借硬化的 Tensor Core 能實(shí)現(xiàn)與賽靈思 FPGA 和 SoC 差不多的效率。然而,深度學(xué)習(xí)工作負(fù)載也在快節(jié)奏演進(jìn),因此無法
確定英偉達(dá)的 Tensor Core 能夠針對深度學(xué)習(xí)工作負(fù)載保持多久的高效性。顯然對于其他通用工作負(fù)載,NVidia V100 也存在效率方面的挑戰(zhàn)。
表 1 :器件效率假設(shè) 90% 器件利用率和 80% 有效時鐘周期 (1)
?
鑒于本白皮書之前介紹的局限性,對于真實(shí)的工作負(fù)載與系統(tǒng),GPU 很難接近表 1 中所給出的數(shù)字。
賽靈思器件的靈活性及其他優(yōu)勢,加之賽靈思最新軟件開發(fā)堆棧,能確?;谫愳`思的解決方案為大量最終應(yīng)用和工作負(fù)載實(shí)現(xiàn)顯著提高的效率。
賽靈思器件的附加優(yōu)勢——例如靈活性和片上存儲器——能確保賽靈思器件的效率被大量最終應(yīng)用和工作負(fù)載所實(shí)現(xiàn)。
All Programmable 器件的靈活性
賽靈思器件經(jīng)過精心設(shè)計(jì),能滿足多種高性能終端系統(tǒng)的計(jì)算、效率、成本和靈活性需求。賽靈思將硬件可編程資源(例如邏輯、走線和 I/O)與靈活、獨(dú)立的集成內(nèi)核模塊(例如 DSP Slice 和 UltraRAM)組合在一起,全部構(gòu)建在領(lǐng)先的工藝技術(shù)上,例如臺積電 (TSMC) 的 16nm FinFET 工藝技術(shù),從而達(dá)到這種平衡。
賽靈思器件具備硬件可編程性和靈活性,意味著底層硬件通過配置可滿足給定工作負(fù)載的需求。隨后,甚至在運(yùn)行時也可通過部分重配置功能方便地重新配置數(shù)據(jù)路徑 [ 參考資料 35]。圖 4 試圖捕捉賽靈思 All Programmable 器件提供的部分靈活性,但是賽靈思器件的真正靈活性無法通過單張圖片來體現(xiàn)。內(nèi)核(或用戶設(shè)計(jì)元素)可以直接連接可編程 I/O、任意其它內(nèi)核、LUTRAM、block RAM 和UltraRAM、外部存儲器等。
?
圖 4 :All Programmable 數(shù)據(jù)路徑和任意到任意 I/O
賽靈思器件具有獨(dú)特的硬件可編程性,意味著它們不存在特定局限性,例如 SIMT 或固定數(shù)據(jù)路徑。無論是大規(guī)模并行、適度并行、流水線連續(xù)或者混合形式,都能獲得賽靈思器件的計(jì)算能力和效率。此外,如果底層算法改變(例如機(jī)器學(xué)習(xí)網(wǎng)絡(luò)的發(fā)展),則平臺也能相應(yīng)調(diào)整。
很多系統(tǒng)和工作負(fù)載中都能看到賽靈思器件發(fā)揮靈活性優(yōu)勢。其中一種工作負(fù)載就是機(jī)器學(xué)習(xí)推斷。機(jī)器學(xué)習(xí)推斷的趨勢之一是向稀疏網(wǎng)絡(luò)過渡。賽靈思器件的用戶已經(jīng)在利用這種趨勢。英偉達(dá)公司本身就是這些用戶中的一個。在最近與英偉達(dá)聯(lián)合編寫的關(guān)于語音辨識的一篇文章中,通過使用賽靈思FPGA,相對 CPU 實(shí)現(xiàn)了 43 倍速度提升和 40 倍效率提升,相對 NVidia GPU 實(shí)現(xiàn)了 3 倍速度提升和11.5 倍效率提升 [ 參考資料 36]??删幊虜?shù)據(jù)路徑還減少了賽靈思 FPGA 批處理需求。批處理是系統(tǒng)的時延 vs 實(shí)時性能的重要決定因素。
從大數(shù)據(jù)角度看,賽靈思器件的靈活性也展現(xiàn)出明顯優(yōu)勢。賽靈思 FPGA 在處理 SQL 工作負(fù)載時非常高效和快速,包括具有復(fù)雜數(shù)據(jù)(例如可變長度字符串)的情況。百度利用基于賽靈思 Kintex?UltraScale ? KU115 器件的加速卡實(shí)現(xiàn)了 25 倍以上的提速。該加速卡的功耗僅 50W。百度該解決方案的效率比 GPU 方案快 4 倍 [ 參考資料 37]。對于文本和圖案匹配工作負(fù)載,研究表明基于賽靈思的RegEx 方案比 CPU 方案快 14.5–18 倍,比 GPU 方案快了將近 3 倍 [ 參考資料 38][ 參考資料 39]。
基因組分析是另一個切實(shí)的實(shí)例。有人已經(jīng)利用 GPU 來加速基因組分析,可相較于 Intel Xeon CPU 方案提速 6–10 倍 [ 參考資料 40]。不過,賽靈思 FPGA 的提速效果要高得多,相較于同等 CPU 可提速 80倍 [ 參考資料 41]。
賽靈思器件的靈活性還使其成為云服務(wù)提供商的理想選擇,可作為計(jì)算平臺即服務(wù)的一部分。多種類型的軟件即服務(wù)都可以利用賽靈思器件的優(yōu)勢。
最后,對于正在努力研發(fā)自動駕駛功能的汽車系統(tǒng)設(shè)計(jì)人員來說,賽靈思器件的靈活性能夠?yàn)樗麄兲峁┛蓴U(kuò)展的平臺,用以滿足完全自動駕駛道路上的各種美國汽車工程師學(xué)會 (SAE) 標(biāo)準(zhǔn)。如需了解關(guān)于SAE 標(biāo)準(zhǔn)的更多信息 , 敬請?jiān)L問 SAE 網(wǎng)站。賽靈思器件可以高效處理來自各種源頭的傳感器數(shù)據(jù),例如雷達(dá)、照相機(jī)和超聲波,同時保持系統(tǒng)的實(shí)時 / 時延目標(biāo)。
任意到任意 I/O 靈活性
除了器件計(jì)算資源的靈活性,賽靈思的任意到任意 I/O 靈活性能夠確保器件可無縫集成到現(xiàn)有的基礎(chǔ)架構(gòu),例如直接連接到網(wǎng)絡(luò)或存儲設(shè)備,無需使用主機(jī) CPU [ 參考資料 42]。I/O 靈活性還允許平臺針對基礎(chǔ)架構(gòu)的變化或更新進(jìn)行調(diào)整。
片上存儲器
如表 2 所示,賽靈思器件提供業(yè)界領(lǐng)先的靈活、高帶寬、低時延的 500Mb 片上存儲器 [ 參考資料 44]。如此大的片上存儲器緩存意味著工作負(fù)載的很大一部分存儲器要求都能通過片上存儲器來滿足,從而減小外部存儲器訪問帶來的存儲器瓶頸問題,以及高存儲器帶寬解決方案(例如 HBM2)的功耗和成本問題。例如,針對大多數(shù)深度學(xué)習(xí)網(wǎng)絡(luò)技術(shù)(例如 GoogLeNet)的系數(shù) / 特性圖都可存在片上存儲器中,以提高計(jì)算效率和降低成本。
表 2 :器件片上存儲器大小
片上存儲能消除片外存儲器訪問引起的巨大時延問題,將系統(tǒng)的實(shí)時性能最大化。
封裝內(nèi)的 HBM
針對需要高帶寬存儲器的情況,賽靈思在部分 Virtex UltraScale+ 器件中提供 HBM。除了封裝內(nèi) HBM堆棧的 460GB/s 存儲器帶寬,賽靈思 HBM 存儲器控制器還增加更大的靈活性,以便將工作負(fù)載高效映射到器件和可用存儲器帶寬,將效率和計(jì)算效率最大化。
功能安全性
賽靈思長期以來能夠滿足各種功能安全性,包括工業(yè)自動化以及最近的 ADAS。賽靈思工具和器件經(jīng)過重新設(shè)計(jì),以便支持功能安全性應(yīng)用,并達(dá)到相應(yīng)認(rèn)證等級 [ 參考資料 45]。
因此,多家汽車制造商在安全關(guān)鍵型 ADAS 應(yīng)用中采用 Zynq?-7000 All Programmable SoC 量產(chǎn)器件。Zynq UltraScale+ MPSoC 還進(jìn)一步擴(kuò)大對功能安全應(yīng)用的支持。
結(jié)論
系統(tǒng)設(shè)計(jì)人員在這個新的計(jì)算時代面對不同選擇。賽靈思 FPGA 和 SoC 為系統(tǒng)設(shè)計(jì)人員提供最低風(fēng)險,幫助其滿足未來系統(tǒng)的核心要求與挑戰(zhàn),同時提供足夠的靈活性以確保平臺在未來不會落伍。
在深度學(xué)習(xí)領(lǐng)域,UltraScale 架構(gòu)中的 DSP 架構(gòu)內(nèi)在的并行性能夠針對具有可伸縮 INT8 向量點(diǎn)積性能的神經(jīng)網(wǎng)絡(luò)加強(qiáng)卷積和矩陣乘法計(jì)算量。這能為深度學(xué)習(xí)推斷實(shí)現(xiàn)更低時延??焖?DSP 陣列、最高效的block RAM 存儲器層級以及 UltraRAM 存儲器陣列可實(shí)現(xiàn)最佳功率效率。
現(xiàn)在,利用xilinx官網(wǎng)中的開發(fā)套件,以及多種設(shè)計(jì)輸入工具,例如 HLS、SDSoC 和 SDAccel 工具,用戶可發(fā)揮賽靈思器件的諸多優(yōu)勢。
參考資料
1. ZDNET."Vision and neural nets drive demand for more powerful chips."Accessed April 6, 2017.
.
2. NVidia Corporation. .
3. MJ Misic, DM Durdevic, MV Tomasevic."Evolution and trends in GPU computing" MIPRO, 2012 Proceedings of the 35th International Convention, 289-294. .
4. Nicole Hemsoth."FPGAs Focal Point for Efficient Neural Network Inference."Last accessed on April 6,
2017. https://www.nextplatform.com/2017/01/26/fpgas-focal-point-efficient-neur... ce/ .
5. .
6. Babak Falsafi, Bill Dally, Desh Singh, Derek Chiou, Joshua J. Yi, Resit Sendag, "FPGAs versus GPUs in Datacenters," IEEE Micro, vol. 37, no. 1, pp. 60-72, Jan 2017. ?arnumber=7866802 .
7. Richard Vuduc, Aparna Chandramowlishwaran, Jee Choi, Murat Guney, Aashay Shringarpure. "On the limits of GPU acceleration."HotPar'10 Proceedings of the 2nd USENIX conference on Hot topics in parallelism.Pages 13-13.Berkeley, CA.June 14–15, 2010.
8. Fowers, J., Ovtcharov, K., Strauss, K., Chung, E.S., Stitt, G.:A High Memory Bandwidth FPGA Accelerator for Sparse Matrix-Vector Multiplication.In:IEEE Int. Symp. on Field-Programmable Custom Computing Machines (2014). ?arnumber=6861585
9. B. Liu, M. Wang, H. Foroosh, M. Tappen, and M. Pensky."Sparse Convolutional Neural Networks."Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference. .
10. Yaman Umuroglu, et al."Random Access Schemes for Efficient FPGA SpMV Acceleration."Microprocessors & Microsystems Volume 47 Issue PB, November 2016 Pages 321-332. (figure 4 - shows utilization)
11. Sparsh Mittal, Jeffrey S. Vetter."A Survey of CPU-GPU Heterogeneous Computing Techniques."ACM Computing Surveys (CSUR) Volume 47 Issue 4, July 2015 Article No. 69.
12. Xilinx white paper, "Reduce Power and Cost by Converting from Floating Point to Fixed Point." Last accessed April 6, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp491-floating... .
13. Marc Baboulin et al."Accelerating Scientific Computations with Mixed Precision Algorithms."Computer Physics Communications 180 (2009) 2526-2533. .
14. Suyog Gupta et al."Deep Learning with Limited Numerical Precision."ICML'15 Proceedings of the 32nd International Conference on International Conference on Machine Learning - Volume 37 Pages1737-1746. https://arxiv.org/pdf/1502.02551.pdf .
15. William Dally."High-Performance Hardware for Machine Learning."Last accessed April 6, 2017. https://media.nips.cc/Conferences/2015/tutorialslides/Dally-NIPS-Tutoria... .
16. NVidia Corporation."NVIDIA TensorRT."Last accessed April 6, 2017.
https://developer.nvidia.com/tensorrt .
17. Xinxin Mei, Xiaowen Chu."Dissecting GPU Memory Hierarchy through Microbenchmarking." IEEE Transactions on Parallel and Distributed Systems Volume:28, Issue:1, Page 72-86, Jan. 1 2017.
https://arxiv.org/pdf/1509.02308.pdf .
18. NVidia Corporation."Cuda C Programming Guide" Last accessed on April 6, 2017.
.
19. Mark Gebhart et al."Unifying Primary Cache, Scratch, and Register File Memories in a Throughput Processor."MICRO-45 Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, Pages 96-106, Vancouver, B.C., CANADA - December 01–05, 2012.
https://research.nvidia.com/sites/default/files/publications/Gebhart_MIC... .
20. Chris Edwards."Minimize Memory Moves for Greener Data Centers" Last accessed April 6, 2017.
.
21. Vincent Vanhouckehttps et al."Improving the Speed of Neural Networks on CPUs" Proc.Deep Learning and Unsupervised Feature Learning NIPS Workshop 2011 [online] Available: .
22. Christian Szegedy et al."Going Deeper with Convolutions" Proceedings Computer Vision and Pattern Recognition (CVPR).Pages 1–9, 2015.
.
23. Funding Universe."Xilinx, Inc. History" Last accessed April 6, 2017.
.
24. Xilinx Inc. "Software Zone."Last accessed April 6, 2017.
https://www.xilinx.com/products/design-tools/software-zone.html .
25. Xilinx Inc. "Acceleration Zone."Last accessed April 6, 2017.
.
26. ANANDTECH."NVIDIA Announces Tesla P40 & Tesla P4 - Neural Network Inference."Last accessed April 6, 2017.
27. Xilinx white paper, ''Deep Learning with INT8 Optimization on Xilinx Devices."Last accessed April 6,2017.
https://www.xilinx.com/support/documentation/white_papers/wp486-deep-lea... .
28. Philipp Gysel et al."Hardware-Oriented Approximation of Convolutional Neural networks."ICLR2016.
https://arxiv.org/pdf/1604.03168v3.pdf .
29. Chenzhuo Zhu et al."Trained ternary quantization."ICLR 2017.https://arxiv.org/pdf/1612.01064.pdf.
30. Yaman Umuroglu et al."FINN:A Framework for Fast, Scalable Binarized Neural Network Inference."25th International Symposium on FPGAs, February 2017.
https://arxiv.org/pdf/1612.07119.pdf .
31. Wonyong Sunget et al."Resiliency of Deep Neural Networks under Quantization."ICLR 2016.
https://arxiv.org/pdf/1511.06488v3.pdf .
32. Nicholas J. Fraser et al."Scaling Binarized Neural Networks on Reconfigurable Logic."HiPEAC 2017.
https://arxiv.org/abs/1701.03400 .
33. Cl′ement Farabet, Yann LeCun, Koray Kavukcuoglu, Eugenio Culurciello, Berin Martini, Polina Akselrod, Selcuk Talay.Large-Scale FPGA-based Convolutional Networks.
34. C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao, and J. Cong.Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks.ACM/SIGDA ISFPGA, pages 161–170.ACM, 2015.
https://pdfs.semanticscholar.org/2ffc/74bec88d8762a613256589891ff323123e...
35. Xilinx, Inc. "Partial Reconfiguration in the Vivado Design Suite."Last accessed April 6, 2017.
https://www.xilinx.com/products/design-tools/vivado/implementation/parti... .
36. Song Han et al."ESE:Efficient Speech Recognition Engine with Sparse LSTM on FPGA."International Symposium on FPGA 2017.
https://arxiv.org/pdf/1612.00694.pdf .
37. Jian Ouyang et al."SDA:Software-Defined Accelerator for General-Purpose Big Data Analysis System."Hotchip 2014.
.
38. Shreyas G Singapura et al."FPGA Based Accelerator for Pattern Matching in YARA Framework."CENG 2015. %20CENG-2015-05.pdf .
39. Yuichiro Utan et al."A GPGPU Implementation of Approximate String Matching with Regular Expression Operators and Comparison with Its FPGA Implementation."PDPTA 2012.
https://pdfs.semanticscholar.org/2667/ac95d36ab63ae6eeb4b352f4c20dc46344... .
40. BarraCUDA."The BarraCUDA Project."Last accessed April 6, 2017.
.
41. Edico Genome."DRAGEN Genome Pipeline."Last accessed April 6, 2017. .
42. Microsoft paper, "A Cloud-Scale Acceleration Architecture."Last accessed April 6, 2017.
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/10/Clou... .
43. Xilinx, Inc. "UltraScale Architecture."Last accessed April 6, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp470-ultrasca... .
44. Xilinx white paper, “UltraRAM:Breakthrough Embedded Memory Integration on UltraScale+Devices.”Last accessed April 6, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp477-ultraram... .
45. Xilinx white paper, "Xilinx Reduces Risk and Increases Efficiency for IEC61508 and ISO26262 Certified Safety Applications."Last accessed April 6, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp461-function...
評論
查看更多