999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種適于應(yīng)用程序員設(shè)計(jì)FPGA異構(gòu)系統(tǒng)的框架※

2016-03-20 09:14:39沈鎮(zhèn)柴志雷柴鎮(zhèn)
關(guān)鍵詞:用戶檢測設(shè)計(jì)

沈鎮(zhèn),柴志雷,柴鎮(zhèn)

(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,無錫214122)

一種適于應(yīng)用程序員設(shè)計(jì)FPGA異構(gòu)系統(tǒng)的框架※

沈鎮(zhèn),柴志雷,柴鎮(zhèn)

(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,無錫214122)

本文提供一種適于應(yīng)用程序員方便使用FPGA平臺的框架。它讓用戶從硬件和系統(tǒng)結(jié)構(gòu)中抽離出來,更關(guān)注算法和應(yīng)用程序。這個(gè)框架綜合了Xilinx ISE和Vivado,可以立即使用。在本文的框架上,一個(gè)軟件人員實(shí)現(xiàn)了一個(gè)廣泛使用的特征提取算法,表明本文的框架的確適用于只有少量硬件知識的應(yīng)用程序員。

FPGA;嵌入式系統(tǒng);特征提取;應(yīng)用程序

引 言

眾所周知,在最近的十年,生產(chǎn)商已經(jīng)放棄試圖通過提高單核頻率來提升性能,大多數(shù)主流通用處理器性能增長都借助增加處理器核的數(shù)量。有很多關(guān)于多核的研究調(diào)查[1-2],然而,正如參考文獻(xiàn)[2]中介紹的那樣,現(xiàn)行的并行架構(gòu)在常規(guī)項(xiàng)目(如稠密矩陣計(jì)算)上有好的加速效果,但是大多數(shù)在非常規(guī)項(xiàng)目(如計(jì)算機(jī)視覺)上的表現(xiàn)則差強(qiáng)人意。

FPGA作為一種可編程邏輯設(shè)備,支持不同類型的細(xì)粒度并行,也擅長處理非常規(guī)項(xiàng)目。它的性能和功耗的優(yōu)勢經(jīng)常被得到證明[3-4]。但是,當(dāng)前在純FPGA上實(shí)現(xiàn)應(yīng)用依然是一個(gè)困難的工程,即使是對一個(gè)熟練的工程師而言,因?yàn)樗枰讓覸HDL/Verilog硬件語言和硬件細(xì)節(jié)的知識,而且在實(shí)現(xiàn)應(yīng)用之前,還需要解決設(shè)備驅(qū)動(dòng)的問題。

最近出現(xiàn)了很多針對于FPGA的異構(gòu)SoC,例如Xilinx Zynq-7000[5]和Altera SoC FPGA。異構(gòu)FPGA的一個(gè)優(yōu)勢就是通用處理器部分可以使FPGA使用者從復(fù)雜的驅(qū)動(dòng)程序里面解脫出來。另一個(gè)優(yōu)勢是異構(gòu)FPGA通過結(jié)合傳統(tǒng)與非傳統(tǒng)的處理器,有潛力達(dá)到更好的能效,這已經(jīng)從理論[7]和實(shí)踐上[8]進(jìn)行了研究。另一方面,HLS (High-Level-Synthesis)[6]技術(shù)到今天已經(jīng)足夠成熟,能夠支持C/C++對FPGA的設(shè)計(jì)更抽象。例如,Xilinx的Vivado HLS[9]支持程序員使用高級語言C/C++基于Xilinx FPGA設(shè)計(jì)系統(tǒng)。Zynq SoC加上HLS是當(dāng)前一個(gè)明顯的發(fā)展選擇。然而,盡管異構(gòu)SoC加上HLS提高了系統(tǒng)設(shè)計(jì)的抽象度,并且將用戶從FPGA驅(qū)動(dòng)問題中解放出來,但它還是更適合系統(tǒng)程序員。這是因?yàn)槌绦騿T必須掌握算法、架構(gòu)、接口、物理地址分配、軟件驅(qū)動(dòng)的實(shí)現(xiàn)和應(yīng)用軟件的實(shí)現(xiàn)等相關(guān)知識。這種設(shè)計(jì)流程的缺點(diǎn)是系統(tǒng)程序員一般有更多硬件架構(gòu)和軟件知識,但是對算法和應(yīng)用了解較少,反之亦然。

