欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用LUT做一個(gè)可動(dòng)態(tài)配置的卷積核呢?

FPGA之家 ? 來(lái)源:AI加速 ? 2023-11-06 09:07 ? 次閱讀

引言

由于卷積核數(shù)據(jù)在計(jì)算過(guò)程中保持不變,更新較慢。這樣就可以利用LUT來(lái)存儲(chǔ)權(quán)重并同時(shí)進(jìn)行乘法運(yùn)算。LUT乘法器的實(shí)現(xiàn)很早就已經(jīng)研究過(guò),本論文正是在此基礎(chǔ)上,提出了用于實(shí)現(xiàn)可配置的卷積實(shí)現(xiàn)方法。基于LUT的乘法器不會(huì)受到FPGADSP資源的限制,能夠?qū)?a href="http://www.delux-kingway.cn/tags/神經(jīng)網(wǎng)絡(luò)/" target="_blank">神經(jīng)網(wǎng)絡(luò)加速應(yīng)用于低端FPGA芯片。

01

LUT乘法器的實(shí)現(xiàn)

一個(gè)LUT有固定的輸入和輸出管腳,例如在xilinx的zynq系列器件中,LUT有5個(gè)輸入1個(gè)輸出或者4個(gè)輸入兩個(gè)輸出。如何用LUT來(lái)實(shí)現(xiàn)任意大小的乘法運(yùn)算呢?這里用到了一個(gè)基本的數(shù)學(xué)法則:因式分解??紤]一個(gè)補(bǔ)碼數(shù)據(jù)x,其有Bi bit,那么表示為:

cc1ccb26-7c3b-11ee-939d-92fbcf53809c.png

如果這個(gè)數(shù)被一個(gè)常數(shù)c乘,這個(gè)乘法可以被分解為更小bit的乘法,然后對(duì)這些小份乘法進(jìn)行位移和求和。

cc310fa0-7c3b-11ee-939d-92fbcf53809c.png

這樣就將一個(gè)BcxBi bit的乘法分解成多個(gè)BcxL的乘法,而這個(gè)小的乘法就可以去利用LUT來(lái)實(shí)現(xiàn)。將L設(shè)置為L(zhǎng)UT的輸入引腳數(shù)量,可以直接將乘法映射到LUT上,并且對(duì)LUT資源利用效率最高。

02

Compressor加法樹(shù)

上述乘法的分解造成了大量的加法,因此需要較大的加法樹(shù)來(lái)完成各個(gè)乘法結(jié)果移位后的累加?;贕eneralized parallel counters(GPC)充分利用了FPGA中的LUT資源以及進(jìn)位鏈,可以更好的映射到LUT上,減少LUT使用的浪費(fèi)。其主要特點(diǎn)就是在一個(gè)LUT中實(shí)現(xiàn)最多個(gè)全加器的運(yùn)算,這樣能保證進(jìn)位鏈最短,LUT資源利用率最高。

cc4ef740-7c3b-11ee-939d-92fbcf53809c.png

圖2.1 乘法分解求和

03

可配置LUT

LUT是一個(gè)查找表,F(xiàn)PGA中對(duì)代碼邏輯的映射都是映射到查找表中?,F(xiàn)代的LUT有個(gè)特點(diǎn)就是可以進(jìn)行動(dòng)態(tài)配置,意味著可以在運(yùn)行中去更新查找表的值。比如在xilinx的virtex,spartan和zynq器件中LUT就可以通過(guò)移位寄存器的方式來(lái)更新內(nèi)部數(shù)據(jù),32個(gè)時(shí)鐘周期完成。這樣就可以將卷積核數(shù)據(jù)存放在LUT中,然后在需要更新的時(shí)候進(jìn)行更新。

04

可配置卷積的硬件架構(gòu)

卷積運(yùn)算的結(jié)構(gòu)如圖4.1所示,N個(gè)輸入數(shù)據(jù)(x1, x2, .., xN)每個(gè)和c的乘法都被分解為K個(gè)乘法,然后將所有的部分乘法結(jié)果移位送入加法樹(shù)。每個(gè)BcXL的乘法需要的LUT數(shù)量大致為Bc+L個(gè)。加法樹(shù)輸出的Bo位寬會(huì)遠(yuǎn)遠(yuǎn)大于輸入位寬,因此需要進(jìn)行rouding或者截位。

cc5999de-7c3b-11ee-939d-92fbcf53809c.png

圖4.1 基于LUT的卷積運(yùn)算結(jié)構(gòu)

論文中使用了LUT4輸入2輸出,使用4輸入LUT而不是5輸入是因?yàn)槌朔ǚ纸獾奶攸c(diǎn),4bit位寬對(duì)于16bit,8bit整型乘法來(lái)說(shuō)更能充分利用LUT資源。這樣N個(gè)輸入數(shù)據(jù)的每個(gè)部分乘法總共花費(fèi)的LUT數(shù)量就是:

cc74112e-7c3b-11ee-939d-92fbcf53809c.png

