在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用于CNN中卷積運算的LUT乘法器設計

電子設計 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-30 11:45 ? 次閱讀

卷積占據了CNN網絡中絕大部分運算,進行乘法運算通常都是使用FPGA中的DSP,這樣算力就受到了器件中DSP資源的限制。比如在zynq7000器件中,DSP資源就較少,神經網絡的性能就無法得到提升。利用xilinx器件中LUT的結構特征,設計出的乘法器不但能靈活適應數據位寬,而且能最大限度降低LUT資源使用。

Xilinx ultrascale器件LUT結構
在這里簡要介紹一下ultrascale系列器件中的LUT結構,有助于后邊對乘法器設計思路的理解。CLB(configuratble logic block)是主要的資源模塊,其包含了8個LUT,16個寄存器,carry邏輯,以及多路選通器等。其中LUT可以用作6輸入1輸出,或者兩個5輸入LUT,但是這兩個LUT公用輸入,具有不同輸出。每個LUT輸出可以連接到寄存器或者鎖存器,或者從CLB輸出。LUT可以用于64x1和32X2的分布式RAM,一個CLB內最大可以支持512X1大小的RAM。RAM的讀寫地址和輸入的讀寫數據是共享的,數據通道可以使用x和I接口。LUT還可以配置用于4:1選通器,CLB最大能夠支持到32:1的選通器。CLB中的carry邏輯含有異或門和產生進位的門,用于生成進位數據。

圖1.1 LUT結構

LUT還可以被動態配置成32bit移位寄存器,這個功能在乘法器設計中可以用于改變乘法器的乘數和被乘數。在寫入LUT數據的時候,每個時鐘周期從D接口進入數據,依次寫入32bit數據。讀數據的時候,可以通過地址來定位任何32bit中的數據。這樣就可以配置成任何小于32bit的移位寄存器。移位輸出Q31可以進入下一級LUT用于串聯產生更大移位寄存器。在一個CLB中最大可以串聯產生256bit移位寄存器。

圖1.2 移位寄存器配置

LUT乘法器原理
首先假設我們處理整數乘法,小數乘法也可以用這樣的方法。基本思想就是將m bit大小的數據進行分割表示:

這樣就將兩個數據乘法分解成低bit數據乘法,結果是一個常數K和di相乘,然后再進行移位求和。M bit數據分解后的低bit數據位寬通常都適配LUT輸入寬度,這樣能最大利用LUT資源。現在乘法只有K*di,由于bit位寬較小,這部分可以用LUT查找表的形式來。預先將0K到(2^q-1)K的數據存儲到LUT中,然后通過di來選擇對應的數據。如果是負數乘法,那么數據使用補碼表示,那么LUT中存儲的數據是從-2^(q-1)K到(2^(q-1)-1)K。針對以上介紹的ultrascale器件的LUT6,q可以選擇為5。但是在本論文中使用的是LUT4器件,其只有4輸入,因此選擇了q=3,為什么沒有選擇4呢?另外1bit是為了用于半加器的實現。

基本結構
實現上述累加的方法有很多種,論文中采用了進位鏈加法器。圖2.1中是m bit和n bit數據乘法,每個E結構計算di*K,并且和上一個結構求和,輸出的低3bit直接作為最終結果,而n bit傳輸到下一級進行計算。q=3的計算單元E有[m/3]個。K*di是有n+3bit的查找表實現的。查找表的結果由di選擇,然后再通過一個求和器和之前數據求和。這是一個最基本的結構,論文又針對這個結構做了優化,用一個LUT同時實現了一個查找表和半加器。具體來講,其中3bit輸入用于di,還有1bit用于上一次輸出,LUT中存放數據是di*K和上一次結果第j bit的半加結果,實際上是第j bit數據LUT中結果的異或。而進位數據由CLB中相應的carry邏輯來計算。相比于粗暴的進行數據求和,這樣精確的來控制LUT能夠大大節省資源。

圖2.1 基本結構

圖2.2 LUT實現乘法和半加,外圍carry邏輯實現進位

動態配置LUT內容
Xilinx的LUT結構允許在運行過程中改變LUT中的內容,這樣的乘法器就能改變被乘數據K。這可以實現在神經網絡計算中需要更新權重參數。論文中使用的是LUT4,所以一個LUT可以被配置成16bit移位寄存器。通過這16bit寄存器可以來配置LUT中的內容,每個時鐘周期更新1bit數據,16個時鐘周期可以完成一個LUT中數據更新。是否進行LUT內容更新通過CE使能信號控制。