HLS對于FPGA的設(shè)計(jì),可被視為通用計(jì)算機(jī)系統(tǒng)的編譯器。顯然,盡管使用了高級語言,HLS用戶還是需要直面FPGA。因此,類似于通用處理器的操作系統(tǒng),FPGA中也需要一個(gè)虛擬層通過屏蔽硬件細(xì)節(jié)進(jìn)一步提高用戶的開發(fā)效率。從這個(gè)角度看一些工作已經(jīng)展開了。LEAP[11]是一個(gè)FPGA操作系統(tǒng),解決高延遲、抽象交互、多片F(xiàn)PGA的內(nèi)存模型和混合算法。RAMP[1]項(xiàng)目為處理器加速。CoRAM[12]項(xiàng)目側(cè)重在應(yīng)用程序到多級內(nèi)存的接口和可重構(gòu)邏輯的內(nèi)存模型。更多的相關(guān)工作在參考文獻(xiàn)[10]、[13]、[14]中可見。

本文提出了一個(gè)方便應(yīng)用程序員使用FPGA異構(gòu)平臺的框架,這個(gè)框架專為嵌入式系統(tǒng)下計(jì)算機(jī)視覺應(yīng)用做了優(yōu)化。它使用Xilinx Vivado,因此可以立即使用,而不是重新實(shí)現(xiàn)一套開發(fā)工具。用本文框架開發(fā)應(yīng)用,在CPU和FPGA上都使用C/C++。程序的主入口在CPU端,FPGA在執(zhí)行期間重新配置和調(diào)用。它讓用戶不用處理硬件和結(jié)構(gòu)細(xì)節(jié),讓他們更關(guān)注算法和應(yīng)用程序。通過實(shí)現(xiàn)一個(gè)常用的計(jì)算機(jī)視覺特征檢測算法——SURF (Speeded-Up Robust Features)[15],從一個(gè)應(yīng)用程序員的角度驗(yàn)證了該框架,顯示了這個(gè)框架適用于應(yīng)用程序員使用FPGA異構(gòu)平臺。

1 框架結(jié)構(gòu)

如圖1所示,在FPGA端和CPU端,框架支持應(yīng)用程序員使用C/C++。在FPGA端,算法或者模塊使用C/C++設(shè)計(jì),接著由硬件并行加速,同時(shí)設(shè)計(jì)一個(gè)接口,其包含AMBA和AXI,然后用HLS工具翻譯,綜合生成IP核。這些包含AXI的IP核可以掛載到合適的位置,來構(gòu)造整個(gè)FPGA部分。用戶的IP核是應(yīng)用程序員面向應(yīng)用開發(fā)的,其他模塊(如FPGA驅(qū)動(dòng)I/O和內(nèi)存)都是本文框架提供的一部分。因此,應(yīng)用程序員可以集中關(guān)注如何更好地實(shí)現(xiàn)指定應(yīng)用的算法和模塊。由于在Vivado HLS中提供了C/C++語言支持和優(yōu)化方案,所以算法或者模塊可以由軟件程序員實(shí)現(xiàn)。通過提前分配固定地址,用戶可以避免在不同的應(yīng)用中每次都要手動(dòng)掛載IP核,這進(jìn)一步使得C/C++程序員不需要太多的架構(gòu)知識就能夠?yàn)镕PGA開發(fā)算法。在CPU端,算法或者模塊也是使用C/C++開發(fā),然后在CPU上執(zhí)行。它們編譯和鏈接生成可執(zhí)行文件,在CPU上執(zhí)行的模塊可以通過帶AXI協(xié)議的接口與FPGA部分進(jìn)行通信。

