FPGA的布局布線軟件向來跑得很慢。事實上,F(xiàn)PGA供應商已經(jīng)花了很大的精力使其設計軟件在多核處理器上運行得更快。
最近,在ACM的FPGA 2022會議上發(fā)表了一篇題為“RapidStream: FPGA HLS設計的并行物理實現(xiàn)”的論文,論文中描述了一種非常有趣的方法,通過FPGA設計軟件推動HLS設計更快地運行在多核處理器上。
這篇論文由UCLA、AMD-Xilinx、根特大學和康奈爾大學的研究團隊撰寫,描述了RapidStream自動分區(qū)算法,將數(shù)據(jù)流設計分割成多個“island”,在劃分的island之間插入“anchor regions”,然后通過anchor regions中的寄存器將每個island的信號連起來整合到整個設計中。
所有這些劃分和拼接背后的目的是將HLS設計分割成小塊,交付給現(xiàn)代服務器中的多個核心。這種策略已經(jīng)有悠久的歷史,現(xiàn)在被用于加速FPGA的開發(fā)。
這個過程有三個主要的HLS級約束:
1、非重疊分區(qū)——并行化不同island的物理實現(xiàn);
2、流水線化的island間連接——每個island間連接都流水線化,以滿足時序要求;
3、直接連接——每個island只能與相鄰的island直接連接。當并行化設計布局布線時,這個約束是至關重要的。
(注意:這些約束與用于控制邏輯綜合的各種約束完全不同,它處于一個更高的層次。)
RapidStream的開發(fā)者將數(shù)據(jù)流設計定義為一組并行處理元素(processing element,簡稱PE)和一組根據(jù)設計的數(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)建的,這是由FPGA chiplet(AMD-Xilinx語言中的超級邏輯區(qū)域,簡稱SLR)制成的2.5D器件。
這篇論文包含了幾個描述RapidStream工作性能的圖表。下圖顯示了在分區(qū)后,六種不同的數(shù)據(jù)流設計與沒有分區(qū)的流水線/非流水線版本時鐘速率的比較。
從上圖可以看出,RapidStream比所有非流水線版本的時鐘速率更高。這是意料之中的,因為流水線是FPGA時鐘速度改進的核心。然而,六種情況中,有五種情況RapidStream的結(jié)果比相同設計的流水線RTL版本要好,這個結(jié)果要引起我們的注意。
下面是布局布線的時間結(jié)果對比:
RapidStream的布局布線運行時間比未分區(qū)設計的結(jié)果要好得多。這是因為RapidStream可以將每個分區(qū)送給不同的處理器核心來布局布線。
雖然FPGA供應商試圖讓布局布線算法在多核處理器上工作得更快,但RapidStream的開發(fā)人員根據(jù)經(jīng)驗發(fā)現(xiàn),如果FPGA設計沒有分區(qū),在超過兩個處理器核心上運行AMD-Xilinx Vivado設計工具時并沒有太大改善。
如果有讀者正在用FPGA開發(fā)HLS設計——特別是AMD-Xilinx FPGA,那么應該會對RapidStream感興趣。更細節(jié)的內(nèi)容可以在GitHub上找到。
-
FPGA
+關注
關注
1645文章
22039瀏覽量
618141 -
數(shù)據(jù)
+關注
關注
8文章
7255瀏覽量
91812 -
多核處理器
+關注
關注
0文章
109瀏覽量
20310
發(fā)布評論請先 登錄
基于動態(tài)區(qū)分矩陣的屬性約簡算法
基于外極線分區(qū)的動態(tài)立體匹配算法
最佳集水分區(qū)模擬之研究
基于分區(qū)連通性恢復算法DCRA

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

基于場景分區(qū)的隨機潮流解析算法

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

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

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

LICi算法抵抗積分攻擊的相關實驗及分析

評論