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