如何使用FPGA加速機(jī)器學(xué)習(xí)算法
當(dāng)前,AI因?yàn)槠銫NN(卷積神經(jīng)網(wǎng)絡(luò))算法出色的表現(xiàn)在圖像識別領(lǐng)域占有舉足輕重的地位。基本的CNN算法需要大量的計(jì)算和數(shù)據(jù)重用,非常適合使用FPGA來實(shí)現(xiàn)。上個(gè)月,Ralph Wittig(Xilinx CTO Office的卓越工程師)在2016年OpenPower峰會(huì)上發(fā)表了約20分鐘時(shí)長的演講并討論了包括清華大學(xué)在內(nèi)的中國各大學(xué)研究CNN的一些成果。
本文引用地址:http://m.butianyuan.cn/article/201710/366437.htm在這項(xiàng)研究中出現(xiàn)了一些和CNN算法實(shí)現(xiàn)能耗相關(guān)的幾個(gè)有趣的結(jié)論:
①限定使用片上Memory;
②使用更小的乘法器;
③進(jìn)行定點(diǎn)匹配:相對于32位定點(diǎn)或浮點(diǎn)計(jì)算,將定點(diǎn)計(jì)算結(jié)果精度降為16位。如果使用動(dòng)態(tài)量化,8位計(jì)算同樣能夠產(chǎn)生很好的結(jié)果。
在演講中Wittig還提到了CNN相關(guān)的兩款產(chǎn)品:CAPI-compatible Alpha DataADM-PCIE-8K5 PCIe加速卡和Auviz Systems提供的AuvizDNN(深度神經(jīng)網(wǎng)絡(luò))開發(fā)庫。
ADM-PCIE-8K5 PCIe加速卡
Alpha DataADM-PCIE-8K5 PCIe加速卡用于X86和IBM Power8/9數(shù)據(jù)中心和云服務(wù),加速卡基于Xilinx Kintex UltraScale KU115 FPGA,支持Xilinx SDAcess基于OpenCL、C/C++的開發(fā)和基于Vivado HLx的HDL、HLS設(shè)計(jì)流程。
圖1 Alpha DataADM-PCIE-8K5 PCIe加速卡
Alpha DataADM-PCIE-8K5 PCIe加速卡片上帶32GB DDR4-2400內(nèi)存(其中16GB含ECC),雙通道SFP+支持雙通道10G以太網(wǎng)接入。提供包括高性能PCIe/DMA在內(nèi)的板級支持包(BSP) 、OpenPOWER架構(gòu)的CAPI、FPGA參考設(shè)計(jì)、即插即用的O/S驅(qū)動(dòng)和成熟的API等設(shè)計(jì)資源。
AuvizDNN開發(fā)庫
深度學(xué)習(xí)技術(shù)使用大量的已知數(shù)據(jù)來找出一組權(quán)重和偏置值來匹配預(yù)期結(jié)果。處理被稱之為訓(xùn)練,訓(xùn)練的結(jié)果是大量的模型,這一事實(shí)促使工程師們尋求使用GPU之類的專用硬件來進(jìn)行訓(xùn)練和分類計(jì)算。
隨著未來數(shù)據(jù)量的巨幅增長,機(jī)器學(xué)習(xí)將會(huì)搬到云端完成。這樣就急需一種既可以加速算法,又不會(huì)大規(guī)模增加功耗的處理平臺,在這種情況下,F(xiàn)PGA開始登場。
隨著一些列的先進(jìn)開發(fā)環(huán)境投入使用,軟件開發(fā)工程師將他們的設(shè)計(jì)在Xilinx FPGA上實(shí)現(xiàn)變得更加容易。Auviz Systems開發(fā)的AuvizDNN庫為用戶提供優(yōu)化的函數(shù)接口,用戶可以針對不同的應(yīng)用創(chuàng)建自定義的CNN。這些函數(shù)可以方便的通過Xilinx SDAcess這樣的集成開發(fā)環(huán)境調(diào)用。在創(chuàng)建對象和數(shù)據(jù)池后,就會(huì)調(diào)用函數(shù)創(chuàng)建每一個(gè)卷積層、然后是致密層,最后是 softmax層,如下圖2所示。
圖2 實(shí)現(xiàn)CNN的函數(shù)調(diào)用順序
評論