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