•  歡迎來到 深圳市毅創(chuàng)騰電子科技有限公司  
網(wǎng)站首頁 > 電子資訊> 賽靈思SDAccel?開發(fā)環(huán)境來編譯和優(yōu)化專為FPGA加速卡

賽靈思SDAccel?開發(fā)環(huán)境來編譯和優(yōu)化專為FPGA加速卡

信息來源 : 網(wǎng)絡(luò) | 發(fā)布時間 : 2016-03-23 13:45 | 瀏覽次數(shù) : 470

視頻流和下載通常會耗掉消費者絕大部分互聯(lián)網(wǎng)流量,同時也是云計算技術(shù)發(fā)展的主要推動力。對視頻流和下載需求的持續(xù)增長,正在驅(qū)動視頻處理應(yīng)用邁出專業(yè)系統(tǒng)領(lǐng)域,步入數(shù)據(jù)中心。這一應(yīng)用模式的轉(zhuǎn)變需要具備快速擴展能力的計算節(jié)點來滿足視頻內(nèi)容制作和分發(fā)的各個不同高計算強度階段的需求,如轉(zhuǎn)碼需求和水印需求。

  我們近期使用賽靈思SDAccel?開發(fā)環(huán)境來編譯和優(yōu)化專為FPGA加速卡采用OpenCLTM編寫的視頻水印應(yīng)用。視頻內(nèi)容提供商使用水印起到廣告和內(nèi)容保護的作用。我們的目的是設(shè)計一種能處理運行在Alpha Data ADM-PCIE-7V3卡上,吞吐量為30fps,分辨率為1080p的高清(HD)視頻的水印應(yīng)用。

  SDAccel開發(fā)環(huán)境能讓設(shè)計人員先用OpenCL編寫應(yīng)用,然后在無需了解底層FPGA實現(xiàn)工具的情況下把應(yīng)用編譯到FPGA中。可以以這種視頻水印應(yīng)用為例來介紹SDAccel中的主要優(yōu)化技巧。

  帶標識插入功能的視頻水印

  該視頻水印算法的主要功能是在視頻流的特定位置覆蓋一個標識。用于水印的標識可以是活動的,也可以是靜止的。活動標識一般采用簡短的重復(fù)性視頻片段來實現(xiàn),靜止標識則采用靜止圖像。

  廣播企業(yè)宣傳自己視頻流最常用的方法是把企業(yè)標識用作靜止水印,因此成為我們實例設(shè)計的目標。該應(yīng)用根據(jù)下列等式,以逐像素粒度插入靜止標識。      
        輸入和輸出幀為二維陣列,像素使用YCbCr色域表達。在該色域中,每個像素用三個分量表達。Y表示亮度分量,Cb表示色度藍色色差分量,Cr表示色度紅色色差分量。每個分量都用一個8位值表達,因為每個像素為24位。

  該標識是一個包含待插入內(nèi)容的二維圖像。掩膜也是一個圖像,但只包含標識的輪廓圖。掩膜的像素可以是白色或黑色。掩膜的白色像素表示標識的插入位置,黑色像素則表示原始像素未被觸及的地方。圖1所示的,就是這種視頻水印算法的運算方式實例。

  圖1 - 工作中的視頻水印算法

  目標系統(tǒng)和初始實現(xiàn)方案

  我們運行該應(yīng)用的系統(tǒng)如圖2所示。該系統(tǒng)由Alpha Data ADMPCIE-7V3卡組成,該卡通過PCIe?鏈路與x86處理器通信。在該系統(tǒng)中,主機處理器從磁盤提取輸入視頻流,將其傳輸?shù)皆O(shè)備全局內(nèi)存中。設(shè)備全局內(nèi)存位于FPGA卡上,可供FPGA直接訪問。除把視頻幀存放到設(shè)備全局內(nèi)存中外,標識和掩膜也從主機傳輸?shù)紽PGA加速器卡上并存入片上內(nèi)存中,以充分利用BRAM內(nèi)存的低時延優(yōu)勢。因為本應(yīng)用使用的是一個靜止標識,只需在片上內(nèi)存中存儲靜止圖像和布局位置數(shù)據(jù)。

  圖2 - 視頻水印應(yīng)用系統(tǒng)總覽圖

  創(chuàng)建數(shù)據(jù)后,主機處理器會給FPGA架構(gòu)中的水印內(nèi)核發(fā)送一個啟動信號。該信號觸發(fā)內(nèi)核完成三件工作:開始從設(shè)備全局內(nèi)存獲取輸入視頻幀;在掩膜定義的位置插入標識;將處理過的幀傳輸回設(shè)備全局處理器,等待處理器調(diào)用。

  視頻流中每幀的數(shù)據(jù)傳輸與計算的協(xié)調(diào)工作使用圖3所示的代碼完成。

  圖3 - 用于協(xié)調(diào)每幀數(shù)據(jù)傳輸和計算的代碼

  該代碼運行在主機處理器上,負責(zé)發(fā)送視頻幀到FPGA加速器卡,啟動加速器,然后從FPGA加速器卡取回處理后的幀。

  FPGA水印算法的首個實現(xiàn)方案如圖4所示。這是一個功能正確的應(yīng)用實現(xiàn)方案,但沒有進行任何性能優(yōu)化或為充分利用FPGA架構(gòu)的功能進行考慮。因此該代碼在SDAccel中編譯完成后,在Alpha Data卡上運行得到的最大吞吐量僅為0.5fps。

  從圖4的代碼中可以看到,這種水印算法不是一種高計算強度的設(shè)計。大多數(shù)時間花在訪問內(nèi)存,讀取和寫入視頻幀上。因此我們在優(yōu)化實例設(shè)計時,把重點放在優(yōu)化內(nèi)存帶寬上。

  圖4 - 水印內(nèi)核的初始實現(xiàn)方案

  使用矢量化優(yōu)化內(nèi)存訪問

  與其他軟件可編程架構(gòu)相比,F(xiàn)PGA架構(gòu)的優(yōu)勢之一在于靈活性強,能配置連接內(nèi)存的總線。SDAccel能根據(jù)具體的應(yīng)用內(nèi)核創(chuàng)建用于連接內(nèi)存的定制化數(shù)據(jù)路徑和架構(gòu)。通過修改代碼,一次可以處理多個像素,從而能夠從內(nèi)核中調(diào)用更高的內(nèi)存帶寬。這個過程稱之為矢量化。

  矢量化的程度是否合適,取決于具體應(yīng)用和所使用的FPGA加速器卡。以Alpha Data卡為例,設(shè)備全局內(nèi)存接口寬度為512位,這與SDAccel為內(nèi)核提供的最大AXI互聯(lián)寬度一致。鑒于最大帶寬為512位,該應(yīng)用調(diào)整為每次處理20個像素(24位/像素×20像素=504位)。SDAccel完全支持矢量數(shù)據(jù)類型。因此就本應(yīng)用而言,代碼的矢量化非常簡單,就是把所有陣列的數(shù)據(jù)類型修改為char20(如圖5所示),這樣吞吐量就能達到12fps。

  圖5 - 矢量化后的內(nèi)核代碼

  使用突發(fā)模式優(yōu)化內(nèi)存訪問

  雖然矢量化能顯著改善應(yīng)用性能,但仍不足以實現(xiàn)30fps的吞吐量目標。該應(yīng)用仍然受內(nèi)存局限,因為內(nèi)核每次只能向內(nèi)存?zhèn)鬏?0個像素。為減輕內(nèi)存限制對應(yīng)用造成的影響,我們不得不修改內(nèi)核代碼,以生成到內(nèi)存的突發(fā)讀取/寫入操作,從而實現(xiàn)大于20個像素的數(shù)據(jù)集。修改后的內(nèi)核代碼見圖6。

  圖6 - 針對突發(fā)數(shù)據(jù)傳輸優(yōu)化的內(nèi)核代碼

  代碼內(nèi)核首先修改的是在內(nèi)核中定義片上存儲,以便每次存儲像素塊。片上內(nèi)存用內(nèi)核代碼中聲明的陣列來定義。為啟動到內(nèi)存的突發(fā)事務(wù)處理,該代碼實例化memcpy命令,以將數(shù)據(jù)塊從DDR移到內(nèi)核內(nèi)的BRAM存儲系統(tǒng)中。根據(jù)片上內(nèi)存資源的大小和待處理數(shù)據(jù)的量,一個視頻幀可分割成20個1920×54像素塊(如圖7所示)。

  圖7 - 把視頻幀分區(qū)成數(shù)據(jù)塊

  當memcry命令把數(shù)據(jù)塊放置到內(nèi)核陣列中,該算法就會在數(shù)據(jù)塊上執(zhí)行水印算法,然后把結(jié)果放回內(nèi)核陣列。數(shù)據(jù)塊處理的結(jié)果隨后使用memcry命令傳送回DDR內(nèi)存。反復(fù)執(zhí)行這個操作20次,直至給定幀中所有的數(shù)據(jù)塊處理完畢。通過修改內(nèi)核代碼,系統(tǒng)性能達到了38fps,超過了既定的30fps目標。

  應(yīng)用前景廣泛

  使用SDAccel開發(fā)本文介紹的這類應(yīng)用時所進行的必要優(yōu)化屬于軟件優(yōu)化。因此這些優(yōu)化工作與從其他處理架構(gòu)中(如GPU)獲取性能所開展的優(yōu)化類似。使用SDAccel后,讓PCIe鏈路工作、驅(qū)動程序、IP布局和互聯(lián)等細節(jié)都不是問題,使我們就像設(shè)計人員一樣只需集中精力開發(fā)目標應(yīng)用。

  我們在水印應(yīng)用中所做的優(yōu)化適用于使用SDAccel編譯過的所有應(yīng)用。事實上視頻水印應(yīng)用就是一個很棒的技巧講解案例,詳細介紹了賽靈思SDAccel中推出的優(yōu)化方法。