圖1 框架體系結(jié)構(gòu)

1.1 FPGA端系統(tǒng)設(shè)計(jì)

FPGA端架構(gòu)略——編者注,在當(dāng)前版本的框架中, AXI用作IP核、I/O、FPGA內(nèi)存和處理器之間的互連協(xié)議,AXI4、AXI stream和AXI-lite在FPGA內(nèi)實(shí)現(xiàn)。通過實(shí)現(xiàn)這個(gè)架構(gòu)和提前分配用戶IP核地址,使IP核、FPGA部分的I/O和內(nèi)存對處理器是可見的,并且可以像資源一樣管理。分配的IP核地址空間可以映射到虛擬地址,由CPU上的操作系統(tǒng)進(jìn)行管理,使得CPU用戶不用開發(fā)設(shè)備驅(qū)動(dòng)來實(shí)現(xiàn)與IP核的通信,因此,應(yīng)用程序員可以更好地在CPU端開發(fā)算法。為了實(shí)現(xiàn)擴(kuò)展性,框架設(shè)計(jì)成可以包含多個(gè)IP核和I/O接口。

1.2 CPU端系統(tǒng)設(shè)計(jì)

為了方便CPU應(yīng)用程序員調(diào)用FPGA上實(shí)現(xiàn)的功能,本文的框架提供了一系列的API,方便他們使用FPGA模塊而不需要實(shí)現(xiàn)一些特定的驅(qū)動(dòng)程序,包括用特定的功能模塊配置FPGA、設(shè)置FPGA模塊參數(shù)與FPGA通信等。

Config(lib_name,bin_file,algorithm_info);用指定的比特流配置FPGA和保存算法信息中FPGA資源相關(guān)的信息,以方便后續(xù)CPU的管理

Algorithm_set(point IPcore,parameter_name,parameter_value);在運(yùn)行之前為FPGA模塊配置算法參數(shù)

FPGA_mem_request(point point_name,data_size); FPGA_mem_release(point point name);請求和釋放一塊FPGA內(nèi)存

ARM_tx(point ARM_source,point FPGA_destination,intncols,intnrows);ARM_rx(point ARM_destination,point FPGA_source,intncols,intnrows);實(shí)現(xiàn)CPU和FPGA之間的內(nèi)存拷貝

Start(point IPcore);參數(shù)配置好之后,啟動(dòng)FPGA模塊

reset(point IPcore);重置FPGA模塊

2 基于框架的設(shè)計(jì)流程

圖2是一個(gè)C/C++程序員實(shí)現(xiàn)FPGA異構(gòu)系統(tǒng)的設(shè)計(jì)流程圖。使用了本文的框架后,只有虛線以上的部分是需要應(yīng)用者完成的,具體的將在后面介紹。

2.1 FPGA端用C/C++設(shè)計(jì)算法/模塊

為了方便用戶設(shè)計(jì)帶有AXI的算法或者模塊,在本文的框架中提供了一個(gè)模板。用戶可以在該模板中嵌入他們的設(shè)計(jì),然后使用#pragma構(gòu)造帶AXI的接口。算法優(yōu)化需要利用更多的并行性,Vivado HLS提供了一些優(yōu)化方案,如果用戶有一些系統(tǒng)架構(gòu)方面的知識,也可以手動(dòng)進(jìn)行優(yōu)化。需要說明的是,Vivado HLS中仿真階段的調(diào)試是不在這里討論的。

圖2 實(shí)現(xiàn)FPGA異構(gòu)系統(tǒng)設(shè)計(jì)流程圖

2.2 算法設(shè)計(jì)后生成IP核

用C/C++實(shí)現(xiàn)的算法/模塊可以由Vivado生成一個(gè)IP核,它在后面可以作為一個(gè)組件,然后,這個(gè)IP核可以通過AXI掛載在一個(gè)合適的位置。因?yàn)榉峙涞墓潭ǖ刂妨斜砗涂偩€互連的體系結(jié)構(gòu)是提前實(shí)現(xiàn)的,用戶可以在無需了解太多架構(gòu)知識前提下,將他們的IP核掛載在指定的位置。

