91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

DIri_ALIFPGA ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師陳翠 ? 2018-07-23 09:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

卷積是一種線性運算,其本質(zhì)是滑動平均思想,廣泛應(yīng)用于圖像濾波。而隨著人工智能深度學(xué)習(xí)的發(fā)展,卷積也在神經(jīng)網(wǎng)絡(luò)中發(fā)揮重要的作用,如卷積神經(jīng)網(wǎng)絡(luò)。本參考設(shè)計主要介紹如何基于INTEL 硬浮點的DSP Block實現(xiàn)32位單精度浮點的卷積運算,而針對定點及低精度的浮點運算,則需要對硬浮點DSP Block進(jìn)行相應(yīng)的替換即可。

原理分析

設(shè):f(x), g(x)是兩個可積函數(shù),作積分:

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

隨著x的不同取值,該積分定義了一個新的函數(shù)h(x),稱為函數(shù)f(x)與g(x)的卷積,記為h(x)=f(x)*g(x)。

如果卷積的變量是序列x(n)和h(n),則卷積的結(jié)果為

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

其中*表示卷積。因此兩個序列的卷積,實際上就是多項式的乘法,用個例子說明其工作原理。a = [7,5,4]; b = [6,7,9];則實現(xiàn)a和b的卷積,就是把a和b作為一個多項式的系數(shù),按多項式的升冪或降冪排列,即為:

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

因此得到a*b=[42,79,122,73,36];與Matlab運算結(jié)果一致。而二維卷積可以采用通用多項式乘積方法實現(xiàn)卷積運算。

基于INTEL FPGA的實現(xiàn)分析

如上我們確定了兩個序列的卷積等同于兩個多項式的乘法,因此當(dāng)我們需要計算序列[a0,a1,a2, …,an-1]與[b0,b1,b2, …,bn-1]的卷積結(jié)果時,可以成立a,b兩個n階多項式,如下所示:

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

則[a0,a1,a2, …,an-1]與[b0,b1,b2, …,bn-1]的卷積結(jié)果即為由a*b得到的多項式的各項系數(shù)所組成的序列。令c=a*b,得到

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

則由多項式c的各階系數(shù)所組成的新的序列[c0,c1,c2, …,c2n-1]即為[a0,a1,a2, …,an-1]與[b0,b1,b2, …,bn-1]的卷積結(jié)果。則按照高階多項式計算展開可得到:

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

┆┆

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

┆┆

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

因此卷積的運算可以轉(zhuǎn)化為行向量與列向量相乘的結(jié)果,即乘累加的運算結(jié)構(gòu)。

Intel FPGA在Arria10DSP Block中首次支持了單精度硬浮點DSP block,是行業(yè)內(nèi)第一個支持單精度DSP block,硬浮點DSP block架構(gòu)如圖1所示:

基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算詳解

圖1 硬浮點DSPblock架構(gòu)

硬浮點DSP Block包含硬浮點乘法器,硬浮點加法器,支持乘累加運算,因此采用硬浮點DSPblock實現(xiàn)行列向量相乘是非常好的方式。下面我們針對一個實際的卷積運算,介紹如何基于INTEL硬浮點DSP block實現(xiàn)。假設(shè)我們需要求隨機數(shù)組a=[4,8,9,11]與b=[10,5,7,13]的卷積運算結(jié)果,則根據(jù)上面的分析,保持?jǐn)?shù)組a順序不變,而數(shù)組b需根據(jù)上述分析結(jié)果,針對每一個卷積結(jié)果產(chǎn)生新的序列。所以整個實現(xiàn)包括數(shù)列重組模塊和硬浮點乘法器模塊及輸出處理。下面是實現(xiàn)框圖及仿真結(jié)果。

圖2 實現(xiàn)框圖

圖3 Modelsim仿真結(jié)果

仿真結(jié)果與Matlab實現(xiàn)結(jié)果一致,并且該設(shè)計中充分考慮了FPGA并行擴展特性,對于低速率要求的設(shè)計可采用DSP Block復(fù)用的方式節(jié)約DSP block數(shù)量。

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

    關(guān)注

    561

    文章

    8244

    瀏覽量

    366674
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22412

    瀏覽量

    636374
  • intel
    +關(guān)注

    關(guān)注

    19

    文章

    3508

    瀏覽量

    191298

原文標(biāo)題:基于INTEL FPGA硬浮點DSP實現(xiàn)卷積運算

