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

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

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

RapidStream:FPGA HLS設(shè)計(jì)的并行物理實(shí)現(xiàn)

SSDFans ? 來源:SSDFans ? 作者: EVE ? 2022-05-25 09:50 ? 次閱讀

FPGA的布局布線軟件向來跑得很慢。事實(shí)上,F(xiàn)PGA供應(yīng)商已經(jīng)花了很大的精力使其設(shè)計(jì)軟件在多核處理器上運(yùn)行得更快。

最近,在ACM的FPGA 2022會(huì)議上發(fā)表了一篇題為“RapidStream: FPGA HLS設(shè)計(jì)的并行物理實(shí)現(xiàn)”的論文,論文中描述了一種非常有趣的方法,通過FPGA設(shè)計(jì)軟件推動(dòng)HLS設(shè)計(jì)更快地運(yùn)行在多核處理器上。

這篇論文由UCLA、AMD-Xilinx、根特大學(xué)和康奈爾大學(xué)的研究團(tuán)隊(duì)撰寫,描述了RapidStream自動(dòng)分區(qū)算法,將數(shù)據(jù)流設(shè)計(jì)分割成多個(gè)“island”,在劃分的island之間插入“anchor regions”,然后通過anchor regions中的寄存器將每個(gè)island的信號(hào)連起來整合到整個(gè)設(shè)計(jì)中。

所有這些劃分和拼接背后的目的是將HLS設(shè)計(jì)分割成小塊,交付給現(xiàn)代服務(wù)器中的多個(gè)核心。這種策略已經(jīng)有悠久的歷史,現(xiàn)在被用于加速FPGA的開發(fā)。

這個(gè)過程有三個(gè)主要的HLS級(jí)約束:

1、非重疊分區(qū)——并行化不同island的物理實(shí)現(xiàn);

2、流水線化的island間連接——每個(gè)island間連接都流水線化,以滿足時(shí)序要求;

3、直接連接——每個(gè)island只能與相鄰的island直接連接。當(dāng)并行化設(shè)計(jì)布局布線時(shí),這個(gè)約束是至關(guān)重要的。

(注意:這些約束與用于控制邏輯綜合的各種約束完全不同,它處于一個(gè)更高的層次。)

RapidStream的開發(fā)者將數(shù)據(jù)流設(shè)計(jì)定義為一組并行處理元素(processing element,簡(jiǎn)稱PE)和一組根據(jù)設(shè)計(jì)的數(shù)據(jù)流需求將PE連接起來的FIFO。PE內(nèi)部可以很復(fù)雜,但只能通過FIFO接口與其他PE進(jìn)行數(shù)據(jù)通信。

如上所述,RapidStream將FPGA fabric劃分為兩種region:大小相同的region和在相鄰region之間以窄列和行放置的anchor region。有趣的是,RapidStream似乎是專門為AMD-Xilinx Virtex UltraScale+ FPGA構(gòu)建的,這是由FPGAchiplet(AMD-Xilinx語言中的超級(jí)邏輯區(qū)域,簡(jiǎn)稱SLR)制成的2.5D器件。

a247143c-dbbf-11ec-ba43-dac502259ad0.png

這篇論文包含了幾個(gè)描述RapidStream工作性能的圖表。下圖顯示了在分區(qū)后,六種不同的數(shù)據(jù)流設(shè)計(jì)與沒有分區(qū)的流水線/非流水線版本時(shí)鐘速率的比較。

a2b9d65c-dbbf-11ec-ba43-dac502259ad0.png

從上圖可以看出,RapidStream比所有非流水線版本的時(shí)鐘速率更高。這是意料之中的,因?yàn)榱魉€是FPGA時(shí)鐘速度改進(jìn)的核心。然而,六種情況中,有五種情況RapidStream的結(jié)果比相同設(shè)計(jì)的流水線RTL版本要好,這個(gè)結(jié)果要引起我們的注意。

下面是布局布線的時(shí)間結(jié)果對(duì)比:

a33394ce-dbbf-11ec-ba43-dac502259ad0.png

RapidStream的布局布線運(yùn)行時(shí)間比未分區(qū)設(shè)計(jì)的結(jié)果要好得多。這是因?yàn)镽apidStream可以將每個(gè)分區(qū)送給不同的處理器核心來布局布線。

