亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原(yuan)創

一種用于FPGA深度加速的乒乓Buffer設計方法

2024-06-21 09:38:28
37
0

       在FPGA的(de)(de)(de)很多加速場景(jing)比如計(ji)算(suan)密集(ji)型場景(jing)往往需要對單筆計(ji)算(suan)的(de)(de)(de)原(yuan)始數據收(shou)集(ji)完(wan)全后才能啟動(dong)計(ji)算(suan)流(liu)程(cheng),并(bing)在計(ji)算(suan)流(liu)程(cheng)處(chu)理完(wan)成后才能釋放。如果(guo)使用(yong)單Buffer來接(jie)收(shou)原(yuan)始數據,那么(me)在計(ji)算(suan)處(chu)理過程(cheng)中,數據接(jie)收(shou)鏈路(lu)是閑(xian)置的(de)(de)(de),假設原(yuan)始數據的(de)(de)(de)接(jie)收(shou)時(shi)間是t1,計(ji)算(suan)處(chu)理時(shi)間是t2,那么(me)整個鏈路(lu)的(de)(de)(de)處(chu)理效率(lv)是1/(t1+t2),可以看出(chu)此時(shi)鏈路(lu)處(chu)理能力即未達到數據傳輸的(de)(de)(de)瓶(ping)頸,也未達到計(ji)算(suan)處(chu)理的(de)(de)(de)瓶(ping)頸,鏈路(lu)利用(yong)度不高。

圖(tu)一 單buffer鏈路處理

       本(ben)文采(cai)用一(yi)(yi)種乒(ping)乓(pang)buffer設計(ji)(ji)方法,開辟兩片Buffer用于原始(shi)數(shu)據存(cun)儲,輪流(liu)交(jiao)替服務于原始(shi)數(shu)據接收和(he)計(ji)(ji)算,這樣可以(yi)充(chong)分利用計(ji)(ji)算的(de)時(shi)間去接收下一(yi)(yi)波原始(shi)數(shu)據,從而提高(gao)整個鏈路的(de)處(chu)理效率。值得注意的(de)是為(wei)了保證計(ji)(ji)算數(shu)據的(de)一(yi)(yi)致性,必須保證在計(ji)(ji)算和(he)數(shu)據包的(de)接收均完成后(hou),才能進行(xing)Buffer功(gong)能的(de)交(jiao)替。

       圖二是t1<t2的(de)(de)情(qing)況,此(ci)時當計(ji)(ji)(ji)算(suan)處理(li)Buffer1的(de)(de)數據時,Buffer2開始接收(shou)(shou)原(yuan)始數據,當其接收(shou)(shou)完(wan)一(yi)個(ge)完(wan)整的(de)(de)用于計(ji)(ji)(ji)算(suan)的(de)(de)原(yuan)始數據后(hou),由于計(ji)(ji)(ji)算(suan)還未完(wan)成(cheng),需等待計(ji)(ji)(ji)算(suan)完(wan)成(cheng)后(hou),Buffer1和Buffer2的(de)(de)功能(neng)進行交換,此(ci)時Buffer1開始接收(shou)(shou)原(yuan)始數據,計(ji)(ji)(ji)算(suan)處理(li)Buffer2的(de)(de)數據。可以(yi)看出,兩個(ge)Buffer功能(neng)交換的(de)(de)周期是t2,計(ji)(ji)(ji)算(suan)處理(li)效率是瓶(ping)頸點,此(ci)時鏈路(lu)的(de)(de)處理(li)效率是1/t2。

