成員合影(左起)程昕 蘇天祺 薛睿鑫

二、他們做了什么

他們俱樂部參加了第五屆集成電路創(chuàng)新創(chuàng)業(yè)大賽(海云捷迅杯),針對(duì)MobileNet V1的硬件加速器進(jìn)行優(yōu)化。一路過關(guān)斬將,熬夜調(diào)通代碼,更新迭代結(jié)果在華東分賽區(qū)獲得二等獎(jiǎng)。最后絞盡腦汁進(jìn)行優(yōu)化,終于在全國(guó)總決賽獲得海云捷迅杯一等獎(jiǎng)(企業(yè)大獎(jiǎng))。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

俱樂部成員程昕為他們的優(yōu)化方案起名叫“基于稀疏卷積與層融合的流水線優(yōu)化方案”。優(yōu)化手段分別放在量化、排序、傳輸、計(jì)算、流水線這五個(gè)方面。通過優(yōu)化,他們將原3000ms的預(yù)測(cè)時(shí)間,壓縮到接近800ms,速度提升超過3.5倍。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部
“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

最后的推理效果和時(shí)間效果如圖(若將第二層卷積放在arm上進(jìn)行,速度會(huì)慢一點(diǎn)但是精度會(huì)高一些)

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

所有卷積在FPGA上進(jìn)行,速度快,精度稍低(左圖);第二層卷積在ARM上進(jìn)行,速度稍慢,但是精度高(右圖)

三、他們的作品

他們的任務(wù)是需要針對(duì)基于MobileNet V1的SSD目標(biāo)檢測(cè)算法加速器進(jìn)行優(yōu)化,以達(dá)到快速的目標(biāo)檢測(cè)效果。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

1.整體架構(gòu)

Data (數(shù)據(jù))經(jīng)UpSizer和BusMatrix進(jìn)行仲裁,存儲(chǔ)到相應(yīng)的SRAM中,他們將PingPong Buffer取代原SRAM,用來實(shí)現(xiàn)數(shù)據(jù)傳輸和計(jì)算的并行;重新設(shè)計(jì)卷積模塊,并將卷積結(jié)果直接傳入BiasRelu單元,二者采用層融合的方式連接,以便提高數(shù)據(jù)讀寫和傳輸效率。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

(整體的架構(gòu)圖)

2.卷積重構(gòu)

他們采用row-wise,weight stationary的方式重新設(shè)計(jì)卷積模塊,并將乘法的并行度提高到96(3×32)使得網(wǎng)絡(luò)可以同時(shí)計(jì)算32個(gè)卷積核的一行數(shù)據(jù),以加快卷積的計(jì)算速度并提高片上數(shù)據(jù)的復(fù)用性。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

(普通卷積的計(jì)算數(shù)據(jù)流)

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

(逐點(diǎn)卷積的計(jì)算數(shù)據(jù)流)

3.流水線優(yōu)化

為了進(jìn)一步提高計(jì)算流水,他們將卷積(Conv)和偏移、激活(BiasReLU)融合起來并加入PingPong Buffer。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

4.量化方案

他們也對(duì)量化過程進(jìn)行優(yōu)化,并在推理前對(duì)完成對(duì)數(shù)據(jù)的量化并保存結(jié)果。以減少權(quán)重的重復(fù)量化。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

(量化過程示意圖)

5.硬件架構(gòu)

上述架構(gòu)的硬件設(shè)計(jì)如圖所示。他們?cè)O(shè)計(jì)的硬件單元包括包含32個(gè)Conv Core;每個(gè)Conv Core包括3個(gè)8bits乘法器和3個(gè)32bits加法器;Psum Processing負(fù)責(zé)累加并存儲(chǔ)卷積計(jì)算的中間值。

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

6.優(yōu)化結(jié)果

經(jīng)過他們的優(yōu)化,在不同卷積層的加速達(dá)到了最高39倍加速比,平均4.5倍加速比。并且將整體的目標(biāo)識(shí)別速度提升到了最快836ms!

“芯”起征程——海云捷迅杯企業(yè)大獎(jiǎng)獲獎(jiǎng)團(tuán)隊(duì)愛卡絲俱樂部

普通卷積層(左)和逐點(diǎn)卷積層加速比

四、海云捷迅對(duì)他們的評(píng)價(jià)

對(duì)于愛卡絲俱樂部,重慶海云捷迅科技有限公司資深架構(gòu)師萬毅做出如下評(píng)價(jià):

南京大學(xué)的獲獎(jiǎng)團(tuán)隊(duì),首先對(duì)模型demo耗時(shí)的地方做了詳細(xì)的定量分析,準(zhǔn)確的找出了影響性能的問題所在,并根據(jù)分析結(jié)果,系統(tǒng)的提出和實(shí)現(xiàn)了改進(jìn)措施。在量化策略、數(shù)據(jù)搬運(yùn)、卷積實(shí)現(xiàn)、剪枝、并行化方面都做了有效的工作,同時(shí)文檔、匯報(bào)ppt、代碼注釋也做的完善和仔細(xì),測(cè)試效果經(jīng)過評(píng)測(cè)達(dá)到了較好的效果,參賽的團(tuán)隊(duì)做了很多行之有效的工作,是一個(gè)優(yōu)秀的團(tuán)隊(duì)。

——重慶海云捷迅科技有限公司資深架構(gòu)師 萬毅

五、他們的獲獎(jiǎng)心得

愛卡絲俱樂部整個(gè)暑假都埋頭苦干,終于一路披荊斬棘,最后拿到了想要的名次。讓我們來聽聽各個(gè)成員的參賽心得吧!

蘇天祺:在這次比賽中,每位成員都有著很強(qiáng)的責(zé)任感和任務(wù)意識(shí),大家主動(dòng)給自己分配了需要學(xué)習(xí)的內(nèi)容,所以即使是初次接觸,我們的準(zhǔn)備也足夠。而且凡是遇到困難,我們都會(huì)相互討論并且請(qǐng)教有經(jīng)驗(yàn)的學(xué)長(zhǎng)和老師,比賽氣氛簡(jiǎn)直不要太好!

程昕:我們每周都會(huì)開會(huì)啊,大家一股腦把問題拋出來然后相互討論,我們就會(huì)碰撞出很多的火花。我們也會(huì)給自己規(guī)定時(shí)間軸(雖然經(jīng)常做不完),但是給自己一個(gè)ddl,自己就有很多的動(dòng)力!

薛睿鑫:其實(shí)我們初賽過后,性能并不是很好,但是大家也都不氣餒,也沒放棄,那個(gè)STP一直連不上,簡(jiǎn)直要崩潰了,但是一遍一遍的嘗試,一遍一遍的請(qǐng)教相關(guān)老師,終于出了結(jié)果,我們都非常高興。

分享到

songjy

相關(guān)推薦