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器件。
這篇論文包含了幾個(gè)描述RapidStream工作性能的圖表。下圖顯示了在分區(qū)后,六種不同的數(shù)據(jù)流設(shè)計(jì)與沒有分區(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ū)送給不同的處理器核心來布局布線。
雖然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)注明出處。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1624文章
21538瀏覽量
600450 -
Xilinx
+關(guān)注
關(guān)注
71文章
2140瀏覽量
120680 -
布局布線
+關(guān)注
關(guān)注
1文章
86瀏覽量
15148 -
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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論