圖二(er) 雙Buffer鏈(lian)路處理(t1<t2)

       圖三是(shi)(shi)(shi)t1>t2的(de)(de)情況,此(ci)時當(dang)計算(suan)處(chu)理Buffer1的(de)(de)數(shu)(shu)據(ju)(ju)(ju)時,Buffer2開始(shi)(shi)(shi)接收(shou)原(yuan)始(shi)(shi)(shi)數(shu)(shu)據(ju)(ju)(ju),當(dang)計算(suan)處(chu)理完(wan)成Buffer1的(de)(de)數(shu)(shu)據(ju)(ju)(ju)后(hou),由(you)于(yu)Buffer2還未完(wan)成原(yuan)始(shi)(shi)(shi)數(shu)(shu)據(ju)(ju)(ju)的(de)(de)接收(shou),需等待Buffer2接收(shou)完(wan)一(yi)個完(wan)整的(de)(de)用于(yu)計算(suan)的(de)(de)原(yuan)始(shi)(shi)(shi)數(shu)(shu)據(ju)(ju)(ju)后(hou),Buffer1和Buffer2的(de)(de)功能進(jin)行交換,此(ci)時Buffer1開始(shi)(shi)(shi)接收(shou)原(yuan)始(shi)(shi)(shi)數(shu)(shu)據(ju)(ju)(ju),計算(suan)處(chu)理Buffer2的(de)(de)數(shu)(shu)據(ju)(ju)(ju)。可以看出,兩個Buffer功能交換的(de)(de)周期(qi)是(shi)(shi)(shi)t1,數(shu)(shu)據(ju)(ju)(ju)傳輸效率是(shi)(shi)(shi)瓶頸點,此(ci)時鏈路(lu)的(de)(de)處(chu)理效率是(shi)(shi)(shi)1/t1。

圖三 雙Buffer鏈路處理(t1>t2)

       本文的乒(ping)乓Buffer方案(an),可以達(da)到的鏈路(lu)(lu)處理效(xiao)率是(shi)1/Max(t1,t2),此時已(yi)經(jing)達(da)到鏈路(lu)(lu)上數據傳輸效(xiao)率或者計算(suan)處理效(xiao)率的瓶頸點,鏈路(lu)(lu)利用度已(yi)到最大,在FPGA計算(suan)密集型等場景可實現深度加(jia)速(su)。

0條評論
0 / 1000
彭薛葵
8文章(zhang)數
0粉絲數(shu)
彭薛葵
8 文章 | 0 粉絲(si)
原(yuan)創(chuang)

一種用于FPGA深度加速的乒乓Buffer設計方法

2024-06-21 09:38:28
37
0

       在FPGA的(de)(de)(de)很多(duo)加(jia)速場景比如計(ji)算密集型場景往(wang)往(wang)需要(yao)對單(dan)筆計(ji)算的(de)(de)(de)原始數據(ju)(ju)收(shou)集完全后(hou)才能啟動計(ji)算流程,并在計(ji)算流程處(chu)(chu)理(li)(li)完成后(hou)才能釋(shi)放。如果使用(yong)單(dan)Buffer來接(jie)(jie)收(shou)原始數據(ju)(ju),那(nei)么在計(ji)算處(chu)(chu)理(li)(li)過程中,數據(ju)(ju)接(jie)(jie)收(shou)鏈(lian)(lian)路(lu)是閑置的(de)(de)(de),假設原始數據(ju)(ju)的(de)(de)(de)接(jie)(jie)收(shou)時間(jian)是t1,計(ji)算處(chu)(chu)理(li)(li)時間(jian)是t2,那(nei)么整(zheng)個鏈(lian)(lian)路(lu)的(de)(de)(de)處(chu)(chu)理(li)(li)效(xiao)率(lv)是1/(t1+t2),可以看出此時鏈(lian)(lian)路(lu)處(chu)(chu)理(li)(li)能力(li)即未(wei)達(da)到(dao)(dao)數據(ju)(ju)傳輸的(de)(de)(de)瓶頸,也(ye)未(wei)達(da)到(dao)(dao)計(ji)算處(chu)(chu)理(li)(li)的(de)(de)(de)瓶頸,鏈(lian)(lian)路(lu)利用(yong)度(du)不高。