文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    卷積運算分析

    卷積運算的基礎(chǔ)運算是乘加運算(MAC,Multiplication and Accumulation),本文設(shè)計了基本運算單元PE模塊來
    發(fā)表于 10-28 07:31

    基于E203 RISC-V的音頻信號處理系統(tǒng) -協(xié)處理器的乘累加過程

    。 硬件加速簡介 圖1 乘積累加運算單元 乘積累加運算單元電路,類似于DSP中的MAC指令,能夠快速的實現(xiàn) C=B+AB格式的運算
    發(fā)表于 10-28 06:18

    蜂鳥內(nèi)核模塊浮點指令運算數(shù)據(jù)的獲取

    操作數(shù)。 總結(jié) 通過上文介紹,我們大致理清了浮點運算中操作數(shù)的獲取,接下來要進(jìn)行的工作就是面對整數(shù)或浮點寄存器如何做判斷以及如何實現(xiàn)具體的運算
    發(fā)表于 10-24 13:39

    FPNew開源浮點運算單元工程建立

    在添加浮點運算單元時,可以引用開源的浮點運算器以簡化所需工作任務(wù)壓力。在此我們采用了FPnew這個開源工程,再次介紹一些如何將其導(dǎo)成vivado工程。 首先在github上下載fpn
    發(fā)表于 10-24 11:08

    浮點數(shù)是如何實現(xiàn)開平方運算

    摘要: 本文主要描述浮點數(shù)是如何實現(xiàn)開平方運算的。 簡介 事實上,浮點數(shù)的開平方運算結(jié)構(gòu)與定點數(shù)甚至整數(shù)的開平方
    發(fā)表于 10-24 08:42

    (九)浮點乘法指令設(shè)計

    ⊕ sb,得到結(jié)果的符號位 階碼相加減 按照定點整數(shù)的加減法運算方法對兩個浮點數(shù)的階碼進(jìn)行加減運算,因為規(guī)格化數(shù)的價碼e滿足1≤e≤254,而ec有可能超出1~254范圍,所以當(dāng)1≤ec≤254,相乘結(jié)果
    發(fā)表于 10-24 07:11

    如何獲取蜂鳥內(nèi)核執(zhí)行模塊浮點指令的運算數(shù)據(jù)

    通過上文介紹,我們大致理清了浮點運算中操作數(shù)的獲取,接下來要進(jìn)行的工作就是面對整數(shù)或浮點寄存器如何做判斷以及如何實現(xiàn)具體的運算操作,待我
    發(fā)表于 10-24 07:10

    浮點運算單元的設(shè)計和優(yōu)化

    浮點運算單元的設(shè)計和優(yōu)化可以從以下幾個方面入手: 1.浮點寄存器設(shè)計:為了實現(xiàn)浮點運算指令子集(
    發(fā)表于 10-22 07:04

    使用Simulink自動生成浮點運算HDL代碼(Part 1)

    引言 想要實現(xiàn)浮點運算功能,如果自己寫Verilog代碼,需要花費較多的時間和精力。好在Simulink HDL Coder工具箱提供了自動代碼生成技術(shù)。下圖展示了HDL Coder如何生成
    發(fā)表于 10-22 06:48

    蜂鳥E203的NMSIS庫結(jié)合Nuclei Studio IDE的使用

    數(shù)據(jù)集進(jìn)行計算對比。以一小塊程序進(jìn)行說明 該塊程序是以兩個32位浮點數(shù)數(shù)組進(jìn)行卷積運算為例子,先用NMSIS的庫函數(shù)riscv_conv_q31()計算卷積,再用參考的
    發(fā)表于 10-22 06:26

    risc-v中浮點運算單元的使用及其設(shè)計考慮

    RISC-V浮點運算單元(floating-point unit,簡稱FPU)是一種專門用于執(zhí)行浮點運算的硬件加速器,其作用是提高浮點
    發(fā)表于 10-21 14:46

    利用e203中NICE協(xié)處理器加速濾波運算

    顯示對象的心電信號時,需要對采集到的心電信號做濾波運算,相當(dāng)于一維卷積。由于權(quán)重數(shù)據(jù)以及采集到的特征數(shù)據(jù)均是浮點數(shù),而使用e203做浮點數(shù)運算
    發(fā)表于 10-21 13:40

    基于e203中NICE協(xié)處理器加速濾波運算

    顯示對象的心電信號時,需要對采集到的心電信號做濾波運算,相當(dāng)于一維卷積。由于權(quán)重數(shù)據(jù)以及采集到的特征數(shù)據(jù)均是浮點數(shù),而使用e203做浮點數(shù)運算
    發(fā)表于 10-21 09:54

    【 VPX638】青翼凌云科技基于KU115 FPGA+C6678 DSP的6U VPX雙FMC接口通用信號處理平臺

    (XCKU115)作為主處理器,完成復(fù)雜的數(shù)據(jù)采集、回放以及數(shù)據(jù)預(yù)處理。采用1片TI的多核浮點運算DSP TMS320C6678來完成信號處理算法。
    的頭像 發(fā)表于 09-01 13:42 ?714次閱讀
    【 VPX638】青翼凌云科技基于KU115 <b class='flag-5'>FPGA</b>+C6678 <b class='flag-5'>DSP</b>的6U VPX雙FMC接口通用信號處理平臺

    進(jìn)群免費領(lǐng)FPGA學(xué)習(xí)資料!數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等

    ~ 01、數(shù)字信號處理的FPGA實現(xiàn) 旨在講解前端數(shù)字信號處理算法的高效實現(xiàn)。首先概述了當(dāng)前的FPGA技術(shù)、器件以及用于設(shè)計最先進(jìn)DSP
    發(fā)表于 04-07 16:41