新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 云中的機(jī)器學(xué)習(xí):FPGA 上的深度神經(jīng)網(wǎng)絡(luò)

云中的機(jī)器學(xué)習(xí):FPGA 上的深度神經(jīng)網(wǎng)絡(luò)

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

本文引用地址:http://butianyuan.cn/article/201808/386778.htm

因此,很有必要采用并行計(jì)算。有很多方法可將實(shí)現(xiàn)過程并行化。圖 6 給出了其中一種。在這里,將 11x11 的權(quán)值矩陣與一個(gè) 11x11 的輸入特征圖并行求卷積,以產(chǎn)生一個(gè)輸出值。這個(gè)過程涉及 121 個(gè)并行的乘法-累加運(yùn)算。根據(jù) 的可用資源,我們可以并行對(duì) 512 抑或 768 個(gè)值求卷積。

為了進(jìn)一步提升吞吐量,我們可以將實(shí)現(xiàn)過程進(jìn)行流水線化。流水線能為需要一個(gè)周期以上才能完成的運(yùn)算實(shí)現(xiàn)更高的吞吐量,例如浮點(diǎn)數(shù)乘法和加法。通過流水線處理,第一個(gè)輸出的時(shí)延略有增加,但每個(gè)周期我們都可獲得一個(gè)輸出。

使用 AuvizDNN 在 上實(shí)現(xiàn)的完整 CNN 就像從 C/C++ 程序中調(diào)用一連串函數(shù)。在建立對(duì)象和數(shù)據(jù)容器后,首先通過函數(shù)調(diào)用來創(chuàng)建每個(gè)卷積層,然后創(chuàng)建致密層,最后是創(chuàng)建 softmax 層,如圖 4 所示。

圖 4 - 實(shí)現(xiàn) CNN 時(shí)的函數(shù)調(diào)用順序。

圖 5 – 使用 AuvizDNN 創(chuàng)建 AlexNet 的 L1 的代碼片段。

圖 6 – AlexNets 的性能因 類型不同而不同。

AuvizDNN 是 Auviz Systems 公司提供的一種函數(shù)庫,用于在 FPGA 上實(shí)現(xiàn) CNN。該函數(shù)庫提供輕松實(shí)現(xiàn) CNN 所需的所有對(duì)象、類和函數(shù)。用戶只需要提供所需的參數(shù)來創(chuàng)建不同的層。例如,圖 5 中的代碼片段顯示了如何創(chuàng)建 AlexNet 中的第一層。

AuvizDNN 提供配置函數(shù),用以創(chuàng)建 CNN 的任何類型和配置參數(shù)。AlexNet 僅用于演示說明。CNN 實(shí)現(xiàn)內(nèi)容作為完整比特流載入 FPGA 并從 C/C++ 程序中調(diào)用,這使開發(fā)人員無需運(yùn)行實(shí)現(xiàn)軟件即可使用 AuvizDNN。

FPGA 具有大量的查找表 (LUT)、DSP 模塊和片上存儲(chǔ)器,因此是實(shí)現(xiàn)深度 CNN 的最佳選擇。在數(shù)據(jù)中心,單位功耗性能比原始性能更為重要。數(shù)據(jù)中心需要高性能,但功耗要在數(shù)據(jù)中心服務(wù)器要求限值之內(nèi)。

像賽靈思 Kintex® UltraScale™ 這樣的 FPGA 器件可提供高于 14 張圖像/秒/瓦特的性能,使其成為數(shù)據(jù)中心應(yīng)用的理想選擇。圖 6 介紹了使用不同類型的 FPGA 所能實(shí)現(xiàn)的性能。

一切始于 c/c++

卷積神經(jīng)網(wǎng)絡(luò)備受青睞,并大規(guī)模部署用于處理圖像識(shí)別、自然語言處理等眾多任務(wù)。隨著 CNN 從高性能計(jì)算應(yīng)用 (HPC) 向數(shù)據(jù)中心遷移,需要采用高效方法來實(shí)現(xiàn)它們。

FPGA 可高效實(shí)現(xiàn) CNN。FPGA 的具有出色的單位功耗性能,因此非常適用于數(shù)據(jù)中心。

AuvizDNN 函數(shù)庫可用來在 FPGA 上實(shí)現(xiàn) CNN。AuvizDNN 能降低 FPGA 的使用復(fù)雜性,并提供用戶可從其 C/C++ 程序中調(diào)用的簡(jiǎn)單函數(shù),用以在 FPGA 上實(shí)現(xiàn)加速。使用 AuvizDNN 時(shí),可在 AuvizDNN 庫中調(diào)用函數(shù),因此實(shí)現(xiàn) FPGA 加速與編寫 C/C++ 程序沒有太大區(qū)別。


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