圖一(yi) 單(dan)buffer鏈路處(chu)理(li)

       本文采(cai)用(yong)一(yi)種乒乓buffer設計(ji)方法,開辟兩片Buffer用(yong)于原始數據(ju)存(cun)儲,輪流交替服務于原始數據(ju)接收(shou)和計(ji)算(suan),這樣可以充分(fen)利用(yong)計(ji)算(suan)的(de)(de)時間去接收(shou)下(xia)一(yi)波原始數據(ju),從而(er)提高整個鏈路的(de)(de)處理效(xiao)率。值得注意(yi)的(de)(de)是為(wei)了保證計(ji)算(suan)數據(ju)的(de)(de)一(yi)致性,必須保證在計(ji)算(suan)和數據(ju)包的(de)(de)接收(shou)均(jun)完(wan)成后,才能進行Buffer功能的(de)(de)交替。

       圖二是t1<t2的(de)情況,此時(shi)當計算(suan)(suan)處(chu)(chu)(chu)理Buffer1的(de)數據時(shi),Buffer2開(kai)始接(jie)(jie)收原(yuan)始數據,當其接(jie)(jie)收完(wan)(wan)一個完(wan)(wan)整的(de)用于計算(suan)(suan)的(de)原(yuan)始數據后(hou),由于計算(suan)(suan)還未完(wan)(wan)成,需(xu)等待計算(suan)(suan)完(wan)(wan)成后(hou),Buffer1和Buffer2的(de)功能(neng)進行交(jiao)換,此時(shi)Buffer1開(kai)始接(jie)(jie)收原(yuan)始數據,計算(suan)(suan)處(chu)(chu)(chu)理Buffer2的(de)數據。可以看出,兩個Buffer功能(neng)交(jiao)換的(de)周期是t2,計算(suan)(suan)處(chu)(chu)(chu)理效(xiao)(xiao)率是瓶(ping)頸(jing)點,此時(shi)鏈(lian)路的(de)處(chu)(chu)(chu)理效(xiao)(xiao)率是1/t2。

圖二 雙Buffer鏈路處理(t1<t2)

       圖三(san)是t1>t2的(de)(de)(de)(de)(de)情況(kuang),此(ci)(ci)時(shi)當(dang)計(ji)算處(chu)理(li)Buffer1的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)(ju)時(shi),Buffer2開始(shi)(shi)接收原始(shi)(shi)數(shu)(shu)據(ju)(ju)(ju),當(dang)計(ji)算處(chu)理(li)完成Buffer1的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)(ju)后(hou),由于Buffer2還未完成原始(shi)(shi)數(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)接收,需(xu)等(deng)待Buffer2接收完一個完整的(de)(de)(de)(de)(de)用于計(ji)算的(de)(de)(de)(de)(de)原始(shi)(shi)數(shu)(shu)據(ju)(ju)(ju)后(hou),Buffer1和Buffer2的(de)(de)(de)(de)(de)功能進(jin)行交(jiao)換,此(ci)(ci)時(shi)Buffer1開始(shi)(shi)接收原始(shi)(shi)數(shu)(shu)據(ju)(ju)(ju),計(ji)算處(chu)理(li)Buffer2的(de)(de)(de)(de)(de)數(shu)(shu)據(ju)(ju)(ju)。可(ke)以看出,兩(liang)個Buffer功能交(jiao)換的(de)(de)(de)(de)(de)周期是t1,數(shu)(shu)據(ju)(ju)(ju)傳(chuan)輸效(xiao)(xiao)率(lv)是瓶頸點,此(ci)(ci)時(shi)鏈路的(de)(de)(de)(de)(de)處(chu)理(li)效(xiao)(xiao)率(lv)是1/t1。

圖三(san) 雙Buffer鏈(lian)路處理(t1>t2)

       本文(wen)的(de)乒乓Buffer方案,可以達到的(de)鏈路處(chu)(chu)理效率是1/Max(t1,t2),此時已經達到鏈路上數據傳輸效率或者計(ji)算(suan)處(chu)(chu)理效率的(de)瓶頸點,鏈路利用度已到最大,在FPGA計(ji)算(suan)密(mi)集型等(deng)場景可實現(xian)深度加速(su)。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0