2.3 CPU端用C/C++設(shè)計(jì)算法/模塊

算法或者模塊適合在CPU上執(zhí)行,主程序可以使用C/C++在傳統(tǒng)的軟件開發(fā)環(huán)境中實(shí)現(xiàn)。正如第1.2節(jié)介紹的那樣,框架提供的API可以讓用戶配置FPGA、設(shè)置參數(shù)和使用FPGA模塊,因此通過使用這些API,程序員能夠操作FPGA模塊和解析數(shù)據(jù)。用戶設(shè)計(jì)一個(gè)新的FPGA模塊就需要設(shè)計(jì)一個(gè)API,以方便上層用戶以純軟件的方式調(diào)用FPGA功能。

2.4 為CPU生成可執(zhí)行文件

第二部分的項(xiàng)目由Linux GCC編譯和鏈接生成可執(zhí)行文件,它在執(zhí)行時(shí)可以重新配置FPGA和調(diào)用FPGA模塊。

本文框架的用戶可以分為3類:①同時(shí)在FPGA和CPU上實(shí)現(xiàn)算法;②只在FPGA上實(shí)現(xiàn)算法;③只在CPU上實(shí)現(xiàn)算法。對于第一種用戶,需要用到上面描述的整個(gè)設(shè)計(jì)流程;對于第二種用戶,除了實(shí)現(xiàn)IP核,還需要為上層用戶提供軟件API,它具有特定的功能,可以根據(jù)需要配置和操作相應(yīng)的IP核;對于第三種用戶,如同常規(guī)的軟件程序員,他們在CPU上使用由第二種用戶提供的API,甚至不知道已經(jīng)用到FPGA模塊。當(dāng)更多的IP核被不同的程序員實(shí)現(xiàn)時(shí),大量的應(yīng)用就能夠通過傳統(tǒng)的軟件開發(fā)程序員在CPU上開發(fā)。

正如圖2所示,用本文的框架開發(fā)FPGA異構(gòu)平臺系統(tǒng),可以省略兩個(gè)步驟:構(gòu)造FPGA系統(tǒng)和開發(fā)設(shè)備驅(qū)動(dòng)。這兩步都是系統(tǒng)層面上的,需要用戶擁有更多的計(jì)算機(jī)體系結(jié)構(gòu)和操作系統(tǒng)的知識。此外,FPGA的重構(gòu)是本文框架提供的一個(gè)內(nèi)置函數(shù),對于一個(gè)應(yīng)用程序員來說,它的實(shí)現(xiàn)是極難的。

3 框架評估

為了驗(yàn)證本文框架對于C/C++應(yīng)用程序員的可用性,在本節(jié)中,將展示使用本文框架的SURF特征提取的實(shí)現(xiàn)結(jié)果。

實(shí)驗(yàn)平臺是一塊用于視覺計(jì)算的開發(fā)板,其他使用SoC的異構(gòu)平臺也可以使用本文的框架。如圖3所示,開發(fā)板包含Xilinx Spartan-6 XC6S LX150T FPGA和三星Cortex-A8 S5PV210 1 GHz的處理器。FPGA和ARM通過16位的數(shù)據(jù)總線和16位的地址總線連接,地址總線通過片選信號可以切換到兩個(gè)不同的地址空間。4個(gè)GPIO用作控制信號,4位SPI和7位GPIO用于處理器配置FPGA,有4個(gè)16位的DDR3與FPGA連接,為視覺算法計(jì)算提供了高帶寬內(nèi)存訪問,CMOS和Camera Link兩個(gè)接口提供視頻輸入。

圖3 用于視覺計(jì)算的ARM--FPGA異構(gòu)開發(fā)板

3.1 SURF算法簡介

SURF[15]是一個(gè)常用的算法,用于局部特征檢測和描述,它對圖像縮放、旋轉(zhuǎn)和光照等變化不敏感。SURF主要分為3個(gè)步驟:初始化、特征提取和特征描述。

