百度大腦EdgeBoard計(jì)算卡基于Resnet50/Mobile-SSD模型的性能評測
作者:Litchll
ResNet模型
前言
我們自己訓(xùn)練一個(gè)ResNet模型,并在以下三個(gè)環(huán)境中進(jìn)行性能的對比。
AIStudio CPU: 2 Cores 8GB Memory
AIStudio GPU: V100 16GB VMem
Edgeboard
訓(xùn)練模型
模型使用AIStudio 進(jìn)行訓(xùn)練,RESNET、MOBILE訓(xùn)練和預(yù)測代碼有興趣的同學(xué)請手動(dòng)移步到百度AI社區(qū)相關(guān)帖子里查看詳細(xì)內(nèi)容。百度AI社區(qū)——EdgeBoard板塊。
測試結(jié)果
我們執(zhí)行預(yù)測,忽略掉預(yù)處理的速度,僅僅計(jì)算模型前向傳播的時(shí)間。
對于AIstudio平臺(tái),我們計(jì)算以下代碼的運(yùn)行時(shí)間
對于Edgeboard上面的PaddleMobile,我們計(jì)算以下代碼的運(yùn)行時(shí)間
以下為兩個(gè)模型的評測數(shù)據(jù)
ResNet
Edgeboard:
CPU:
GPU:
Mobile_Net
Edgeboard:
GPU:
CPU:
總結(jié):
下表為兩個(gè)模型預(yù)測速度的對比,從中來看,其速度相對于V100的GPU甚至還有一定的優(yōu)勢,讓人難以相信。個(gè)人的分析是由于以下幾個(gè)原因
Paddle-mobile較為啟動(dòng)預(yù)測,與AIstudio的完整版Paddlepaddle相比有啟動(dòng)效率上的優(yōu)勢,AIstudio啟動(dòng)預(yù)測可能較慢。
整個(gè)預(yù)測模型batch size相當(dāng)于1,發(fā)揮不出GPU的優(yōu)勢。
部署預(yù)算按三年算的話,GPU V100價(jià)格大概是10萬,CPU 1萬, EdgeBoard 5千,性價(jià)比還是蠻高的。如果大家對Edgeboard感興趣的話,可自行到百度AI市場購買體驗(yàn),我在這里不做過多贅述。
我在進(jìn)行模型預(yù)測的時(shí)候,使用鉗表對功率進(jìn)行了大概的估計(jì)(條件有限),鉗表的讀數(shù)在0.6A-8A之間變化。結(jié)合使用的12V適配器,我大概估計(jì)Edgeboard的功耗為8W.
以8W的功耗,在單張圖片的預(yù)測速度上面領(lǐng)先了幾十倍功耗的GPU與CPU。Edgeboard的表現(xiàn)還是令我比較驚喜。本來想繼續(xù)移植一個(gè)前段時(shí)間的大尺度的分割網(wǎng)絡(luò)Unet進(jìn)行嘗試,想繼續(xù)試試他最大可以跑的模型大小,但似乎Edgeboard目前還不支持分割,存在了一定遺憾。
另外我在進(jìn)行調(diào)試的時(shí)候,發(fā)現(xiàn)過有幾個(gè)發(fā)布版本的固件不是很穩(wěn)定,有些op有些問題。還發(fā)現(xiàn)了Edgeboard在我的兩臺(tái)筆記本電腦上網(wǎng)絡(luò)不是很穩(wěn)定,經(jīng)常出現(xiàn)相互無法ping通的情況,更換PC后正常,暫時(shí)還沒發(fā)現(xiàn)為什么。
Edgeboard是我第一款接觸的嵌入式神經(jīng)網(wǎng)絡(luò)加速設(shè)備。Paddle-mobile也是我接觸的第一個(gè)移動(dòng)端神經(jīng)網(wǎng)絡(luò)框架,也是我接觸的第一個(gè)基于FPGA實(shí)現(xiàn)的加速框架。從我了解這個(gè)框架到現(xiàn)在僅僅不到半年的時(shí)間,已經(jīng)發(fā)布了多個(gè)模型轉(zhuǎn)換工具,降低了開發(fā)難度,并且支持EasyDL這種方式。雖然目前仍然有一些不成熟的坑需要填,不過相信在軟件的迭代下面,它能成為一個(gè)很好的嵌入式原型設(shè)計(jì)平臺(tái)。
Mobile-SSD模型
這次我們自己訓(xùn)練一個(gè)Mobilenet-SSD模型,增加了不同輸入維度的情況下,模型運(yùn)行效率的對比
AIStudio CPU: 2 Cores 8GB Memory
AIStudio GPU: V100 16GB VMem
Edgeboard
訓(xùn)練模型
模型使用AIStudio提供的官方工程進(jìn)行訓(xùn)練,Mobilenet-SSD訓(xùn)練和預(yù)測代碼有興趣的同學(xué)請手動(dòng)移步到百度AI社區(qū)相關(guān)帖子里查看詳細(xì)內(nèi)容。百度AI社區(qū)——EdgeBoard板塊。
運(yùn)行預(yù)測
我們執(zhí)行預(yù)測,忽略掉預(yù)處理的速度,僅僅計(jì)算模型前向傳播的時(shí)間。
對于AIstudio平臺(tái),我們計(jì)算以下代碼的運(yùn)行時(shí)間
對于Edgeboard上面的PaddleMobile,我們計(jì)算以下代碼的運(yùn)行時(shí)間
以下圖片為預(yù)測結(jié)果,由于時(shí)間有限,沒有很細(xì)致去訓(xùn)練模型,僅僅對比了模型運(yùn)行的速度。
下表為模型在不同維度下的預(yù)測速度的對比,從中來看,其速度相對于V100的GPU基本處于同一個(gè)數(shù)量級,遠(yuǎn)遠(yuǎn)領(lǐng)先與CPU
在之前的文章里我們提到,本來想繼續(xù)移植一個(gè)前段時(shí)間的大尺度的分割網(wǎng)絡(luò)Unet進(jìn)行嘗試,想繼續(xù)試試他最大可以跑的模型大小,但似乎Edgeboard目前還不支持分割,所以我們更換了目標(biāo)檢測網(wǎng)絡(luò)進(jìn)行嘗試。在mobilenet-SSD這個(gè)模型上,Edgeboard最大可以跑到700*700的輸入維度,并且能保持在16fps之上(不包含輸入圖像的語出過程),基本上具有實(shí)時(shí)性。
之前我提到的,在我的兩臺(tái)筆記本電腦上網(wǎng)絡(luò)不是很穩(wěn)定,經(jīng)常出現(xiàn)相互無法ping通的情況,目前經(jīng)過試驗(yàn)之后,發(fā)現(xiàn)問題為板子的網(wǎng)卡在與不支持千兆的網(wǎng)卡進(jìn)行通信時(shí)候,不能正確的協(xié)商,仍然使用千兆模式,使用以下命令固定為百兆即可正常連接
ethtool -s eth0 speed 100 duplex full
Edgeboard是我第一款接觸的嵌入式神經(jīng)網(wǎng)絡(luò)加速設(shè)備。Paddle-mobile也是我接觸的第一個(gè)移動(dòng)端神經(jīng)網(wǎng)絡(luò)框架,也是我接觸的第一個(gè)基于FPGA實(shí)現(xiàn)的加速框架。從我了解這個(gè)框架到現(xiàn)在僅僅不到半年的時(shí)間,已經(jīng)發(fā)布了多個(gè)模型轉(zhuǎn)換工具,降低了開發(fā)難度,并且支持EasyDL這種方式。雖然目前仍然有一些不成熟的坑需要填,不過相信在軟件的迭代下面,它能成為一個(gè)很好的嵌入式原型設(shè)計(jì)平臺(tái)。