當前,AI因為其CNN(卷積神經(jīng)網(wǎng)絡(luò))算法出色的表現(xiàn)在圖像識別領(lǐng)域占有舉足輕重的地位?;镜?a class="innerlink" href="http://ihrv.cn/tags/CNN算法" title="CNN算法" target="_blank">CNN算法需要大量的計算和數(shù)據(jù)重用,非常適合使用FPGA來實現(xiàn)。上個月,Ralph Wittig(Xilinx CTO Office的卓越工程師) 在2016年OpenPower峰會上發(fā)表了約20分鐘時長的演講并討論了包括清華大學(xué)在內(nèi)的中國各大學(xué)研究CNN的一些成果。
在這項研究中出現(xiàn)了一些和CNN算法實現(xiàn)能耗相關(guān)的幾個有趣的結(jié)論:
?、傧薅ㄊ褂闷螹emory;
?、谑褂酶〉?a class="innerlink" href="http://ihrv.cn/tags/乘法器" title="乘法器" target="_blank">乘法器;
?、圻M行定點匹配:相對于32位定點或浮點計算,將定點計算結(jié)果精度降為16位。如果使用動態(tài)量化,8位計算同樣能夠產(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è)計流程。
圖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è)計、即插即用的O/S驅(qū)動和成熟的API等設(shè)計資源。
AuvizDNN開發(fā)庫
深度學(xué)習技術(shù)使用大量的已知數(shù)據(jù)來找出一組權(quán)重和偏置值來匹配預(yù)期結(jié)果。處理被稱之為訓(xùn)練,訓(xùn)練的結(jié)果是大量的模型,這一事實促使工程師們尋求使用GPU之類的專用硬件來進行訓(xùn)練和分類計算。
隨著未來數(shù)據(jù)量的巨幅增長,機器學(xué)習將會搬到云端完成。這樣就急需一種既可以加速算法,又不會大規(guī)模增加功耗的處理平臺,在這種情況下,F(xiàn)PGA開始登場。
隨著一些列的先進開發(fā)環(huán)境投入使用,軟件開發(fā)工程師將他們的設(shè)計在Xilinx FPGA上實現(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ù)池后,就會調(diào)用函數(shù)創(chuàng)建每一個卷積層、然后是致密層,最后是 softmax層,如下圖2所示。
圖2 實現(xiàn)CNN的函數(shù)調(diào)用順序