<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 【詳解】FPGA:機器深度學(xué)習的未來(lái)?

【詳解】FPGA:機器深度學(xué)習的未來(lái)?

作者: 時(shí)間:2018-08-14 來(lái)源:網(wǎng)絡(luò ) 收藏

最近幾年數據量和可訪(fǎng)問(wèn)性的迅速增長(cháng),使得人工智能的算法設計理念發(fā)生了轉變。人工建立算法的做法被計算機從大量數據中自動(dòng)習得可組合系統的能力所取代,使得計算機視覺(jué)、語(yǔ)音識別、自然語(yǔ)言處理等關(guān)鍵領(lǐng)域都出現了重大突破。深度學(xué)習是這些領(lǐng)域中所最常使用的技術(shù),也被業(yè)界大為關(guān)注。然而,深度學(xué)習模型需要極為大量的數據和計算能力,只有更好的硬件加速條件,才能滿(mǎn)足現有數據和模型規模繼續擴大的需求。

本文引用地址:http://dyxdggzs.com/article/201808/386577.htm

現有的解決方案使用圖形處理單元(GPU)集群作為通用計算圖形處理單元(GPGPU),但現場(chǎng)可編程門(mén)陣列()提供了另一個(gè)值得探究的解決方案。日漸流行的設計工具使其對深度學(xué)習領(lǐng)域經(jīng)常使用的上層軟件兼容性更強,使得更容易為模型搭建和部署者所用。FPGA架構靈活,使得研究者能夠在諸如GPU的固定架構之外進(jìn)行模型優(yōu)化探究。同時(shí),FPGA在單位能耗下性能更強,這對大規模服務(wù)器部署或資源有限的嵌入式應用的研究而言至關(guān)重要。本文從硬件加速的視角考察深度學(xué)習與FPGA,指出有哪些趨勢和創(chuàng )新使得這些技術(shù)相互匹配,并激發(fā)對FPGA如何幫助深度學(xué)習領(lǐng)域發(fā)展的探討。

1.簡(jiǎn)介

機器學(xué)習對日常生活影響深遠。無(wú)論是在網(wǎng)站上點(diǎn)擊個(gè)性化推薦內容、在智能手機上使用語(yǔ)音溝通,或利用面部識別技術(shù)來(lái)拍照,都用到了某種形式的人工智能技術(shù)。這股人工智能的新潮流也伴隨著(zhù)算法設計的理念轉變。過(guò)去基于數據的機器學(xué)習大多是利用具體領(lǐng)域的專(zhuān)業(yè)知識來(lái)人工地“塑造”所要學(xué)習的“特征”,計算機從大量示例數據中習得組合特征提取系統的能力,則使得計算機視覺(jué)、語(yǔ)音識別和自然語(yǔ)言處理等關(guān)鍵領(lǐng)域實(shí)現了重大的性能突破。對這些數據驅動(dòng)技術(shù)的研究被稱(chēng)為深度學(xué)習,如今正受到技術(shù)界兩個(gè)重要群體的關(guān)注:一是希望使用并訓練這些模型、從而實(shí)現極高性能跨任務(wù)計算的研究者,二是希望為現實(shí)世界中的新應用來(lái)部署這些模型的應用科學(xué)家。然而,他們都面臨著(zhù)一個(gè)限制條件,即硬件加速能力仍需加強,才可能滿(mǎn)足擴大現有數據和算法規模的需求。

對于深度學(xué)習來(lái)說(shuō),目前硬件加速主要靠使用圖形處理單元(GPU)集群作為通用計算圖形處理單元(GPGPU)。相比傳統的通用處理器(GPP),GPU的核心計算能力要多出幾個(gè)數量級,也更容易進(jìn)行并行計算。尤其是NVIDIA CUDA,作為最主流的GPGPU編寫(xiě)平臺,各個(gè)主要的深度學(xué)習工具均用其來(lái)進(jìn)行GPU加速。最近,開(kāi)放型并行程序設計標準OpenCL作為異構硬件編程的替代性工具備受關(guān)注,而對這些工具的熱情也在高漲。雖然在深度學(xué)習領(lǐng)域內,OpenCL獲得的支持相較CUDA還略遜一籌,但OpenCL有兩項獨特的性能。首先,OpenCL對開(kāi)發(fā)者開(kāi)源、免費,不同于CUDA單一供應商的做法。其次,OpenCL支持一系列硬件,包括GPU、GPP、現場(chǎng)可編程門(mén)陣列(FPGA)和數字信號處理器(DSP)。

1.1. FPGA