初始化:這一步主要是做一些準(zhǔn)備工作,例如加載圖片,得到圖像像素點(diǎn)的大小和積分圖。

特征提取:這一步檢測圖像或者視頻幀里面的特征點(diǎn)。通過對圖片進(jìn)行多尺度的縮放,構(gòu)建一個(gè)基于尺度空間的Hessian金字塔,然后對它進(jìn)行分析。因此,特征點(diǎn)是從不同尺度上得到的,保證了算法對尺度變化的魯棒性。尺度空間分析后,用非最大抑制在一個(gè)3×3×3的模板里求出最穩(wěn)定點(diǎn),也就是說,如果某點(diǎn)的值大于模板內(nèi)其他26個(gè)點(diǎn)的值,它就被認(rèn)為是特征點(diǎn)。

特征描述:在這一步,每一個(gè)特征點(diǎn)都求得一個(gè)特征向量用于描述這個(gè)點(diǎn)。首先計(jì)算特征方向以保證算法旋轉(zhuǎn)不變,然后根據(jù)特征方向來計(jì)算特征向量,接著每一個(gè)特征點(diǎn)都由一個(gè)64維的特征向量表示,最后對它進(jìn)行歸一化來保證光照不變性。

3.2 在框架上實(shí)現(xiàn)SURF特征檢測算法

因?yàn)槌跏蓟蜋z測階段具有明顯的并行性[16],它們更容易被軟件程序員優(yōu)化。因此,在本文,只在FPGA上實(shí)現(xiàn)了初始化和特征檢測兩個(gè)步驟。根據(jù)第3部分的設(shè)計(jì)流程圖,用本文的方法實(shí)現(xiàn)SURF的過程如下:

①用C/C++設(shè)計(jì)SURF檢測代碼。首先在Xilinx Vivado上建立一個(gè)HLS工程,然后定義SURF檢測的實(shí)體:

在本文的框架中提供了實(shí)體模板,方便程序員使用。其中hls int32為32位的整型,inout_pix為輸入和輸出緩存的首地址,byte_rdoffset為讀的偏移量,而byte_wroffset為寫的偏移量,rows和cols為圖片的行和列。最后,用C/C++編寫的SURF檢測模塊就完成了。

②在SURF檢測模塊中添加AXI4。檢測模板包含AXI4的接口,可以利用Vivado HLS提供的定義。

下面定義了AXI4-Lite的返回寄存器:

③優(yōu)化SURF檢測代碼,實(shí)現(xiàn)更好的并行度。軟件人員可以利用Vivado HLS提供的方法優(yōu)化他們的C/C++代碼,而更進(jìn)一步的優(yōu)化則需要手動(dòng)進(jìn)行。

④SURF檢測模塊生成Pcore,由Vivado中的EDK將SURF代碼生成Pcore。

⑤將Pcore掛載在框架的FPGA端。將上述產(chǎn)生的Pcore掛載到本文框架的FPGA上。由于使用的是Spartan-6的FPGA開發(fā)板,所以采用的是Xilinx ISE。本文的框架在FPGA上是一個(gè)已經(jīng)設(shè)計(jì)好的工程,SURF算法的Pcore只需要選擇作為一個(gè)IP模塊,就可以很容易地連接到框架的一個(gè)固定接口上。

⑥生成配置FPGA的比特流,并且為上層用戶設(shè)計(jì)API。當(dāng)將用戶的Pcore連接到FPGA的框架上后,整個(gè)系統(tǒng)可以合成一個(gè)比特流文件,用來配置FPGA。然后,按照第3部分來設(shè)計(jì)API,供上層用戶使用。

⑦最后一步在CPU上設(shè)計(jì)模塊,基于API在異構(gòu)平臺之上構(gòu)建整個(gè)應(yīng)用程序。

3.3 實(shí)驗(yàn)結(jié)果

