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