作為GPU在算法加速上強有力的競爭者,FPGA是否立即支持不同硬件,顯得尤為重要。FPGA與GPU不同之處在于硬件配置靈活,且FPGA在運行深入學(xué)習中關(guān)鍵的子程序(例如對滑動(dòng)窗口的計算)時(shí),單位能耗下通常能比GPU提供更好的表現。不過(guò),設置FPGA需要具體硬件的知識,許多研究者和應用科學(xué)家并不具備,正因如此,FPGA經(jīng)常被看作一種行家專(zhuān)屬的架構。最近,FPGA工具開(kāi)始采用包括OpenCL在內的軟件級編程模型,使其越來(lái)越受經(jīng)主流軟件開(kāi)發(fā)訓練的用戶(hù)青睞。

對考察一系列設計工具的研究者而言,其對工具的篩選標準通常與其是否具備用戶(hù)友好的軟件開(kāi)發(fā)工具、是否具有靈活可升級的模型設計方法以及是否能迅速計算、以縮減大模型的訓練時(shí)間有關(guān)。隨著(zhù)FPGA因為高抽象化設計工具的出現而越來(lái)越容易編寫(xiě),其可重構性又使得定制架構成為可能,同時(shí)高度的并行計算能力提高了指令執行速度,FPGA將為深度學(xué)習的研究者帶來(lái)好處。

對應用科學(xué)家而言,盡管有類(lèi)似的工具級選擇,但硬件挑選的重點(diǎn)在于最大化提高單位能耗的性能,從而為大規模運行降低成本。所以,FPGA憑借單位能耗的強勁性能,加上為特定應用定制架構的能力,就能讓深度學(xué)習的應用科學(xué)家受益。

FPGA能滿(mǎn)足兩類(lèi)受眾的需求,是一個(gè)合乎邏輯的選擇。本文考察FPGA上深度學(xué)習的現狀,以及目前用于填補兩者間鴻溝的技術(shù)發(fā)展。因此,本文有三個(gè)重要目的。首先,指出深度學(xué)習領(lǐng)域存在探索全新硬件加速平臺的機會(huì ),而FPGA是一個(gè)理想的選擇。其次,勾勒出FPGA支持深度學(xué)習的現狀,指出潛在的限制。最后,對FPGA硬件加速的未來(lái)方向提出關(guān)鍵建議,幫助解決今后深度學(xué)習所面臨的問(wèn)題。

2. FPGA

傳統來(lái)說(shuō),在評估硬件平臺的加速時(shí),必須考慮到靈活性和性能之間的權衡。一方面,通用處理器(GPP)可提供高度的靈活性和易用性,但性能相對缺乏效率。這些平臺往往更易于獲取,可以低廉的價(jià)格生產(chǎn),并且適用于多種用途和重復使用。另一方面,專(zhuān)用集成電路(ASIC)可提供高性能,但代價(jià)是不夠靈活且生產(chǎn)難度更大。這些電路專(zhuān)用于某特定的應用程序,并且生產(chǎn)起來(lái)價(jià)格昂貴且耗時(shí)。

FPGA是這兩個(gè)極端之間的折中。FPGA屬于一類(lèi)更通用的可編程邏輯設備(PLD),并且簡(jiǎn)單來(lái)說(shuō),是一種可重新配置的集成電路。因此,FPGA既能提供集成電路的性能優(yōu)勢,又具備GPP可重新配置的靈活性。FPGA能夠簡(jiǎn)單地通過(guò)使用觸發(fā)器(FF)來(lái)實(shí)現順序邏輯,并通過(guò)使用查找表(LUT)來(lái)實(shí)現組合邏輯?,F代的FPGA還含有硬化組件以實(shí)現一些常用功能,例如全處理器內核、通信內核、運算內核和塊內存(BRAM)。另外,目前的FPGA趨勢趨向于系統芯片(SoC)設計方法,即ARM協(xié)處理器和FPGA通常位于同一芯片中。目前的FPGA市場(chǎng)由Xilinx主導,占據超過(guò)85%的市場(chǎng)份額。此外,FPGA正迅速取代ASIC和應用專(zhuān)用標準產(chǎn)品(ASSP)來(lái)實(shí)現固定功能邏輯。 FPGA市場(chǎng)規模預計在2016年將達到100億美元。