首先對SURF在帶有本文框架的FPGA異構(gòu)平臺、ARM嵌入式平臺和PC三個(gè)平臺上的執(zhí)行時(shí)間進(jìn)行了比較,然后比較了SURF算法在帶和不帶有本文框架時(shí),在FPGA上的資源消耗情況,最后驗(yàn)證了圖片的檢測結(jié)果和帶框架的檢測結(jié)果的準(zhǔn)確性。除了之前介紹的開發(fā)板信息,在實(shí)驗(yàn)中,SURF檢測算法的工作頻率為62.5 MHz,PC的CPU為3.1 GHz AMD Athlon(tm)II X4 645,DDR3的頻率為1.6 GHz。SURF檢測算法的相關(guān)參數(shù)如表1所列。需要說明的是,在CPU中使用的是浮點(diǎn)型,而在FPGA中使用的是定點(diǎn)型。

表1 配置參數(shù)

3.3.1 運(yùn)算時(shí)間

為了比較不同平臺上SURF算法的執(zhí)行時(shí)間,實(shí)驗(yàn)用的是同一組圖片。圖4(a)所示是不同平臺和不同分辨率時(shí)的執(zhí)行時(shí)間,圖4(b)是放大后FPGA和PC的運(yùn)算時(shí)間。從圖中可以看出,FPGA的運(yùn)算速度最快,同時(shí)隨著圖片容量的增大,加速的效果越明顯,主要是因?yàn)椴⑿杏?jì)算時(shí)間的增加是線性的,這也反映了軟件人員使用FPGA的重要性。

SURF檢測算法在FPGA異構(gòu)平臺上的總運(yùn)行時(shí)間圖略——編者注,包括圖片從ARM到FPGA的傳輸時(shí)間、計(jì)算時(shí)間和最后把結(jié)果從FPGA傳回ARM的時(shí)間。從圖中可以看到,把圖片從ARM傳到FPGA是最耗時(shí)的。即使認(rèn)為計(jì)算時(shí)間包含這3個(gè)部分,它的時(shí)間也是遠(yuǎn)遠(yuǎn)低于ARM的,如果在FPGA上直接加攝像頭捕捉圖片就可以減去從ARM到FPGA傳輸圖片的耗時(shí)。此外,要避免頻繁地重配FPGA,因?yàn)镾partan-6 XC6SLX150T的重配時(shí)間需要2 s左右。

圖4 不同平臺上SURF檢測執(zhí)行時(shí)間

3.3.2 資源消耗

帶本文框架和不帶本文框架時(shí),SURF檢測算法的資源消耗情況圖略——編者注。從圖中可以看出,框架只占用了非常少的一部分資源,隨著FPGA集成度不斷增大,系統(tǒng)框架所帶來的資源消耗是可以容忍并且愿意使用的,因?yàn)榭蚣芸梢詷O大方便程序員使用FPGA異構(gòu)平臺。

3.3.3 檢測結(jié)果

圖5所示是帶框架的FPGA異構(gòu)平臺的SURF檢測算法的檢測結(jié)果,顯示了帶框架后計(jì)算結(jié)果的準(zhǔn)確性。雖然使用定點(diǎn)計(jì)算會(huì)導(dǎo)致計(jì)算結(jié)果與準(zhǔn)確結(jié)果有一定偏差,但是通過調(diào)整閾值可以提高結(jié)果的準(zhǔn)確性。

結(jié) 語

