新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 云中的機器學習:FPGA 上的深度神經網絡

        云中的機器學習:FPGA 上的深度神經網絡

        作者: 時間:2018-08-14 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201808/386778.htm

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

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

        使用 AuvizDNN 在 上實現的完整 CNN 就像從 C/C++ 程序中調用一連串函數。在建立對象和數據容器后,首先通過函數調用來創建每個卷積層,然后創建致密層,最后是創建 softmax 層,如圖 4 所示。

        圖 4 - 實現 CNN 時的函數調用順序。

        圖 5 – 使用 AuvizDNN 創建 AlexNet 的 L1 的代碼片段。

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

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

        AuvizDNN 提供配置函數,用以創建 CNN 的任何類型和配置參數。AlexNet 僅用于演示說明。CNN 實現內容作為完整比特流載入 FPGA 并從 C/C++ 程序中調用,這使開發人員無需運行實現軟件即可使用 AuvizDNN。

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

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

        一切始于 c/c++

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

        FPGA 可高效實現 CNN。FPGA 的具有出色的單位功耗性能,因此非常適用于數據中心。

        AuvizDNN 函數庫可用來在 FPGA 上實現 CNN。AuvizDNN 能降低 FPGA 的使用復雜性,并提供用戶可從其 C/C++ 程序中調用的簡單函數,用以在 FPGA 上實現加速。使用 AuvizDNN 時,可在 AuvizDNN 庫中調用函數,因此實現 FPGA 加速與編寫 C/C++ 程序沒有太大區別。


        上一頁 1 2 下一頁

        關鍵詞: FPGA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 赞皇县| 泾源县| 云和县| 泰和县| 大方县| 庆阳市| 福贡县| 襄城县| 唐山市| 新晃| 文昌市| 牡丹江市| 汽车| 噶尔县| 舟山市| 广平县| 章丘市| 肃南| 郴州市| 罗城| 沂南县| 芦山县| 专栏| 阿克苏市| 淅川县| 新蔡县| 田阳县| 芦山县| 龙胜| 乌什县| 天水市| 寿阳县| 承德市| 镇沅| 凤冈县| 阳信县| 巍山| 都匀市| 潮安县| 济阳县| 昌黎县|