===========================================

深圳市毅創(chuàng)騰電子科技有限公司
電話:(86)-755-83210909  83616256 83210801  83213361

企業(yè)QQ: 2355507165 / 2355507163

網(wǎng)址:www.zjaotaijx.cn

===========================================

ALTERA  XILINX代理旗下一級分銷商。

毅創(chuàng)騰電子科技有限公司是一家大型、專業(yè)的XILINX(賽靈思)、ALTERA(阿特拉)FREESCALE(飛思卡爾)、ADI嵌入式FPGACPLD、微控制器等集成電路銷售與服務(wù)的授權(quán)分銷商。也是亞太地區(qū)最大規(guī)模的原裝XILINXALTERAFREESCALE產(chǎn)品供應(yīng)商之一。

分銷商,原裝熱賣中,ALTERA  XILINX專線:0755-83210909專業(yè)銷售嵌入式FPGA現(xiàn)場可編程器件,主要以XILINXALTERA為核心的專業(yè)分銷商。
===========================================


該信息來源于網(wǎng)絡(luò),如有侵權(quán),請及時與我們聯(lián)系
主站蜘蛛池模板: 亚洲 欧美 国产 动漫 综合| 99久久精品国产综合一区 | 国产人成精品综合欧美成人| 亚洲婷婷五月综合狠狠爱| 亚洲欧美综合在线中文| 国产综合一区二区| 国产V综合V亚洲欧美久久| 乱欧美综合| 亚洲色婷婷综合久久| 狠狠色噜噜色狠狠狠综合久久| 中文网丁香综合网| 亚洲中文字幕无码久久综合网| 日韩欧美亚洲综合久久| 久久综合伊人77777| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产一成久久精品国产成人综合 | 国产成人综合久久精品红| 亚洲欧美综合网| 狠狠色综合网站久久久久久久高清 | 狠狠色丁香婷婷综合激情| 色婷婷久久综合中文久久一本| 亚洲 欧美 日韩 综合aⅴ视频| 亚洲综合色视频在线观看| 国产亚洲综合色就色| 久久―日本道色综合久久| 久久亚洲欧洲国产综合| 97久久久精品综合88久久| 青青草原综合久久大伊人导航| 久久久久久久尹人综合网亚洲 | 狠狠色噜噜色狠狠狠综合久久 | 一本大道加勒比久久综合| 亚洲伊人色欲综合网| 国产综合久久久久久鬼色| 五月综合激情网| 亚洲国产成人久久综合一 | 欧美伊人久久大香线蕉综合| 色噜噜狠狠色综合久| 天天做天天爱天天综合网| AV狠狠色丁香婷婷综合久久| 一本久久知道综合久久| 日日AV色欲香天天综合网|