剛好在知乎上看到這個問題如何用FPGA加速卷積神經網絡CNN,恰巧我的碩士畢業(yè)設計做的就是在FPGA上實現CNN的架構,在此和大家分享。
先說一下背景,這個項目的目標硬件是Xilinx的PYNQ。該開發(fā)板加載了Linux Ubuntu操作系統(tǒng),可以在CPU上運行現有的Python CNN架構如Caffe和Theano。本設計旨在用PYNQ加載的ZYNQ FPGA對于CNN核心計算進行硬件加速,以達到對于大規(guī)模信息流進行大吞吐量CNN處理。
該設計結構可以分為CPU端(前端)和FPGA端(后端)兩部分。前端使用的是Python,用來與其他軟件項目進行交互。前端將數據以數據流的形式由DDR傳輸到FPGA kernel。后端的FPGA硬件設計使用的是Synchronous Dataflow Paradigm。在這個結構之下,數據流以AXI-Stream的協議穿梭于每一個CNN層。每一個層都使用并行結構加上高性能流水線,使整體吞吐量效率達到一個非??捎^的水平。
上圖為實現LeNet-5的硬件結構示意圖。對于LeNet-5,該設計達到了1.88GOP/S的吞吐量,與PYNQ上的DUAL CORE ARM CPU相比加速約32倍。目前該架構可運行LeNet和CIFAR10,有教程。
這個項目結構比較簡單,適合FPGA初學者作為研究起點使用。感興趣的話,可以以這個架構為基礎設計幾個CNN的應用,或者在它的基礎上進行優(yōu)化和再創(chuàng)造。
-
FPGA
+關注
關注
1630文章
21799瀏覽量
606196 -
神經網絡
+關注
關注
42文章
4781瀏覽量
101202
發(fā)布評論請先 登錄
相關推薦
【PYNQ-Z2申請】基于PYNQ的卷積神經網絡加速
卷積神經網絡如何使用
卷積神經網絡簡介:什么是機器學習?
卷積神經網絡CNN圖解
![<b class='flag-5'>卷積</b><b class='flag-5'>神經網絡</b><b class='flag-5'>CNN</b>圖解](https://file1.elecfans.com//web2/M00/A6/E7/wKgZomUMQSmAVcnOAABTPG5Z9fE753.png)
評論