如何產生LUT中數據的值呢?如果上一次輸出數據對應bit為0,那么LUT中就存放0*K到7*K的值,如果上一次對應bit為1,那么存放值為對以上數據取反。圖4.1表示了獲得LUT中內容的電路圖。首先數據被初始化為0*K,下一次對應著求和進位為1的情況,取反,然后再加K得到1*K的值,這樣每隔兩個時鐘周期就得到下一個乘法的數據值,依次對LUT進行更新。上述中針對的是正整數,如果對于負數乘法更新,可以在上述求整數乘法的電路基礎上做一下改進,如圖4.2。當最高位為0的時候,輸出結果就是之前求得的乘法結果。如果最高位是1,那么負數的補碼表示是乘法的原碼結果減去最高位數值。

圖4.1 LUT中內容更新電路圖

圖4.2 負數乘法結果更新電路

結果分析
最后我們來看看這種乘法器的實現效果,圖5.1表示對多級進位不適用pipeline結構的時鐘頻率隨著被乘數K位寬變化,可以看到隨著級數E的增加,頻率降低很多,這主要是進位鏈邊長導致。而隨著K位寬增加,頻率也有降低,這主要是因為實現di*K乘法的LUT資源增加導致。

圖5.1 沒有pipeline下頻率MHz

圖5.1 沒有pipeline下頻率MHz

圖5.2是不同乘法位寬下的使用slice數量。論文中考慮了兩種極端情況,一種是完全pipeline下,即每級計算單元都經過寄存器,另外一種是完全沒有pipeline,所有級E都是串聯。

圖5.2 slice資源

結論
上述通過LUT來設計乘法器的方法,可以應用于CNN中的卷積運算當中,因為權重可以被當做被乘數,用于LUT內容的配置,在更換權重時,可以對LUT內容更新,這樣就能避免了DSP資源的限制,不失為一種增加算力的方法。

文獻
1. Hormigo, J.C., Gabriel Oliver, Juan P.Boemo, Eduardo, Self-Reconfigurable Constant Multiplier for FPGA. ACM Transactions on Reconfigurable Technology and Systems, 2013. 6

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    554

    文章

    8059

    瀏覽量

    350656
  • FPGA
    +關注

    關注

    1630

    文章

    21802

    瀏覽量

    606388
  • 寄存器
    +關注

    關注

    31

    文章

    5372

    瀏覽量

    121289
  • cnn
    cnn
    +關注

    關注

    3

    文章

    353

    瀏覽量

    22354