雖然FPGA供應(yīng)商試圖讓布局布線算法在多核處理器上工作得更快,但RapidStream的開發(fā)人員根據(jù)經(jīng)驗(yàn)發(fā)現(xiàn),如果FPGA設(shè)計(jì)沒有分區(qū),在超過兩個(gè)處理器核心上運(yùn)行AMD-Xilinx Vivado設(shè)計(jì)工具時(shí)并沒有太大改善。

如果有讀者正在用FPGA開發(fā)HLS設(shè)計(jì)——特別是AMD-Xilinx FPGA,那么應(yīng)該會(huì)對(duì)RapidStream感興趣。更細(xì)節(jié)的內(nèi)容可以在GitHub上找到。

原文標(biāo)題:HLS分區(qū)加速FPGA布局布線!

文章出處:【微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

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

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600450
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2140

    瀏覽量

    120680
  • 布局布線
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    15148
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    23966

原文標(biāo)題:HLS分區(qū)加速FPGA布局布線!

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在FPGA實(shí)現(xiàn)按鍵消抖

    FPGA(現(xiàn)場(chǎng)可編程門陣列)中實(shí)現(xiàn)按鍵消抖是一個(gè)重要的設(shè)計(jì)環(huán)節(jié),特別是在處理用戶輸入時(shí),由于物理按鍵的機(jī)械特性和電氣特性,按鍵在按下和釋放的瞬間會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,這種抖動(dòng)可能導(dǎo)致系統(tǒng)錯(cuò)誤地識(shí)別為多次
    的頭像 發(fā)表于 08-19 18:15 ?964次閱讀

    優(yōu)化 FPGA HLS 設(shè)計(jì)

    減少錯(cuò)誤并更容易調(diào)試。然而,經(jīng)常出現(xiàn)的問題是性能權(quán)衡。在高度復(fù)雜的 FPGA 設(shè)計(jì)中實(shí)現(xiàn)高性能需要手動(dòng)優(yōu)化 RTL 代碼,而這對(duì)于HLS開發(fā)環(huán)境生成的 RTL 代碼來說是不可能的。然而,存在一些解決方案
    發(fā)表于 08-16 19:56

    在多FPGA集群上實(shí)現(xiàn)高級(jí)并行編程

    今天我們看的這篇論文介紹了在多FPGA集群上實(shí)現(xiàn)高級(jí)并行編程的研究,其主要目標(biāo)是為非FPGA專家提供一個(gè)成熟且易于使用的環(huán)境,以便在多個(gè)并行
    的頭像 發(fā)表于 07-24 14:54 ?936次閱讀

    基于FPGA的圖像采集與顯示系統(tǒng)設(shè)計(jì)

    源和固有的并行處理能力,在數(shù)字信號(hào)處理、硬件加速、汽車電子等領(lǐng)域得到了廣泛應(yīng)用。在圖像采集與顯示系統(tǒng)中,FPGA能夠實(shí)現(xiàn)高速、并行的數(shù)據(jù)處理,顯著提高系統(tǒng)的實(shí)時(shí)性和性能。本文設(shè)計(jì)了一個(gè)
    的頭像 發(fā)表于 07-17 10:58 ?1494次閱讀

    一種在HLS中插入HDL代碼的方式

    很多人都比較反感用C/C++開發(fā)(HLSFPGA,大家第一拒絕的理由就是耗費(fèi)資源太多。但是HLS也有自己的優(yōu)點(diǎn),除了快速構(gòu)建算法外,還有一個(gè)就是接口的生成,尤其對(duì)于AXI類接口,按照標(biāo)準(zhǔn)語法就可以很方便地生成相關(guān)接口。
    的頭像 發(fā)表于 07-16 18:01 ?585次閱讀
    一種在<b class='flag-5'>HLS</b>中插入HDL代碼的方式

    請(qǐng)問如何使用fx3芯片來對(duì)FPGA進(jìn)行并行配置?

    我閱讀過AN84868,了解到fx3可以對(duì)連接的FPGA芯片進(jìn)行串行配置;但是我的項(xiàng)目中,希望能盡量縮短FPGA配置的時(shí)間,因此希望能夠了解是否有辦法使用fx3芯片對(duì)外接的FPGA芯片進(jìn)行并行
    發(fā)表于 05-28 08:30

    # FPGA 編程如何工作?

    。 FPGA 在提高智能電網(wǎng)的可擴(kuò)展性和性能方面非常有用,同時(shí)仍保持低功耗。 =#3。= 航空航天和國(guó)防 飛機(jī)有時(shí)會(huì)飛過惡劣的環(huán)境。因此,制造公司生產(chǎn)抗輻射和抗輻射 FPGA,與傳統(tǒng) ASIC 實(shí)現(xiàn)
    發(fā)表于 03-30 11:50

    如何使用FPGA驅(qū)動(dòng)并行ADC和并行DAC芯片?

    ADC和DAC是FPGA與外部信號(hào)的接口,從數(shù)據(jù)接口類型的角度劃分,有低速的串行接口和高速的并行接口。
    的頭像 發(fā)表于 02-22 16:15 ?3245次閱讀
    如何使用<b class='flag-5'>FPGA</b>驅(qū)動(dòng)<b class='flag-5'>并行</b>ADC和<b class='flag-5'>并行</b>DAC芯片?

    FPGA實(shí)現(xiàn)原理

    FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)是一種特殊的集成電路,其內(nèi)部結(jié)構(gòu)由大量的可配置邏輯塊和互連線組成。FPGA可以通過編程來實(shí)現(xiàn)各種數(shù)字系統(tǒng)功能
    發(fā)表于 01-26 10:03

    AMD-Xilinx的Vitis-HLS編譯指示小結(jié)

    ;j++) { b = 2; } } 由于這條指令的應(yīng)用條件十分苛刻,因此很少使用。一般直接通過代碼重構(gòu)的方式對(duì)連續(xù)循環(huán)進(jìn)行優(yōu)化。 參考文檔 官方vitis-hls的ug1399文檔 FPGA并行編程 【流水線】
    發(fā)表于 12-31 21:20

    研討會(huì):利用編譯器指令提升AMD Vitis? HLS 設(shè)計(jì)性能

    AMD Vitis 高層次綜合 ( HLS ) 已成為自適應(yīng) SoC 及 FPGA 產(chǎn)品設(shè)計(jì)領(lǐng)域的一項(xiàng)顛覆性技術(shù),可在創(chuàng)建定制硬件設(shè)計(jì)時(shí)實(shí)現(xiàn)更高層次的抽象并提高生產(chǎn)力。Vitis HLS
    的頭像 發(fā)表于 12-05 09:10 ?468次閱讀
    研討會(huì):利用編譯器指令提升AMD Vitis? <b class='flag-5'>HLS</b> 設(shè)計(jì)性能

    如何用HLS實(shí)現(xiàn)UART呢?

    UART 是一種舊的串行通信機(jī)制,但仍在很多平臺(tái)中使用。它在 HDL 語言中的實(shí)現(xiàn)并不棘手,可以被視為本科生的作業(yè)。在這里,我將通過這個(gè)例子來展示在 HLS實(shí)現(xiàn)它是多么容易和有趣。
    的頭像 發(fā)表于 11-20 09:50 ?592次閱讀
    如何用<b class='flag-5'>HLS</b><b class='flag-5'>實(shí)現(xiàn)</b>UART呢?

    如何用HLS實(shí)現(xiàn)UART

    UART 是一種舊的串行通信機(jī)制,但仍在很多平臺(tái)中使用。它在 HDL 語言中的實(shí)現(xiàn)并不棘手,可以被視為本科生的作業(yè)。在這里,我將通過這個(gè)例子來展示在 HLS實(shí)現(xiàn)它是多么容易和有趣。
    的頭像 發(fā)表于 11-20 09:48 ?496次閱讀
    如何用<b class='flag-5'>HLS</b><b class='flag-5'>實(shí)現(xiàn)</b>UART

    使用Vivado高層次綜合(HLS)進(jìn)行FPGA設(shè)計(jì)的簡(jiǎn)介

    電子發(fā)燒友網(wǎng)站提供《使用Vivado高層次綜合(HLS)進(jìn)行FPGA設(shè)計(jì)的簡(jiǎn)介.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 09:33 ?0次下載
    使用Vivado高層次綜合(<b class='flag-5'>HLS</b>)進(jìn)行<b class='flag-5'>FPGA</b>設(shè)計(jì)的簡(jiǎn)介

    HLS中組合電路對(duì)設(shè)計(jì)的影響

    該項(xiàng)目通過一個(gè)示例演示了 HLS 中組合電路對(duì)設(shè)計(jì)的影響。
    的頭像 發(fā)表于 11-03 09:04 ?680次閱讀
    <b class='flag-5'>HLS</b>中組合電路對(duì)設(shè)計(jì)的影響