對于深度學(xué)習而言,FPGA提供了優(yōu)于傳統GPP加速能力的顯著(zhù)潛力。GPP在軟件層面的執行依賴(lài)于傳統的馮·諾依曼架構,指令和數據存儲于外部存儲器中,在需要時(shí)再取出。這推動(dòng)了緩存的出現,大大減輕了昂貴的外部存儲器操作。該架構的瓶頸是處理器和存儲器之間的通信,這嚴重削弱了GPP的性能,尤其影響深度學(xué)習經(jīng)常需要獲取的存儲信息技術(shù)。相比較而言,FPGA的可編程邏輯原件可用于實(shí)現普通邏輯功能中的數據和控制路徑,而不依賴(lài)于馮·諾伊曼結構。它們也能夠利用分布式片上存儲器,以及深度利用流水線(xiàn)并行,這與前饋性深度學(xué)習方法自然契合?,F代FPGA還支持部分動(dòng)態(tài)重新配置,當FPGA的一部分被重新配置時(shí)另一部分仍可使用。這將對大規模深度學(xué)習模式產(chǎn)生影響,FPGA的各層可進(jìn)行重新配置,而不擾亂其他層正在進(jìn)行的計算。這將可用于無(wú)法由單個(gè)FPGA容納的模型,同時(shí)還可通過(guò)將中間結果保存在本地存儲以降低高昂的全球存儲讀取費用。

最重要的是,相比于GPU,FPGA為硬件加速設計的探索提供了另一個(gè)視角。GPU和其它固定架構的設計是遵循軟件執行模型,并圍繞自主計算單元并行以執行任務(wù)搭建結構。由此,為深度學(xué)習技術(shù)開(kāi)發(fā)GPU的目標就是使算法適應這一模型,讓計算并行完成、確保數據相互依賴(lài)。與此相反,FPGA架構是為應用程序專(zhuān)門(mén)定制的。在開(kāi)發(fā)FPGA的深度學(xué)習技術(shù)時(shí),較少強調使算法適應某固定計算結構,從而留出更多的自由去探索算法層面的優(yōu)化。需要很多復雜的下層硬件控制操作的技術(shù)很難在上層軟件語(yǔ)言中實(shí)現,但對FPGA執行卻特別具有吸引力。然而,這種靈活性是以大量編譯(定位和回路)時(shí)間為成本的,對于需要通過(guò)設計循環(huán)快速迭代的研究人員來(lái)說(shuō)這往往會(huì )是個(gè)問(wèn)題。

除了編譯時(shí)間外,吸引偏好上層編程語(yǔ)言的研究人員和應用科學(xué)家來(lái)開(kāi)發(fā)FPGA的問(wèn)題尤為艱難。雖然能流利使用一種軟件語(yǔ)言常常意味著(zhù)可以輕松地學(xué)習另一種軟件語(yǔ)言,但對于硬件語(yǔ)言翻譯技能來(lái)說(shuō)卻非如此。針對FPGA最常用的語(yǔ)言是Verilog和VHDL,兩者均為硬件描述語(yǔ)言(HDL)。這些語(yǔ)言和傳統的軟件語(yǔ)言之間的主要區別是,HDL只是單純描述硬件,而例如C語(yǔ)言等軟件語(yǔ)言則描述順序指令,并無(wú)需了解硬件層面的執行細節。有效地描述硬件需要對數字化設計和電路的專(zhuān)業(yè)知識,盡管一些下層的實(shí)現決定可以留給自動(dòng)合成工具去實(shí)現,但往往無(wú)法達到高效的設計。因此,研究人員和應用科學(xué)家傾向于選擇軟件設計,因其已經(jīng)非常成熟,擁有大量抽象和便利的分類(lèi)來(lái)提高程序員的效率。這些趨勢使得FPGA領(lǐng)域目前更加青睞高度抽象化的設計工具。

3. FPGA深度學(xué)習研究里程碑:

1987VHDL成為IEEE標準

1992GANGLION成為首個(gè)FPGA神經(jīng)網(wǎng)絡(luò )硬件實(shí)現項目(Cox et al.)

1994Synopsys推出第一代FPGA行為綜合方案

1996VIP成為首個(gè)FPGA的CNN實(shí)現方案(Cloutier et al.)

2005FPGA市場(chǎng)價(jià)值接近20億美元

2006首次利用BP算法在FPGA上實(shí)現5 GOPS的處理能力

2011Altera推出OpenCL,支持FPGA

出現大規模的基于FPGA的CNN算法研究(Farabet et al.)

2016在微軟Catapult項目的基礎上,出現基于FPGA的數據中心CNN算法加速(Ovtcharov et al.)

4. 未來(lái)展望

深度學(xué)習的未來(lái)不管是就FPGA還是總體而言,主要取決于可擴展性。要讓這些技術(shù)成功解決未來(lái)的問(wèn)題,必須要拓展到能夠支持飛速增長(cháng)的數據規模和架構。FPGA技術(shù)正在適應這一趨勢,而硬件正朝著(zhù)更大內存、更少的特征點(diǎn)數量、更好的互連性發(fā)展,來(lái)適應FPGA多重配置。英特爾收購了Altera,IBM與Xilinx合作,都昭示著(zhù)FPGA領(lǐng)域的變革,未來(lái)也可能很快看到FPGA與個(gè)人應用和數據中心應用的整合。另外,算法設計工具可能朝著(zhù)進(jìn)一步抽象化和體驗軟件化的方向發(fā)展,從而吸引更廣技術(shù)范圍的用戶(hù)。

