FPGA的布局布線軟件向來(lái)跑得很慢。事實(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)”的論文,論文中描述了一種非常有趣的方法,通過(guò)FPGA設(shè)計(jì)軟件推動(dòng)HLS設(shè)計(jì)更快地運(yùn)行在多核處理器上。
這篇論文由UCLA、AMD-Xilinx、根特大學(xué)和康奈爾大學(xué)的研究團(tuán)隊(duì)撰寫(xiě),描述了RapidStream自動(dòng)分區(qū)算法,將數(shù)據(jù)流設(shè)計(jì)分割成多個(gè)“island”,在劃分的island之間插入“anchor regions”,然后通過(guò)anchor regions中的寄存器將每個(gè)island的信號(hào)連起來(lái)整合到整個(gè)設(shè)計(jì)中。
所有這些劃分和拼接背后的目的是將HLS設(shè)計(jì)分割成小塊,交付給現(xiàn)代服務(wù)器中的多個(gè)核心。這種策略已經(jīng)有悠久的歷史,現(xiàn)在被用于加速FPGA的開(kāi)發(fā)。
這個(gè)過(guò)程有三個(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的開(kāi)發(fā)者將數(shù)據(jù)流設(shè)計(jì)定義為一組并行處理元素(processing element,簡(jiǎn)稱(chēng)PE)和一組根據(jù)設(shè)計(jì)的數(shù)據(jù)流需求將PE連接起來(lái)的FIFO。PE內(nèi)部可以很復(fù)雜,但只能通過(guò)FIFO接口與其他PE進(jìn)行數(shù)據(jù)通信。
如上所述,RapidStream將FPGA fabric劃分為兩種region:大小相同的region和在相鄰region之間以窄列和行放置的anchor region。有趣的是,RapidStream似乎是專(zhuān)門(mén)為AMD-Xilinx Virtex UltraScale+ FPGA構(gòu)建的,這是由FPGA chiplet(AMD-Xilinx語(yǔ)言中的超級(jí)邏輯區(qū)域,簡(jiǎn)稱(chēng)SLR)制成的2.5D器件。
這篇論文包含了幾個(gè)描述RapidStream工作性能的圖表。下圖顯示了在分區(qū)后,六種不同的數(shù)據(jù)流設(shè)計(jì)與沒(méi)有分區(qū)的流水線/非流水線版本時(shí)鐘速率的比較。
從上圖可以看出,RapidStream比所有非流水線版本的時(shí)鐘速率更高。這是意料之中的,因?yàn)榱魉€是FPGA時(shí)鐘速度改進(jìn)的核心。然而,六種情況中,有五種情況RapidStream的結(jié)果比相同設(shè)計(jì)的流水線RTL版本要好,這個(gè)結(jié)果要引起我們的注意。
下面是布局布線的時(shí)間結(jié)果對(duì)比:
RapidStream的布局布線運(yùn)行時(shí)間比未分區(qū)設(shè)計(jì)的結(jié)果要好得多。這是因?yàn)镽apidStream可以將每個(gè)分區(qū)送給不同的處理器核心來(lái)布局布線。
雖然FPGA供應(yīng)商試圖讓布局布線算法在多核處理器上工作得更快,但RapidStream的開(kāi)發(fā)人員根據(jù)經(jīng)驗(yàn)發(fā)現(xiàn),如果FPGA設(shè)計(jì)沒(méi)有分區(qū),在超過(guò)兩個(gè)處理器核心上運(yùn)行AMD-Xilinx Vivado設(shè)計(jì)工具時(shí)并沒(méi)有太大改善。
如果有讀者正在用FPGA開(kāi)發(fā)HLS設(shè)計(jì)——特別是AMD-Xilinx FPGA,那么應(yīng)該會(huì)對(duì)RapidStream感興趣。更細(xì)節(jié)的內(nèi)容可以在GitHub上找到。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618422 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7256瀏覽量
91863 -
多核處理器
+關(guān)注
關(guān)注
0文章
110瀏覽量
20310
發(fā)布評(píng)論請(qǐng)先 登錄
基于動(dòng)態(tài)區(qū)分矩陣的屬性約簡(jiǎn)算法
基于外極線分區(qū)的動(dòng)態(tài)立體匹配算法
最佳集水分區(qū)模擬之研究
一種多核混合分區(qū)調(diào)度算法設(shè)計(jì)與實(shí)現(xiàn)
基于分區(qū)連通性恢復(fù)算法DCRA

基于迭代填充的內(nèi)存計(jì)算框架分區(qū)映射算法

基于場(chǎng)景分區(qū)的隨機(jī)潮流解析算法

基于區(qū)分對(duì)象集的啟發(fā)式屬性約簡(jiǎn)算法
Spark漸進(jìn)填充分區(qū)映射算法

硬盤(pán)為什么要分區(qū) 怎么分區(qū)

HIGHT算法的積分攻擊
基于RC模型的多分區(qū)權(quán)值約簡(jiǎn)微博社區(qū)檢測(cè)算法

LICi算法抵抗積分攻擊的相關(guān)實(shí)驗(yàn)及分析

評(píng)論