新聞中心

        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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 望城县| 鲁甸县| 伊宁市| 南投市| 吉林省| 堆龙德庆县| 北安市| 博湖县| 广灵县| 柏乡县| 天长市| 屯昌县| 茌平县| 十堰市| 涟源市| 建瓯市| 丹阳市| 宽城| 山东| 常山县| 涟源市| 临猗县| 绥滨县| 武功县| 浏阳市| 许昌市| 莱州市| 泌阳县| 玉龙| 屯昌县| 古浪县| 嘉善县| 囊谦县| 嘉兴市| 博爱县| 甘孜县| 铜梁县| 吉木乃县| 桐乡市| 湛江市| 醴陵市|