乘法和加法導(dǎo)致輸出Bo位寬變大,需要減小位寬。論文采用了faithful rouding的辦法。比如輸入是12bit的數(shù)據(jù),要求輸出也要截位成12bit,如果在最后求和之后再進(jìn)行截位,加法樹(shù)中就因?yàn)橛?jì)算多余位數(shù)求和而浪費(fèi)LUT。如果每個(gè)乘法結(jié)果都截位為12,那么會(huì)造成最后結(jié)果精度較大丟失。如果先對(duì)每個(gè)乘法結(jié)果截位大于12bit的數(shù)據(jù),根據(jù)總共求和的個(gè)數(shù)可以計(jì)算出需要保留的bit位數(shù)。這樣就能夠保證最后加法結(jié)果精度等于或者小于直接截位加法結(jié)果的精度。比如開(kāi)始對(duì)每個(gè)乘法截位2^(-q-g),因?yàn)榭偣灿蠳*Bi/L個(gè)部分積結(jié)果。所以總共的精度損失為:

cc8bc94a-7c3b-11ee-939d-92fbcf53809c.png

通過(guò)限制總精度損失在需要范圍:

cc9a00aa-7c3b-11ee-939d-92fbcf53809c.png

這樣就可以得到g的數(shù)據(jù)。這樣就能最大程度減少LUT的使用同時(shí)能保證良好精度。

ccb136d0-7c3b-11ee-939d-92fbcf53809c.png

圖4.2 3個(gè)輸入x,bit位寬12bit,分解為4個(gè)乘法,輸出要求12bit

現(xiàn)在來(lái)看如何對(duì)LUT進(jìn)行數(shù)據(jù)的更新。由于將LUT用作4輸入2輸出,那么一個(gè)LUT可以計(jì)算出2bit結(jié)果的乘法。于是計(jì)算需要的每個(gè)個(gè)LUT的一部分用于和weights的偶數(shù)部分進(jìn)行乘法,而另一部分用于和weights的奇數(shù)部分乘法。而LUT的配置接口只有一個(gè)CDI,因此就需要分別對(duì)LUT的這兩部分進(jìn)行配置。論文中先計(jì)算對(duì)應(yīng)奇數(shù)部分weights的乘法結(jié)果,存儲(chǔ)到LUT中,然后計(jì)算對(duì)應(yīng)偶數(shù)部分weihts的乘法,存儲(chǔ)到LUT中。

ccd293a2-7c3b-11ee-939d-92fbcf53809c.jpg

圖4.3 動(dòng)態(tài)配置LUT電路圖

從上述架構(gòu)中可以看到,當(dāng)進(jìn)行LUT配置的時(shí)候,LUT是無(wú)法進(jìn)行計(jì)算的。這個(gè)很好解決,可以通過(guò)增加雙倍LUT來(lái)實(shí)現(xiàn),對(duì)沒(méi)有計(jì)算的LUT來(lái)進(jìn)行動(dòng)態(tài)配置,而另一部分LUT進(jìn)行計(jì)算。這樣相當(dāng)于進(jìn)行了ping-pong操作。

ccefd7dc-7c3b-11ee-939d-92fbcf53809c.png

圖4.4 雙LUT結(jié)構(gòu)進(jìn)行計(jì)算

05

結(jié)果

下圖給出了不同卷積核大小以及不同位寬所需要的資源對(duì)比。相比于其他使用LUT來(lái)進(jìn)行乘法和加法操作的方式來(lái)說(shuō),這樣更能最大化利用LUT資源。

cd00dc58-7c3b-11ee-939d-92fbcf53809c.jpg

圖5.1 綜合后資源對(duì)比

總結(jié)

論文中提出的可配置卷積運(yùn)算架構(gòu),可以改善CNN在FPGA的應(yīng)用。充分利用了LUT資源,可以更好的改善時(shí)序性能。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    554

    文章

    8059

    瀏覽量

    350714
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21803

    瀏覽量

    606493
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4785

    瀏覽量

    101250
  • 乘法器
    +關(guān)注

    關(guān)注

    9

    文章

    206

    瀏覽量

    37221
  • LUT
    LUT
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    12586