傳統(tǒng)的FPGA的開發(fā)方法,對于軟件程序員來說是非常困難的,尤其是當(dāng)應(yīng)用程序員對系統(tǒng)結(jié)構(gòu)知識了解不多的時(shí)候。但是,應(yīng)用程序員又最了解市場和用戶的需求,通用處理器領(lǐng)域,多層結(jié)構(gòu)使應(yīng)用程序員遠(yuǎn)離了底層細(xì)節(jié),提高了生產(chǎn)力,縮短了研發(fā)到投放市場的時(shí)間。隨著集成度越來越高,FPGA可以容忍來自系統(tǒng)虛擬化的資源消耗,同時(shí),FPGA也需要虛擬化技術(shù)來提高資源管理和生產(chǎn)力。本文設(shè)計(jì)的框架可以使得C/C++應(yīng)用程序員更關(guān)注在FPGA和CPU上實(shí)現(xiàn)特定的功能。同時(shí),框架集成到了商業(yè)工具鏈(如Xilinx Vivado)中,可以立即使用。一個(gè)軟件人員在包含此框架的基于FPGA的異構(gòu)平臺上成功實(shí)現(xiàn)了一個(gè)常用的特征檢測算法,表明此框架是可用的。下一步,適合軟件人員的調(diào)試方案也將集成到此框架中,此外,其他虛擬化技術(shù)(如虛擬內(nèi)存、多片F(xiàn)PGA的分區(qū)),在LEAP和CoRAM中研究的一些內(nèi)容也會(huì)集成到這個(gè)框架中。

圖5 FPGA加速異構(gòu)平臺的SURF檢測結(jié)果

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www. mesnet.com.cn。

[1]J Wawrzynek M,Oskin C,Kozyrakis D,et al.RAMP:A Research Acceleratorfor Multiple Processors[C]//Technical Report,2006.

[2]U Vishkin.Is Multicore Hardware for General-purpose Parallel Process-ing Broken[J].Communications of ACM,2014, 57(4):35-39.

[3]C Pascoe,A Lawande,H Lam,et al.Recon gurable Supercomputing with Scalable Systolic Arrays and In Stream Control for Wavefront Genomics Processing[C]//Proceedings of International Conference on Engineering of Recon gurable Systems and Algorithms,2010.

[4]X Tian,K Benkrid.High-Performance Quasi-Monte Carlo Financial Simulation:FPGA vs.GPP vs.GPU,ACM Trans. Recong.Techn.Syst.3,4,Article 26(November 2010), 22 pages.

[5]Xilinx.Zynq-7000 SoC[EB/OL].[2016-05].http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm.

[6]G Martin,G Smith.High-Level Synthesis:Past,Present,and Future[J].IEEE Design and Test of Computers,2009:18-24.

[7]E S Chung,P A Milder,J C Hoe,et al.Single-Chip Heterogeneous Computing:Does the Future Include Custom Logic, FPGAs and GPGPUs[C]//Proceedings of IEEE/ACM International Symposium on Microarchitecture,2010:225-236.

[8]E S Chungy,J D Davisy,J Lee.LINQits:Big Data on Little Clients[C]//Proceedings of ACM/IEEE International Symposium on Computer Architecture,ISCA 2013.

[9]Xilinx.Vivado Design Suite[EB/OL].[2016-05].http:// www.xilinx.com/products/designtools/vivado/.

[10]Altera.Altera SDK for OpenCL Programming Guide[EB/ OL].[2016-05].http://http://www.altera.com/literature/hb/opencl-sdk/.

[11]A Parashar,M Adler,K E Fleming,et al.LEAP:A Virtual Platform Architecture for FPGAs[EB/OL].[2016-05].http://asim.csail.mit.edu/redmine/attachments/76/.

[12]S T Yamazaki,J C Hoe.PyCoRAM:Yet Another Implementation of CoRAM Memory Architecture for Modern FPGA-based Computing[C]//3rd Workshop on the Intersections of Computer Architecture and Recon gurable Logic,2013.

[13]H K H So,R Brodersen.A Uni?ed Hardware/Software Runtime Environment for FPGA-Based Recon?gurable Computers using BORPH[J].ACM Transactions on Embedded Computing Systems(TECS),2008,7(2).

[14]R Kirchgessner,A D George,H Lam.Recon gurable Computing Middleware for Application Portability and Productivity[C]//Proceedings of IEEE International Conference on Application-speci c Systems,Architectures and Processors, 2013:211-218.

[15]H Bay,T Tuytelaars,L V Gool.Surf:Speeded up robust features[C]//Proceedings of European Conference on Computer Vision.