收藏 人收藏

    評論

    相關推薦

    求助,LMX2572LP參考時鐘路徑乘法器MULT的輸入頻率范圍問題求解

    在lmx2572LP的參考時鐘輸入路徑,有一個乘法器MULT,其輸入頻率范圍在手冊描述為10Mhz~40MHz。當我在TICS Pro軟件中進行配置時,這個乘法器提示我“Maxi
    發表于 11-08 11:36

    MPY634做基本乘法器遇到的疑問求解

    我是按圖所接.X2,Y2直接接地.但是乘法器輸出波形會跳.示波器是用直流偶合.DC一時是正的一時是負的.怎么回事?
    發表于 09-25 06:06

    請問如何用VCA810實現模擬乘法器

    我在《德州儀器高性能單片機和模擬器件在高校的應用和選型指南》中看見,書中說VCA810可以做為模擬乘法器使用,但是應用手冊里的公式卻不是V0=VC*Vin,而是一個帶指數向的公式,所以我很好
    發表于 09-23 07:11

    請問VCA822做成四象限乘法器的帶寬是多少?

    如題,根據VCA822數據手冊的四象限乘法器的原理圖,該電路的帶寬能達到多少?
    發表于 09-11 06:12

    CDCS504-Q1時鐘緩沖器和時鐘乘法器數據表

    電子發燒友網站提供《CDCS504-Q1時鐘緩沖器和時鐘乘法器數據表.pdf》資料免費下載
    發表于 08-23 10:35 ?0次下載
    CDCS504-Q1時鐘緩沖器和時鐘<b class='flag-5'>乘法器</b>數據表

    CDCVF25084時鐘乘法器數據表

    電子發燒友網站提供《CDCVF25084時鐘乘法器數據表.pdf》資料免費下載
    發表于 08-22 11:33 ?0次下載
    CDCVF25084時鐘<b class='flag-5'>乘法器</b>數據表

    CDCF5801A具有延遲控制和相位對準的時鐘乘法器數據表

    電子發燒友網站提供《CDCF5801A具有延遲控制和相位對準的時鐘乘法器數據表.pdf》資料免費下載
    發表于 08-22 10:56 ?0次下載
    CDCF5801A具有延遲控制和相位對準的時鐘<b class='flag-5'>乘法器</b>數據表

    CDCF5801時鐘乘法器數據表

    電子發燒友網站提供《CDCF5801時鐘乘法器數據表.pdf》資料免費下載
    發表于 08-22 10:37 ?1次下載
    CDCF5801時鐘<b class='flag-5'>乘法器</b>數據表

    CDCE906 PLL頻率合成器/乘法器/分頻器數據表

    電子發燒友網站提供《CDCE906 PLL頻率合成器/乘法器/分頻器數據表.pdf》資料免費下載
    發表于 08-22 09:30 ?0次下載
    CDCE906 PLL頻率合成器/<b class='flag-5'>乘法器</b>/分頻器數據表

    CDCS503帶可選SSC的時鐘緩沖器/時鐘乘法器數據表

    電子發燒友網站提供《CDCS503帶可選SSC的時鐘緩沖器/時鐘乘法器數據表.pdf》資料免費下載
    發表于 08-22 09:18 ?0次下載
    CDCS503帶可選SSC的時鐘緩沖器/時鐘<b class='flag-5'>乘法器</b>數據表

    cnn卷積神經網絡分類有哪些

    卷積神經網絡(CNN)是一種深度學習模型,廣泛應用于圖像分類、目標檢測、語義分割等領域。本文將詳細介紹CNN在分類任務的應用,包括基本結構
    的頭像 發表于 07-03 09:28 ?772次閱讀

    卷積神經網絡cnn模型有哪些

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。 CNN的基本概念 1.1
    的頭像 發表于 07-02 15:24 ?815次閱讀

    SN5497、SN7497同步6位二進制速率乘法器數據表

    電子發燒友網站提供《SN5497、SN7497同步6位二進制速率乘法器數據表.pdf》資料免費下載
    發表于 06-03 09:24 ?2次下載
    SN5497、SN7497同步6位二進制速率<b class='flag-5'>乘法器</b>數據表

    CMOSBCD速率乘法器CD4527B TYPES 數據表

    電子發燒友網站提供《CMOSBCD速率乘法器CD4527B TYPES 數據表.pdf》資料免費下載
    發表于 05-21 09:19 ?0次下載
    CMOSBCD速率<b class='flag-5'>乘法器</b>CD4527B TYPES 數據表

    CMOS二進制速率乘法器CD4089B TYPES 數據表

    電子發燒友網站提供《CMOS二進制速率乘法器CD4089B TYPES 數據表.pdf》資料免費下載
    發表于 05-21 09:17 ?0次下載
    CMOS二進制速率<b class='flag-5'>乘法器</b>CD4089B TYPES 數據表
    主站蜘蛛池模板: 午夜欧美在线 | 三级免费黄色片 | 在线好吊色视频98gao | 久青草久青草高清在线播放 | 天天干天天拍天天射天天添天天爱 | 天天射日日干 | 69日本xxxxxxxx59 | 天堂网中文字幕 | 欧美猛性 | 欧美日本一区二区三区 | 久久青草精品免费资源站 | 亚洲午夜精品久久久久久抢 | 国产专区日韩精品欧美色 | 久久精品五月天 | 亚洲成a人片777777久久 | 四虎影院在线免费 | 性黄视频| 久久狠狠色噜噜狠狠狠狠97 | 在线免费午夜视频 | 免费网站黄色 | 日日操夜夜操天天操 | 天天干天天爽天天射 | 四虎影院久久 | 色婷婷婷婷| 天堂最新版在线地址 | 亚洲日本免费 | 青青热久久国产久精品秒播 | 日本xxxxx黄区免费看动漫 | 亚洲一区二区三区中文字幕 | 在线毛片网站 | 99pao在线视频精品免费 | 爱爱视频天天看 | 国产1卡2卡三卡四卡网站 | 亚洲男人精品 | 99久久999久久久综合精品涩 | 高h 男男| 国产成都一二三四区 | 欧美精品高清在线xxxx | 最新色网站 | 天天添| 在线观看亚洲人成网站 |