作者:Cathal Murphy/Yao Fu
為了滿(mǎn)足不斷攀升的數(shù)據(jù)處理需求,未來(lái)的系統(tǒng)需在運(yùn)算能力上進(jìn)行改善。傳統(tǒng)解決方案(如x86處理器)再也無(wú)法以高效率、低成本的方式提供所需運(yùn)算帶寬,因此系統(tǒng)設(shè)計(jì)人員須尋找新的運(yùn)算平臺(tái)。
越來(lái)越多系統(tǒng)設(shè)計(jì)人員將現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和繪圖處理器(GPU)視為能夠滿(mǎn)足未來(lái)需求的運(yùn)算平臺(tái)。本文將分析未來(lái)GPU、FPGA和系統(tǒng)單芯片(SoC)組件,能為新時(shí)代提供哪些必要的運(yùn)算效率和彈性。
云端數(shù)據(jù)中心和自動(dòng)駕駛汽車(chē)等未來(lái)系統(tǒng),需在運(yùn)算能力上進(jìn)行改善,以支持不斷增加的工作負(fù)載,以及不斷演進(jìn)的底層算法[1]。例如,大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、視覺(jué)處理、基因體學(xué)以及先進(jìn)駕駛輔助系統(tǒng)(ADAS)的傳感器融合工作負(fù)載都超出現(xiàn)有系統(tǒng)(如x86系統(tǒng))所能提供的效率與成本效益。
系統(tǒng)架構(gòu)師正在尋找能滿(mǎn)足需求的新運(yùn)算平臺(tái),且該平臺(tái)需要有足夠的彈性,以便整合至現(xiàn)有架構(gòu)中,并支持各種工作負(fù)載及不斷演進(jìn)的算法。此外,許多這類(lèi)系統(tǒng)還須提供確定性低延遲效能,以支持如自動(dòng)駕駛汽車(chē)在實(shí)時(shí)系統(tǒng)上所需的快速反應(yīng)時(shí)間。
因GPU在機(jī)器學(xué)習(xí)訓(xùn)練的高效能運(yùn)算(HPC)領(lǐng)域獲得的成果,因此GPU廠商非常積極地將GPU定位為新時(shí)代運(yùn)算平臺(tái)的最佳選擇。在此過(guò)程中,GPU廠商已修改其架構(gòu)來(lái)滿(mǎn)足機(jī)器學(xué)習(xí)推論的工作負(fù)載。
然而,GPU廠商一直忽視GPU基本架構(gòu)的局限性。而這些局限會(huì)嚴(yán)重影響GPU以高效率、低成本方式提供必要的系統(tǒng)級(jí)運(yùn)算效能之能力,例如,在云端數(shù)據(jù)中心系統(tǒng)中,工作負(fù)載需求在一天內(nèi)會(huì)發(fā)生很大的變化,且這些工作負(fù)載的底層算法也正快速地演進(jìn)。GPU架構(gòu)的局限性會(huì)阻礙很多現(xiàn)今與未來(lái)的工作負(fù)載映像到GPU,導(dǎo)致硬件閑置或低效率。本文稍后提及的章節(jié),將針對(duì)這些局限進(jìn)行更詳細(xì)的介紹。
相反地,F(xiàn)PGA與SoC具有眾多重要特質(zhì),將成為解決未來(lái)系統(tǒng)需求的最佳選擇。這些獨(dú)特特質(zhì)包括:
?針對(duì)所有數(shù)據(jù)類(lèi)型提供極高的運(yùn)算能力和效率
?針對(duì)多種工作負(fù)載提供極高彈性,并將運(yùn)算和效率之優(yōu)勢(shì)最大化
?具備I/O彈性,能方便地整合到系統(tǒng)中并達(dá)到更高效率
?具備大容量芯片內(nèi)建高速緩存,以提供高效率及最低延遲率
看清背景/應(yīng)用/優(yōu)劣勢(shì) 繪圖處理器大拆解
GPU的起源要追溯到PC時(shí)代,輝達(dá)(NVIDIA)聲稱(chēng)在1999年推出世界首款GPU,但其實(shí)許多顯卡推出時(shí)間更早[2]。GPU是一款全新設(shè)計(jì)的產(chǎn)品,用于分擔(dān)及加速圖像處理任務(wù),例如從CPU進(jìn)行像素?cái)?shù)組的遮蔽和轉(zhuǎn)換處理,使其架構(gòu)適用于高并行傳輸率處理[3]。本質(zhì)上,GPU的主要作用為替視覺(jué)顯示器(VDU)提供高質(zhì)量影像。
圖1 GPU模塊圖
多年來(lái),如大規(guī)模矩陣運(yùn)算的醫(yī)療影像應(yīng)用,此類(lèi)少量非影像但需大規(guī)模平行及受內(nèi)存限制的相關(guān)工作負(fù)載,已從GPU而非CPU上實(shí)現(xiàn)。GPU廠商意識(shí)到有機(jī)會(huì)將GPU市場(chǎng)拓展到非影像應(yīng)用,因此如OpenCL這類(lèi)的GPU非影像編程語(yǔ)言應(yīng)運(yùn)而生,而這些編程語(yǔ)言將GPU轉(zhuǎn)化成通用GPU(GPGPU)。
?機(jī)器學(xué)習(xí)
最近,能夠良好映像到GPU運(yùn)行方案的工作負(fù)載之一,便是機(jī)器學(xué)習(xí)訓(xùn)練。透過(guò)充分運(yùn)用GPU,能明顯縮短深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間。
GPU廠商試圖利用機(jī)器學(xué)習(xí)訓(xùn)練的成功,來(lái)牽動(dòng)其在機(jī)器學(xué)習(xí)推論上的發(fā)展(部署經(jīng)過(guò)訓(xùn)練的神經(jīng)網(wǎng)絡(luò))。隨著機(jī)器學(xué)習(xí)算法與所需數(shù)據(jù)精度的演進(jìn),GPU廠商一直在調(diào)整其架構(gòu)以保持自身地位優(yōu)勢(shì)。其中一個(gè)例子就是,NVIDIA在其Tesla P4產(chǎn)品中支持INT8,然而現(xiàn)今許多用戶(hù)探索著更低的精度,如二進(jìn)制和三進(jìn)位[4]。若要利用機(jī)器學(xué)習(xí)與其它領(lǐng)域的發(fā)展,GPU用戶(hù)必須等待新硬件推出之后再購(gòu)買(mǎi)。
GPU廠商想運(yùn)用機(jī)器學(xué)習(xí)作為基礎(chǔ),使自身成為此新運(yùn)算時(shí)代的首選運(yùn)算平臺(tái)。但若要清楚了解GPU是否適合未來(lái)系統(tǒng),仍需做更全面的系統(tǒng)級(jí)分析、考慮GPU架構(gòu)的局限性,以及系統(tǒng)要如何隨時(shí)間發(fā)展演進(jìn)。
?GPU架構(gòu)局限性
本章節(jié)將深入研究典型的GPU架構(gòu),來(lái)揭露其局限性及如何將其應(yīng)用于各種算法和工作負(fù)載。
?SIMT ALU數(shù)組
圖1展示典型的GPU模塊圖。通用GPU運(yùn)算功能的核心是大型算術(shù)邏輯單元(ALU)或運(yùn)算核心。這些ALU通常被認(rèn)為是單指令多線(xiàn)程(SIMT),類(lèi)似于單指令多數(shù)據(jù)(SIMD)。
基本原理是將工作負(fù)載分成數(shù)千個(gè)平行的線(xiàn)程(Thread),ALU需要大量的GPU線(xiàn)程來(lái)預(yù)防閑置。在對(duì)線(xiàn)程進(jìn)行調(diào)度后,不同的ALU組便能平行執(zhí)行相同的(單一)指令。GPU廠商透過(guò)使用SIMT,能提供相較于CPU占位面積更小和功效更高的方案,因?yàn)樵S多核心資源能與同組的其他核心共享。
然而,顯然特定工作負(fù)載(或部分工作負(fù)載)能被有效地映射到這大規(guī)模平行的架構(gòu)中[5]。倘若構(gòu)成工作負(fù)載的線(xiàn)程不具足夠的共通性或平行性,例如連續(xù)或適度平行的工作負(fù)載,ALU則會(huì)呈現(xiàn)閑置狀態(tài),導(dǎo)致運(yùn)算效率降低。此外,構(gòu)成工作負(fù)載的線(xiàn)程預(yù)期要將ALU利用率最大化,進(jìn)而產(chǎn)生延遲。即使在NVIDIA的Volta架構(gòu)中使用獨(dú)立線(xiàn)程調(diào)度的功能,其底層架構(gòu)仍保持SIMT,如同需要大規(guī)模平行工作負(fù)載。
對(duì)于連續(xù)、適度平行或稀疏的工作負(fù)載,GPU提供的運(yùn)算與效率低于CPU所能提供的[6]。其中一個(gè)量化實(shí)例為在GPU上執(zhí)行稀疏矩陣運(yùn)算;假使非零元素?cái)?shù)量較少,并從效能和效率的角度來(lái)看,GPU低于或等同于CPU[7][8]。有趣的是,很多研究人員正在研究稀疏卷積式類(lèi)神經(jīng)網(wǎng)絡(luò),來(lái)利用卷積式類(lèi)神經(jīng)網(wǎng)絡(luò)中的大規(guī)模冗余[9],這趨勢(shì)顯然代表GPU在機(jī)器學(xué)習(xí)推論中所遇到的挑戰(zhàn)。稀疏矩陣運(yùn)算也是大數(shù)據(jù)分析中的關(guān)鍵環(huán)節(jié)[10]。
多數(shù)包含大量平行運(yùn)算任務(wù)的工作負(fù)載亦包含一些連續(xù)或適度平行元素,這意味著需要GPU-CPU混合系統(tǒng)來(lái)滿(mǎn)足系統(tǒng)效能要求[11]。顯然,對(duì)于高階CPU的需求會(huì)影響平臺(tái)的效率與成本效益,而且CPU與GPU之間的通訊需求為系統(tǒng)增添潛在瓶頸。SIMT/GPU架構(gòu)的另一個(gè)局限性是ALU的功能取決于其固定指令集和所支持的數(shù)據(jù)類(lèi)型。
?離散數(shù)據(jù)類(lèi)型精度支援
系統(tǒng)設(shè)計(jì)人員正在探索簡(jiǎn)化數(shù)據(jù)類(lèi)型精度,以此達(dá)到運(yùn)算效能的跳躍式提升,而且不會(huì)明顯降低精度[12][13][14]。機(jī)器學(xué)習(xí)推論導(dǎo)致精度下降,首先是FP16,接著是INT16和INT8。研究人員正在探索進(jìn)一步降低精度,甚至降到二進(jìn)制[4][15]。
GPU ALU通常原生支持單精度浮點(diǎn)類(lèi)型(FP32),而有些情況下支持雙精度浮點(diǎn)(FP64)。FP32是影像工作負(fù)載的首選精度,而FP64通常用于一些HPC應(yīng)用。然而低于FP32的精度通常無(wú)法在GPU中獲得有效支持,因此相較于降低所需的內(nèi)存帶寬,采用標(biāo)準(zhǔn)GPU上降低精度較有優(yōu)勢(shì)。
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)統(tǒng)計(jì)。由于NVIDIA GPU僅能每四個(gè)周期進(jìn)行一次族群統(tǒng)計(jì)運(yùn)算,因此對(duì)二進(jìn)制運(yùn)算有極大的影響[18]。
如圖2所示,為了跟上機(jī)器學(xué)習(xí)推論空間的發(fā)展腳步,GPU廠商持續(xù)進(jìn)行必要的芯片修改,以支持如FP16和INT8的有限降低精度數(shù)據(jù)類(lèi)型。其中一個(gè)實(shí)例為,Tesla P4和P40運(yùn)算卡上的NVIDIA GPU支持INT8,為每ALU/Cuda核心提供4個(gè)INT8運(yùn)算。
圖2 NVIDIA降精度支援
然而,依NVIDIA在Tesla P40上的GoogLeNet v1 Inference推出的機(jī)器學(xué)習(xí)推論基準(zhǔn)顯示,INT8方案與FP32方案相比效率僅提升3倍,此結(jié)果顯示在GPU架構(gòu)中強(qiáng)行降低精度,并取得高效率存在較大難度[16]。
隨著機(jī)器學(xué)習(xí)和其他工作負(fù)載轉(zhuǎn)向更低精度和客制化精度,GPU廠商需要在市場(chǎng)上推出更多新產(chǎn)品,且廠商的現(xiàn)有用戶(hù)亦需升級(jí)平臺(tái),才能受益于此領(lǐng)域的發(fā)展。
內(nèi)存多階層把關(guān) 軟件定義數(shù)據(jù)到達(dá)路徑艱辛
與CPU類(lèi)似,GPU中的數(shù)據(jù)流也由軟件定義,并取決于GPU嚴(yán)格且復(fù)雜的內(nèi)存階層[17],而典型的GPU內(nèi)存階層如圖3所示。每個(gè)線(xiàn)程在緩存器檔案中都有自己的內(nèi)存空間,用以?xún)?chǔ)存線(xiàn)程的局部變量。同一個(gè)模塊內(nèi)的少量線(xiàn)程可透過(guò)共享內(nèi)存來(lái)通訊;且所有線(xiàn)程皆能透過(guò)全局或芯片外內(nèi)存通訊[18]。
如圖3所示,由于數(shù)據(jù)需從緩存器檔案橫跨整個(gè)內(nèi)存階層到全局內(nèi)存,造成與內(nèi)存存取相關(guān)的功耗和延遲分別增加100倍和80倍以上[15][17][19]。此外,內(nèi)存沖突是必然的,同時(shí)亦會(huì)增加延遲導(dǎo)致ALU閑置,進(jìn)而降低運(yùn)算能力和效率。
圖3 典型的GPU內(nèi)存階層
因此,若想發(fā)揮GPU的運(yùn)算和效率潛能,工作負(fù)載的數(shù)據(jù)流必須準(zhǔn)確映像到GPU內(nèi)存階層。事實(shí)上,很少工作負(fù)載具備足夠的數(shù)據(jù)局部性來(lái)有效地映像到GPU上。對(duì)多數(shù)的工作負(fù)載而言,當(dāng)在GPU上運(yùn)行時(shí),實(shí)際的運(yùn)算能力和效率會(huì)大打折扣,解決方案的延遲也會(huì)增加[19][20]。
機(jī)器學(xué)習(xí)推論作為量化實(shí)例,能清楚展現(xiàn)出數(shù)據(jù)流的局限性。GPU必須進(jìn)行如128筆的批處理(Batch),以獲得高效率但延遲更長(zhǎng)的解決方案。最終,批處理使機(jī)器學(xué)習(xí)處理局部化,但須付出增加延遲的代價(jià)[21],而此結(jié)果能清楚的在GoogLeNet v1 Inference的NVIDIA P40基準(zhǔn)檢驗(yàn)中看到。對(duì)于GoogLeNet v1來(lái)說(shuō),其網(wǎng)絡(luò)因P40內(nèi)存帶寬而受到運(yùn)算束縛,因此減少與批處理有關(guān)的內(nèi)存帶寬并不會(huì)產(chǎn)生很大的幫助。然而,P40顯然需要透過(guò)128的批處理以達(dá)到50%的GPU理論效能,但同時(shí)也增加系統(tǒng)的延遲[16]。
某些情況下,資料可透過(guò)CPU進(jìn)行前置處理,以便工作負(fù)載能更有效的映像到GPU SIMT架構(gòu)和內(nèi)存階層,但其代價(jià)則是產(chǎn)生更多CPU運(yùn)算和功耗,因而抵消了GPU的優(yōu)勢(shì)[7]。
?有限I/O選項(xiàng)
如本文一開(kāi)始的段落所述,GPU原本的角色是作為協(xié)同處理器。為了促進(jìn)與主機(jī)溝通,GPU以往只有一個(gè)PCIe接口與幾個(gè)如GDDR5的芯片外接DRAM接口。近期的產(chǎn)品中,有些GPU采用硬件接口來(lái)進(jìn)行GPU到GPU的通訊。而CPU仍須連接網(wǎng)絡(luò)來(lái)分配任務(wù)予GPU,此不僅增加系統(tǒng)功耗,還會(huì)因PCIe有限的帶寬而帶來(lái)瓶頸。例如,支持PCIe 3.0×16的NVIDIA Tesla 40,只能擁有16GB/s的帶寬。
GPU廠商已開(kāi)始建構(gòu)小型SoC,例如NVIDIA Tegra X1,其能整合GPU運(yùn)算、Arm處理器、一些通用汽車(chē)周邊和如HDMI、MIPI、SIP、CAN的基礎(chǔ)以太網(wǎng)絡(luò)等。由于上述組件具備少量運(yùn)算能力,因此必須倚賴(lài)額外的分離式GPU來(lái)達(dá)到必要的運(yùn)算能力。然而,分離的GPU接口有很大局限性,例如Tegra X1僅支持PCIe 2.0×4,導(dǎo)致嚴(yán)重瓶頸,且額外SoC的功耗會(huì)更進(jìn)一步降低平臺(tái)的效率。
?芯片內(nèi)建內(nèi)存資源
除了延遲、效率和傳輸率方面的不利影響,芯片外內(nèi)存的帶寬要明顯低于局部/芯片內(nèi)建內(nèi)存。因此,若工作負(fù)載需要依靠芯片外內(nèi)存,不僅芯片外內(nèi)存的帶寬會(huì)成為瓶頸,且運(yùn)算資源也會(huì)被閑置,從而降低GPU能提供的運(yùn)算功能和效率。
因此,更有利的做法是采用大型、低延遲且高帶寬的芯片內(nèi)建內(nèi)存,再以機(jī)器學(xué)習(xí)推論為例,GoogLeNet共需27.2MB的內(nèi)存空間;假設(shè)執(zhí)行FP32,是沒(méi)有GPU能提供的,這意味著需要芯片外內(nèi)存[22]。在很多情況下,則需采用高成本的高帶寬內(nèi)存(HBM)和批處理,以防止核心處于閑置狀態(tài)。若選擇具更大型的芯片內(nèi)建內(nèi)存組件,便能避免HBM成本及額外的延遲和功耗問(wèn)題。
?功耗范圍
GPU廠商在設(shè)計(jì)板卡和GPU時(shí)通常要適用于250W的功耗上限,并依靠有效熱管理來(lái)調(diào)節(jié)溫度。針對(duì)機(jī)器學(xué)習(xí)推論市場(chǎng),NVIDIA已開(kāi)發(fā)如Tesla M4和P4等滿(mǎn)足75W功耗范圍的組件。雖然75W已遠(yuǎn)超出所允許的系統(tǒng)級(jí)功耗和熱范圍,但GPU的絕對(duì)功耗依然是阻礙GPU被廣泛采用的因素之一。
功能安全性
GPU源于消費(fèi)圖像處理和高效能運(yùn)算領(lǐng)域,其不存在功能安全性的需求。但隨著GPU廠商瞄準(zhǔn)ADAS市場(chǎng),功能安全性就成了必要條件,因此為用于ADAS系統(tǒng)中,組件需要重新設(shè)計(jì),以確保達(dá)到所需的功能安全性認(rèn)證等級(jí)。這對(duì)GPU廠商來(lái)說(shuō)不僅是一個(gè)長(zhǎng)期且涉及各方面的學(xué)習(xí)過(guò)程,還需要新工具和設(shè)備。
實(shí)現(xiàn)多元應(yīng)用推手 FPGA/SoC好處多
?原始運(yùn)算能力
與GPU擁護(hù)者的說(shuō)法不同,單一個(gè)FPGA組件能提供的原始運(yùn)算能力,能達(dá)到38.3 INT8 TOP/s的效能。NVIDIA Tesla P40加速卡以基礎(chǔ)頻率運(yùn)行時(shí)提供相似的40 INT8 TOP/s原始運(yùn)算能力,但功耗是FPGA方案的2倍多[26]。
此外,F(xiàn)PGA組件的彈性能支持各種數(shù)據(jù)類(lèi)型的精度[27]。例如,針對(duì)二值化神經(jīng)網(wǎng)絡(luò),F(xiàn)PGA可提供500TOPs/s的超高二進(jìn)制運(yùn)算能力(假設(shè)2.5LUT/?運(yùn)算的情況),相當(dāng)于GPU典型效能的25倍。有些精度較適用于DSP資源,有些則能在可編程邏輯中運(yùn)行,還有些適合將兩者結(jié)合起來(lái)使用,而這些彈性確保組件的運(yùn)算和效率能隨著精度降低,且降低到二進(jìn)制。機(jī)器學(xué)習(xí)領(lǐng)域的大量研究都從運(yùn)算、精度和效率角度來(lái)進(jìn)行最佳精度的研究[28~32]。無(wú)論最佳點(diǎn)在哪,對(duì)于給予的工作負(fù)載都能隨之調(diào)整。
多年來(lái),許多FPGA用戶(hù)針對(duì)多種工作負(fù)載,運(yùn)用脈動(dòng)數(shù)組處理設(shè)計(jì)達(dá)到最佳效能,其中包括機(jī)器學(xué)習(xí)推論[33][34]。
有趣的是,NVIDIA為了現(xiàn)今的深度學(xué)習(xí)工作負(fù)載來(lái)提高可用的運(yùn)算能力和效率,在Volta架構(gòu)中以Tensor Core形式強(qiáng)化類(lèi)似的功能。然而,深度學(xué)習(xí)工作負(fù)載會(huì)隨著時(shí)間演進(jìn),因此Tensor Core架構(gòu)亦需要改變,且GPU用戶(hù)也需等待購(gòu)買(mǎi)新的GPU硬件。
?效率和功耗
從系統(tǒng)層級(jí)來(lái)看,運(yùn)算平臺(tái)必須在指定的功率和熱范圍內(nèi)提供最大運(yùn)算能力。為滿(mǎn)足此需求,運(yùn)算平臺(tái)必須:
1. 處于允許的功率范圍內(nèi)
2. 在功率預(yù)算內(nèi)將運(yùn)算能力最大化
All Programmable系列組件,使用戶(hù)能選擇與功率和熱范圍最相符的組件。如表1所示,從原始運(yùn)算角度來(lái)看,該組件能針對(duì)固定精度數(shù)據(jù)類(lèi)型提供高效通用運(yùn)算平臺(tái),主要是因?yàn)镕PGA架構(gòu)中的間接開(kāi)銷(xiāo)較低。例如,GPU需要更多復(fù)雜性圍繞其運(yùn)算資源,以促進(jìn)軟件可編程功能。對(duì)于當(dāng)今的深度學(xué)習(xí)工作負(fù)載的張量(Tensor)運(yùn)算,NVIDIA的Tesla V100憑借已強(qiáng)化的Tensor Core達(dá)到能與FPGA和SoC匹敵的效率。然而,深度學(xué)習(xí)工作負(fù)載正以非??斓乃俣妊葸M(jìn),因此無(wú)法確定NVIDIA Tensor Core的高效率能在深度學(xué)習(xí)工作負(fù)載維持多久。
由此看來(lái),對(duì)于其他通用工作負(fù)載,NVIDIA V100亦面臨效率的挑戰(zhàn)。鑒于本文之前介紹的局限性,對(duì)于實(shí)際的工作負(fù)載與系統(tǒng),GPU很難達(dá)到如表1中所提供的數(shù)字。
?All Programmable組件彈性
賽靈思透過(guò)將硬件可編程資源(如邏輯、路徑和I/O)與具彈性且獨(dú)立的整合核心區(qū)塊(如DSP分割和UltraRAM)結(jié)合,并將全部構(gòu)建在領(lǐng)先制程技術(shù)上,如臺(tái)積電(TSMC)的16nm FinFET制程,進(jìn)而達(dá)到這種平衡。
硬件可編程性和彈性,意味著底層硬件通過(guò)配置可滿(mǎn)足指定工作負(fù)載的需求。隨后,數(shù)據(jù)路徑甚至能在運(yùn)行時(shí),透過(guò)部分可重組功能簡(jiǎn)易地進(jìn)行重新配置[35]。圖4試圖舉例All Programmable組件提供的部分彈性。核心(或用戶(hù)設(shè)計(jì)元素)可直接連接可編程I/O、任意其它核心、LUTRAM、Block RAM和UltraRAM、及外部?jī)?nèi)存等。
圖4 All Programmable數(shù)據(jù)路徑和各種形式IO
硬件可編程性組件意味著它們不存在這類(lèi)的特定局限,如SIMT或固定數(shù)據(jù)路徑等。無(wú)論是大規(guī)模平行、適度平行、管線(xiàn)連續(xù)或混合形式,都能獲得賽靈思組件的運(yùn)算能力和效率。此外,若底層算法改變,例如機(jī)器學(xué)習(xí)網(wǎng)絡(luò)的發(fā)展,則平臺(tái)也能隨之調(diào)整。
很多系統(tǒng)和工作負(fù)載中都能看到FPGA與SoC組件發(fā)揮彈性?xún)?yōu)勢(shì),而機(jī)器學(xué)習(xí)推論就是其中之一。其中機(jī)器學(xué)習(xí)推論的趨勢(shì)就是向稀疏網(wǎng)絡(luò)邁進(jìn),且FPGA與SoC組件用戶(hù)已在利用此趨勢(shì),而NVIDIA本身就是其中一位用戶(hù)。在近期與NVIDIA聯(lián)合編寫(xiě)關(guān)于語(yǔ)音識(shí)別的一篇文章中提到,通過(guò)使用FPGA,相較于CPU能提升43倍速度和40倍效率,而NVIDIA GPU僅能提升3倍速度和11.5倍效率[36]??删幊虜?shù)據(jù)路徑還減少了FPGA的批處理需求,批處理是系統(tǒng)延遲對(duì)比實(shí)時(shí)效能的重要決定因素。
從大數(shù)據(jù)角度來(lái)看,F(xiàn)PGA在處理包括在如可變長(zhǎng)度字符串的復(fù)雜數(shù)據(jù)情況下,SQL工作負(fù)載時(shí)具高效率且快速?;蝮w分析則是一個(gè)實(shí)例,有人已利用GPU來(lái)加速基因體分析,其相較于Intel Xeon CPU方案能提升6至10倍的速度[40]。不過(guò),F(xiàn)PGA提升速度的效果更高,相較于同等CPU可提升約80倍的速度[41]。
最后,對(duì)于正在努力研發(fā)自動(dòng)駕駛功能的汽車(chē)系統(tǒng)設(shè)計(jì)人員來(lái)說(shuō),F(xiàn)PGA與SoC組件的靈活能為他們提供可擴(kuò)展的平臺(tái),以滿(mǎn)足美國(guó)汽車(chē)工程學(xué)會(huì)(SAE)各種完全自動(dòng)駕駛道路的標(biāo)準(zhǔn)。
?各種形式I/O彈性
除了組件運(yùn)算資源的彈性,F(xiàn)PGA的各種形式之I/O彈性能確保組件無(wú)縫整合至既有的基礎(chǔ)架構(gòu),例如在不使用主機(jī)CPU的情況下,直接連接到網(wǎng)絡(luò)或儲(chǔ)存設(shè)備[42]。此外,I/O彈性還允許平臺(tái)針對(duì)基礎(chǔ)架構(gòu)的變化或更新進(jìn)行調(diào)整。
?芯片內(nèi)建內(nèi)存
如表2所示,這種龐大的芯片內(nèi)建內(nèi)存快取,代表著多數(shù)的工作負(fù)載內(nèi)存需求是透過(guò)芯片內(nèi)建內(nèi)存提供,來(lái)降低外部?jī)?nèi)存存取所帶來(lái)的內(nèi)存瓶頸,以及如HBM2這類(lèi)高帶寬內(nèi)存的功耗和成本問(wèn)題。例如,針對(duì)多數(shù)深度學(xué)習(xí)網(wǎng)絡(luò)技術(shù)(例如GoogLeNet)的系數(shù)/?特性圖都可存在芯片內(nèi)建內(nèi)存中,以提高運(yùn)算效率和降低成本。芯片內(nèi)建存取能消除芯片外內(nèi)存存取所引起的巨大延遲問(wèn)題,將系統(tǒng)的效能最大化。
?封裝內(nèi)HBM
針對(duì)需要高帶寬內(nèi)存的情況下,F(xiàn)PGA組件提供HBM,以便工作負(fù)載有效的映像到組件和可用內(nèi)存帶寬,將效能和運(yùn)算效率最大化。
在新的運(yùn)算時(shí)代,系統(tǒng)設(shè)計(jì)人員面臨許多困難選擇。FPGA和SoC為系統(tǒng)設(shè)計(jì)人員提供最低風(fēng)險(xiǎn),來(lái)協(xié)助其滿(mǎn)足未來(lái)系統(tǒng)的核心需求與挑戰(zhàn),同時(shí)提供足夠的彈性以確保平臺(tái)在未來(lái)不會(huì)落伍,堪稱(chēng)兼顧雙重需求。在深度學(xué)習(xí)領(lǐng)域,UltraScale架構(gòu)中DSP架構(gòu)固有的平行性透過(guò)INT8向量點(diǎn)積的擴(kuò)展性效能,為神經(jīng)網(wǎng)絡(luò)強(qiáng)化卷積和矩陣乘法傳輸率,使得深度學(xué)習(xí)推論達(dá)到更低延遲??焖貲SP數(shù)組、最高效率的Block RAM內(nèi)存階層及UltraRAM內(nèi)存數(shù)組的組合可達(dá)到最佳功率效益。
評(píng)論
查看更多