[16]Z Fang,D Yang,W Zhang,et al.A Comprehensive Analysis and Parallelization of an Image Retrieval Algorithm[C]// Proceedings of IEEE International Symposium on Performance Analysis of Systems and Software,2011.

沈鎮(zhèn)(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)、圖像處理;柴志雷(副教授),主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)技術(shù)、機(jī)器視覺、FPGA操作系統(tǒng)等;柴鎮(zhèn)(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)、可重構(gòu)計(jì)算。

A Framework for Application Programmers to Design FPGA-based Systems※

Shen Zhen,Chai Zhilei,Chai Zhen
(School of Internet of Things,Jiangnan University,Wuxi 214122,China)

In the paper,the Open HEC(Open Framework for High-Effciency Computing)framework is proposed to provide a design framework for application-level software programmers to use FPGA-based platform.It frees users from hardware and architectural details to let them focus more on algorithms/applications.This framework is integrated with the commercial Xilinx ISE/Vivado to make it to be used immediately.After implementing a widely-used feature detection algorithm on Open HEC from the perspective of software programmers,it shows that this framework is applicable for application programmers with little hardware knowledge.

FPGA;embedded system;feature detection;application program

TP368

:A

薛士然

2016-05-24)

猜你喜歡
用戶檢測設(shè)計(jì)
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
瞞天過海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測中的應(yīng)用
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 99久久精品国产麻豆婷婷| 丁香婷婷综合激情| 538精品在线观看| 伊人久久久久久久| 老司机aⅴ在线精品导航| 久久这里只有精品66| 亚洲精品手机在线| 无码内射在线| 国产波多野结衣中文在线播放| 三区在线视频| 亚洲色图综合在线| 欧美亚洲一二三区| 亚洲国模精品一区| 国产欧美另类| 亚洲精品va| 在线观看av永久| 国产91久久久久久| 国产在线精品99一区不卡| 福利片91| 久久精品国产在热久久2019| 国产微拍一区| 久久人人97超碰人人澡爱香蕉| 久久综合五月婷婷| 亚洲伊人电影| 丰满人妻一区二区三区视频| AV无码一区二区三区四区| 国产视频久久久久| 在线不卡免费视频| 伊人婷婷色香五月综合缴缴情| 国产肉感大码AV无码| 试看120秒男女啪啪免费| 91精品久久久无码中文字幕vr| 国产成人精品2021欧美日韩| 国产精品亚洲精品爽爽| 亚洲国产成人精品一二区| 久久综合干| 亚洲欧美另类久久久精品播放的| 在线视频一区二区三区不卡| 久久国产毛片| 丁香综合在线| 国产高清自拍视频| 亚洲无码精品在线播放| 国产91av在线| 欧美日韩在线国产| 久久免费精品琪琪| 一级黄色网站在线免费看| 欧美激情视频一区| 欧美在线视频a| 丰满人妻被猛烈进入无码| 亚洲区一区| av大片在线无码免费| 四虎免费视频网站| 久久久久人妻精品一区三寸蜜桃| 国产精品片在线观看手机版| 先锋资源久久| 国产浮力第一页永久地址| 亚洲欧美h| 99久久国产综合精品女同| 欧美成人午夜影院| 一本大道无码日韩精品影视| 亚洲免费成人网| a在线亚洲男人的天堂试看| 亚洲最新在线| 国产99视频精品免费观看9e| 91小视频在线播放| 一区二区欧美日韩高清免费| 亚洲系列无码专区偷窥无码| 久久无码高潮喷水| 中文字幕 欧美日韩| 亚洲乱码在线播放| 国产三级精品三级在线观看| 久久国产精品电影| 亚洲av无码成人专区| 99热这里只有免费国产精品| 国产美女精品在线| 亚洲熟女偷拍| 一区二区三区国产精品视频| 国产成人精品2021欧美日韩| 欧美日韩v| 免费一级毛片完整版在线看| 国产91高跟丝袜| 搞黄网站免费观看|