可編程邏輯(PLD)是由一種通用的集成電路產生的,,邏輯功能按照用戶對器件編程來確定,,用戶可以自行編程把數字系統(tǒng)集成在PLD中。經過多年的發(fā)展,,可編程邏輯器件由70年代的可編程邏輯陣列器件 (PLD) 發(fā)展到目前的擁有數千萬門的現場可編程陣列邏輯 (FPGA),, 隨著人工智能研究的火熱發(fā)展,FPGA的并行性已經在一些實時性很高的神經網絡計算任務中得到應用,。由于在FPGA上實現浮點數會耗費很多硬件資源,,而定點數雖然精度有限,但是對于不同應用通過選擇合適的字長精度仍可以保證收斂,,且速度要比浮點數表示更快而且資源耗費更少,, 已經使其成為嵌入式AI和機器學習應用程序的理想選擇。
最新的證明點是英國伯明翰大學電子電氣和系統(tǒng)工程系的Yufeng Hao和Steven Quigley最近發(fā)表的論文,。論文標題為“在Xilinx FPGA上實現深度遞歸神經網絡語言模型“,,介紹了使用Python編程語言成功實現和訓練基于固定點深度遞歸神經網絡(DRNN); Theano數學庫和多維數組的框架; 開源的基于Python的PYNQ開發(fā)環(huán)境; Digilent PYNQ-Z1開發(fā)板以及PYNQ-Z1板上的賽靈思Zynq Z-7020的片上系統(tǒng)SoC。Zynq-7000系列裝載了雙核ARM Cortex-A9處理器和28nm的Artix-7或Kintex-7可編程邏輯,。在單片上集成了CPU,DSP以及ASSP,,具備了關鍵分析和硬件加速能力以及混合信號功能,出色的性價比和最大的設計靈活性也是特點之一,。使用Python DRNN硬件加速覆蓋(一種賽靈思公司提出的硬件庫,,使用Python API在硬件邏輯和軟件中建立連接并交換數據),兩個合作者使用此設計為NLP(自然語言處理)應用程序實現了20GOPS(10億次每秒)的處理吞吐量,,優(yōu)于早期基于FPGA的實現2.75倍到70.5倍,。
論文的大部分討論了NLP和LM(語言模型),“它涉及機器翻譯,,語音搜索,,語音標記和語音識別”。本文隨后討論了使用Vivado HLS開發(fā)工具和Verilog語言實現DRNN LM硬件加速器,可以為PYNQ開發(fā)環(huán)境合成一個定制的硬件覆蓋,。由此產生的加速器包含五個過程元素(PE),,能夠在此應用程序中提供20GOPS的數據吞吐量。以下是設計的框圖:
DRNN加速器框圖
Vivado設計套件為下一代超高效率的C/C++和基于IP的設計提供了新的方法,。融入了新的超快高效率設計方法集,,用戶可以實現10-15倍的效率的提升。Vivado HLS支持ISE和Vivado設計環(huán)境,,可以通過集成C,C++和SystemC標準到賽靈思的可編程器件中而無需創(chuàng)建RTL模型,,加快IP的創(chuàng)建。
這篇論文中包括了大量深入的技術細節(jié),,但是這一句話總結了這篇博客文章的理由:“更重要的是,,我們展示了軟件和硬件聯(lián)合設計和仿真過程在神經網絡領域的應用“??紤]到PYNQ-Z1開發(fā)板的售價為229美元,,這種說法是完全正確的。
聲明:本文來源于Xilinx Xcell Daily Blog,,由創(chuàng)新網賽靈思中文社區(qū)編譯,,轉載請注明作者、出處及原文鏈接