原文標(biāo)題:用LUT來(lái)做一個(gè)可動(dòng)態(tài)配置的卷積核

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    應(yīng)用于CNN中卷積運(yùn)算的LUT乘法器設(shè)計(jì)

    。利用xilinx器件中LUT的結(jié)構(gòu)特征,設(shè)計(jì)出的乘法器不但能靈活適應(yīng)數(shù)據(jù)位寬,而且能最大限度降低LUT資源使用。 Xilinx ultrascale器件LUT結(jié)構(gòu) 在這里簡(jiǎn)要介紹
    的頭像 發(fā)表于 11-30 11:45 ?2866次閱讀
    應(yīng)用于CNN中<b class='flag-5'>卷積</b>運(yùn)算的<b class='flag-5'>LUT</b>乘法器設(shè)計(jì)

    何用小安派-Eyes-S1做一個(gè)電子木魚(yú)?

    2024年的第篇教程來(lái)了,本篇學(xué)習(xí)如何添加LVGL事件,并制作完成個(gè)電子木魚(yú)(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心想事成!接下來(lái)看看如何用小安派-Eyes-S
    的頭像 發(fā)表于 01-13 15:18 ?1115次閱讀
    如<b class='flag-5'>何用</b>小安派-Eyes-S1<b class='flag-5'>做一個(gè)</b>電子木魚(yú)?

    基于FPGA的IP的DDS信號(hào)發(fā)生器如何用IP

    我畢業(yè)設(shè)計(jì)要做一個(gè)基于FPGA的IP的DDS信號(hào)發(fā)生器,但是我不會(huì)用DDS的IP,有沒(méi)有好人能發(fā)我份資料如何用IP
    發(fā)表于 03-10 11:46

    請(qǐng)問(wèn)如何用while loop和cast structure來(lái)做一個(gè)簡(jiǎn)單的倒數(shù)

    請(qǐng)問(wèn)如何用while loop和cast structure來(lái)做一個(gè)簡(jiǎn)單的倒數(shù)? 比如我輸入個(gè)10,然后開(kāi)始倒數(shù),等到0的時(shí)候程序停止,
    發(fā)表于 10-25 00:58

    何用RTC時(shí)鐘去配置個(gè)鬧鐘

    什么是RTC?RTC的工作原理是什么?RTC時(shí)鐘源有哪些?如何用RTC時(shí)鐘去配置個(gè)鬧鐘?
    發(fā)表于 11-01 06:46

    何用固件庫(kù)編程的方式去做一個(gè)LED流水燈

    何用固件庫(kù)編程的方式去做一個(gè)LED流水燈?如何用proteus8.7對(duì)LED流水燈進(jìn)行仿真?
    發(fā)表于 11-10 07:33

    何用STM32與zigbee技術(shù)做一個(gè)可以聯(lián)機(jī)的游戲機(jī)

    何用STM32與zigbee技術(shù)做一個(gè)可以聯(lián)機(jī)的游戲機(jī)?怎樣去做一個(gè)基于android和wifi技術(shù)的遠(yuǎn)程控制器
    發(fā)表于 11-12 07:49

    何用定時(shí)器的外部計(jì)數(shù)器模式來(lái)做一個(gè)頻率計(jì)

    如何使用STM32去測(cè)量頻率和占空比?如何用定時(shí)器的外部計(jì)數(shù)器模式來(lái)做一個(gè)頻率計(jì)?
    發(fā)表于 11-22 07:17

    何用C++做一個(gè)TCP的服務(wù)器進(jìn)行數(shù)據(jù)觀察及采集

    何用C++做一個(gè)TCP的服務(wù)器進(jìn)行數(shù)據(jù)觀察及采集?有哪些設(shè)計(jì)步驟?
    發(fā)表于 12-23 09:41

    何用AD603來(lái)做一個(gè)低頻小信號(hào)功率放大器

    AD603是什么?使用AD603出現(xiàn)的問(wèn)題有哪些?如何用AD603來(lái)做一個(gè)低頻小信號(hào)功率放大器
    發(fā)表于 01-26 06:13

    sTm32可以做卷積濾波圖片嗎?

    sTm32可以做卷積濾波圖片嗎
    發(fā)表于 09-21 07:17

    何用廢棄的電腦風(fēng)扇做一個(gè)磁攪?

    之前直想做一個(gè),但直沒(méi)動(dòng),最近要用就用廢棄的電腦風(fēng)扇做了個(gè)
    的頭像 發(fā)表于 08-07 14:57 ?6916次閱讀

    物理級(jí)聯(lián)的LUT的優(yōu)勢(shì)在哪?

    在Versal ACAP中,同一個(gè)CLB內(nèi)同列的LUT是可以級(jí)聯(lián)的,這是與前代FPGA UltraScale+系列的
    的頭像 發(fā)表于 03-27 09:52 ?3442次閱讀
    物理<b class='flag-5'>可</b>級(jí)聯(lián)的<b class='flag-5'>LUT</b>的優(yōu)勢(shì)在哪?

    何用所學(xué)的鴻蒙知識(shí)做一個(gè)小應(yīng)用

    ?? 今時(shí)今日,不管是大人,還是小孩,都喜歡刷視頻,生活中刷視頻的 APP 也多得是,如:抖音,快手,視頻號(hào),今日頭條,火山…數(shù)也不數(shù)不清了。 ??? ? 然而華為論壇鴻蒙版塊搞活動(dòng),做一個(gè)屬于自己
    的頭像 發(fā)表于 10-19 09:23 ?1800次閱讀

    高斯濾波的卷積怎么確定

    N為個(gè)奇數(shù),如3、5、7等。奇數(shù)大小的卷積有助于確定一個(gè)中心像素點(diǎn),便于計(jì)算。 大小選擇 :卷積
    的頭像 發(fā)表于 09-29 09:29 ?800次閱讀