4.1. 常用深度學(xué)習軟件工具

在深度學(xué)習最常用的軟件工具中,有些工具已經(jīng)在支持CUDA的同時(shí),認識到支持OpenCL的必要性。這將使得FPGA更容易實(shí)現深度學(xué)習的目的。雖然據我們所知,目前沒(méi)有任何深度學(xué)習工具明確表示支持FPGA,不過(guò)下面的表格列出了哪些工具正朝支持OpenCL方向發(fā)展:

Caffe,由伯克利視覺(jué)與學(xué)習中心開(kāi)發(fā),其GreenTea項目對OpenCL提供非正式支持。Caffe另有支持OpenCL的AMD版本。

Torch,基于Lua語(yǔ)言的科學(xué)計算框架,使用范圍廣,其項目CLTorch對OpenCL提供非正式支持。

Theano,由蒙特利爾大學(xué)開(kāi)發(fā),其正在研發(fā)的gpuarray后端對OpenCL提供非正式支持。

DeepCL,由Hugh Perkins開(kāi)發(fā)的OpenCL庫,用于訓練卷積神經(jīng)網(wǎng)絡(luò )。

對于剛進(jìn)入此領(lǐng)域、希望選擇工具的人來(lái)說(shuō),我們的建議是從Caffe開(kāi)始,因為它十分常用,支持性好,用戶(hù)界面簡(jiǎn)單。利用Caffe的model zoo庫,也很容易用預先訓練好的模型進(jìn)行試驗。

4.2. 增加訓練自由度

有人或許以為訓練機器學(xué)習算法的過(guò)程是完全自動(dòng)的,實(shí)際上有一些超參數需要調整。對于深度學(xué)習尤為如此,模型在參數量上的復雜程度經(jīng)常伴隨著(zhù)大量可能的超參數組合??梢哉{整的超參數包括訓練迭代次數、學(xué)習速率、批梯度尺寸、隱藏單元數和層數等等。調整這些參數,等于在所有可能的模型中,挑選最適用于某個(gè)問(wèn)題的模型。傳統做法中,超參數的設置要么依照經(jīng)驗,要么根據系統網(wǎng)格搜索或更有效的隨機搜索來(lái)進(jìn)行。最近研究者轉向了適應性的方法,用超參數調整的嘗試結果為配置依據。其中,貝葉斯優(yōu)化是最常用的方法。

不管用何種方法調整超參數,目前利用固定架構的訓練流程在某種程度上局限了模型的可能性,也就是說(shuō),我們或許只在所有的解決方案中管窺了一部分。固定架構讓模型內的超參數設置探究變得很容易(比如,隱藏單元數、層數等),但去探索不同模型間的參數設置變得很難(比如,模型類(lèi)別的不同),因為如果要就一個(gè)并不簡(jiǎn)單符合某個(gè)固定架構的模型來(lái)進(jìn)行訓練,就可能要花很長(cháng)時(shí)間。相反,FPGA靈活的架構,可能更適合上述優(yōu)化類(lèi)型,因為用FPGA能編寫(xiě)一個(gè)完全不同的硬件架構并在運行時(shí)加速。

4.3. Low power compute clusters低耗能計算節點(diǎn)集群

深度學(xué)習模型最讓人著(zhù)迷的就是其拓展能力。不管是為了從數據中發(fā)現復雜的高層特征,還是為數據中心應用提升性能,深度學(xué)習技術(shù)經(jīng)常在多節點(diǎn)計算基礎架構間進(jìn)行拓展。目前的解決方案使用具備Infiniband互連技術(shù)的GPU集群和MPI,從而實(shí)現上層的并行計算能力和節點(diǎn)間數據的快速傳輸。然而,當大規模應用的負載越來(lái)越各不相同,使用FPGA可能會(huì )是更優(yōu)的方法。FPGA的可編程行允許系統根據應用和負載進(jìn)行重新配置,同時(shí)FPGA的能耗比高,有助于下一代數據中心降低成本。

結語(yǔ)

相比GPU和GPP,FPGA在滿(mǎn)足深度學(xué)習的硬件需求上提供了具有吸引力的替代方案。憑借流水線(xiàn)并行計算的能力和高效的能耗,FPGA將在一般的深度學(xué)習應用中展現GPU和GPP所沒(méi)有的獨特優(yōu)勢。同時(shí),算法設計工具日漸成熟,如今將FPGA集成到常用的深度學(xué)習框架已成為可能。未來(lái),FPGA將有效地適應深度學(xué)習的發(fā)展趨勢,從架構上確保相關(guān)應用和研究能夠自由實(shí)現。



關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>