FPGA的布局布線軟件向來跑得很慢。事實上,F(xiàn)PGA供應商已經(jīng)花了很大的精力使其設(shè)計軟件在多核處理器上運行得更快。
最近,在ACM的FPGA 2022會議上發(fā)表了一篇題為“RapidStream: FPGA HLS設(shè)計的并行物理實現(xiàn)”的論文,論文中描述了一種非常有趣的方法,通過FPGA設(shè)計軟件推動HLS設(shè)計更快地運行在多核處理器上。
這篇論文由UCLA、AMD-Xilinx、根特大學和康奈爾大學的研究團隊撰寫,描述了RapidStream自動分區(qū)算法,將數(shù)據(jù)流設(shè)計分割成多個“island”,在劃分的island之間插入“anchor regions”,然后通過anchor regions中的寄存器將每個island的信號連起來整合到整個設(shè)計中。
所有這些劃分和拼接背后的目的是將HLS設(shè)計分割成小塊,交付給現(xiàn)代服務(wù)器中的多個核心。這種策略已經(jīng)有悠久的歷史,現(xiàn)在被用于加速FPGA的開發(fā)。
這個過程有三個主要的HLS級約束:
1、非重疊分區(qū)——并行化不同island的物理實現(xiàn);
2、流水線化的island間連接——每個island間連接都流水線化,以滿足時序要求;
3、直接連接——每個island只能與相鄰的island直接連接。當并行化設(shè)計布局布線時,這個約束是至關(guān)重要的。
(注意:這些約束與用于控制邏輯綜合的各種約束完全不同,它處于一個更高的層次。)
RapidStream的開發(fā)者將數(shù)據(jù)流設(shè)計定義為一組并行處理元素(processing element,簡稱PE)和一組根據(jù)設(shè)計的數(shù)據(jù)流需求將PE連接起來的FIFO。PE內(nèi)部可以很復雜,但只能通過FIFO接口與其他PE進行數(shù)據(jù)通信。
如上所述,RapidStream將FPGA fabric劃分為兩種region:大小相同的region和在相鄰region之間以窄列和行放置的anchor region。有趣的是,RapidStream似乎是專門為AMD-Xilinx Virtex UltraScale+ FPGA構(gòu)建的,這是由FPGAchiplet(AMD-Xilinx語言中的超級邏輯區(qū)域,簡稱SLR)制成的2.5D器件。
這篇論文包含了幾個描述RapidStream工作性能的圖表。下圖顯示了在分區(qū)后,六種不同的數(shù)據(jù)流設(shè)計與沒有分區(qū)的流水線/非流水線版本時鐘速率的比較。
從上圖可以看出,RapidStream比所有非流水線版本的時鐘速率更高。這是意料之中的,因為流水線是FPGA時鐘速度改進的核心。然而,六種情況中,有五種情況RapidStream的結(jié)果比相同設(shè)計的流水線RTL版本要好,這個結(jié)果要引起我們的注意。
下面是布局布線的時間結(jié)果對比:
RapidStream的布局布線運行時間比未分區(qū)設(shè)計的結(jié)果要好得多。這是因為RapidStream可以將每個分區(qū)送給不同的處理器核心來布局布線。
雖然FPGA供應商試圖讓布局布線算法在多核處理器上工作得更快,但RapidStream的開發(fā)人員根據(jù)經(jīng)驗發(fā)現(xiàn),如果FPGA設(shè)計沒有分區(qū),在超過兩個處理器核心上運行AMD-Xilinx Vivado設(shè)計工具時并沒有太大改善。
如果有讀者正在用FPGA開發(fā)HLS設(shè)計——特別是AMD-Xilinx FPGA,那么應該會對RapidStream感興趣。更細節(jié)的內(nèi)容可以在GitHub上找到。
原文標題:HLS分區(qū)加速FPGA布局布線!
文章出處:【微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1644文章
22007瀏覽量
616384 -
Xilinx
+關(guān)注
關(guān)注
73文章
2184瀏覽量
124776 -
布局布線
+關(guān)注
關(guān)注
1文章
89瀏覽量
15364 -
HLS
+關(guān)注
關(guān)注
1文章
132瀏覽量
24738
原文標題:HLS分區(qū)加速FPGA布局布線!
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用AMD Vitis Unified IDE創(chuàng)建HLS組件

如何使用AMD Vitis HLS創(chuàng)建HLS IP

Linux系統(tǒng)中通過預留物理內(nèi)存實現(xiàn)ARM與FPGA高效通信的方法

Vivado HLS設(shè)計流程

如何使用FPGA驅(qū)動并行ADC和DAC芯片,使用不同編碼方式的ADC與DAC時的注意事項

FPGA+AI王炸組合如何重塑未來世界:看看DeepSeek東方神秘力量如何預測......
基于FPGA實現(xiàn)圖像直方圖設(shè)計

助力AIoT應用:在米爾FPGA開發(fā)板上實現(xiàn)Tiny YOLO V4
如何在FPGA中實現(xiàn)按鍵消抖
優(yōu)化 FPGA HLS 設(shè)計
FPGA在人工智能中的應用有哪些?
在多FPGA集群上實現(xiàn)高級并行編程
基于FPGA的圖像采集與顯示系統(tǒng)設(shè)計
一種在HLS中插入HDL代碼的方式

評論