賽靈思一直致力于支持開源計劃的不斷飛躍,為幫助開發(fā)人員和研發(fā)社區(qū)充分發(fā)揮自適應(yīng)計算的優(yōu)勢,我們再次做出了令人振奮的舉措: 在 GitHub 上開放提供 Vitis HLS(高層次綜合)前端(GitHub 是全球規(guī)模最大的開發(fā)平臺以及構(gòu)建和共享軟件代碼的開放社區(qū))
Vitis HLS 工具能夠?qū)?C++ 和 OpenCL 功能部署到器件的邏輯結(jié)構(gòu)和 RAM/DSP 塊上。在 GitHub 上提供 Vitis HLS 前端為研究人員、開發(fā)人員和編譯器愛好者開啟了無限可能的新世界,使他們可以利用 Vitis HLS 技術(shù)并根據(jù)其應(yīng)用的特定需求進行修改。
10 多年來,賽靈思不斷改進 HLS 技術(shù),幫助硬件開發(fā)人員提高設(shè)計生產(chǎn)力,并且讓沒有硬件設(shè)計經(jīng)驗的軟件和應(yīng)用開發(fā)人員更容易接受和利用賽靈思自適應(yīng)平臺。隨著 Vitis HLS 前端現(xiàn)已在 GitHub 上全面開源,軟硬件開發(fā)人員可以靈活運用標準的 Clang/LLVM 基礎(chǔ)架構(gòu)并為以下功能定制設(shè)計流程:
為 C/C++ 和 OpenCL 之外新的高級語言提供支持
添加新的特定領(lǐng)域優(yōu)化編譯指令或編譯器指導(dǎo)
定制 LLVM IR 轉(zhuǎn)換(即新的 LLVM pass)
Vitis HLS 中的 C/C++ 到 RTL 綜合流程包括兩個主要組成部分:
[1] 前端:該部分主要解析用 C/C++ 或 OpenCL 表示的代碼,使用 Clang/LLVM 工具鏈進行前端和中端轉(zhuǎn)換。
[2] 后端:該階段采用 LLVM IR 輸入,并執(zhí)行 FPGA 特定的底層映射和調(diào)度,直到最后一步,生成 RTL 。
除了支持Clang/LLVM 流程外,該項目還提供:
用于編譯指示支持和硬件可綜合性檢查的框架
一種將固有順序 C 代碼映射到空間硬件架構(gòu)的方法
通往 Vitis 統(tǒng)一軟件平臺的網(wǎng)關(guān),以訪問相關(guān)流程和庫
我們的生態(tài)系統(tǒng)合作伙伴 Silexica 以及美國伊利諾伊大學(xué)厄巴納 - 香檳分校 (UIUC)、帝國理工學(xué)院、香港科技大學(xué)的研究社區(qū)是如何利用 Vitis HLS 前端擴展功能,并助力其研究項目的呢?
“Vitis HLS 的前端開源有助于 FPGA 研究和生態(tài)系統(tǒng)合作伙伴社區(qū)進行擴展、定制乃至進一步優(yōu)化 HLS 編譯過程。賽靈思新的開源計劃還為 Vitis HLS 提供了全新的‘注入使用模型’,能夠注入定制的第三方代碼轉(zhuǎn)換,甚至使用完全定制的 Clang 編譯器前端?!?/p>
通過與賽靈思密切合作,Silexica 開發(fā)了一款 SLX 插件,它可以利用新的注入使用模型擴展Vitis HLS 2020.2 代碼轉(zhuǎn)換。SLX 插件是一種 HLS 編譯器插件,通過提供新的 Loop Interchange 指導(dǎo),有助于改善 Vitis HLS 的延遲問題和吞吐量結(jié)果。這是 Silexica 計劃的許多 HLS 優(yōu)化指導(dǎo)中的第一個。該插件可作為 Vitis HLS 的純獨立插件使用,也可與 Silexica 的SLX FPGA 工具結(jié)合使用,以同時使用其深層代碼分析、自動設(shè)計探索以及最佳指導(dǎo)識別和調(diào)優(yōu)功能。
“通過 UIUC 的賽靈思自適應(yīng)計算集群 (XACC) 項目合作,我們提前獲得了開源軟件包。利用軟件包提供的接口,我們可以方便地定制并集成新的 Clang 編譯指示和 LLVM pass 到 Vitis HLS 中,以實施和評估我們的研究思路。在Vitis HLS流程中利用LLVM的能力在許多方面都帶來了新的可能性。此外,開源 Vitis HLS 前端還將大幅促進 HLS 開源社區(qū)的增長。我們很高興自己能成為其中的一員。
“對我這樣的 HLS 工具設(shè)計師來說,在將 LLVM IR 轉(zhuǎn)換回 C 代碼(包括 pragmas)時,將代碼輸入到 Vitis HLS中是非常困難的。新的 Vitis HLS 前端能夠極大地幫助我們的工具動態(tài)和靜態(tài)調(diào)度 (DASS) 集成到 HLS 流程中。例如,開源前端使我們能直接進行程序分析和轉(zhuǎn)換,并將編譯指示插入到 LLVM 中?!?/p>
“從我們的角度看,開發(fā)全面的 HLS 工具需要大量工程設(shè)計工作,這也是學(xué)術(shù)界與工業(yè)之間存在的差距之一。賽靈思慷慨地開放了商業(yè) HLS 前端,它能與 Vitis HLS 結(jié)合使用,從而提供了靈活的 API 以及從解析到 IR 優(yōu)化的可讀源代碼。它使得我們不必再處理詳細的實施方案,使我們能夠在實用應(yīng)用場景中解決問題,并幫助我們高效地評估自己的想法。對于 HLS 社區(qū),我們相信這個開源項目將大幅促進創(chuàng)新,因為它能幫助用戶根據(jù)具體需求輕松定制工具?!?/p>
香港科技大學(xué)的兩個開發(fā)項目利用了 Vitis HLS 前端:
項目 1:高效自動優(yōu)化 Pass 階段排序:
在該項目中,根據(jù)輸入源代碼的特性,開源前端中提供優(yōu)化 pass 的最佳順序?qū)⑼ㄟ^機器學(xué)習和啟發(fā)式算法進行搜索,用于改進性能和資源消耗。
項目 2:多 FPGA HLS:
在該項目中,開源前端生成的 IR 代碼將通過性能和資源模型進行分析,并自動劃分為子模塊,這些子模塊針對與網(wǎng)絡(luò)或 DDR 存儲器互聯(lián)的多個 FPGA 應(yīng)用進行了優(yōu)化。
Vitis HLS 前端的源代碼可在賽靈思 GitHub 庫中獲取。該庫共享的3個示例演示了如何使用和定制流程,包括構(gòu)建定制 LLVM pass 的流程。
編輯:lyn
-
賽靈思
+關(guān)注
關(guān)注
32文章
1794瀏覽量
131130 -
編譯器
+關(guān)注
關(guān)注
1文章
1617瀏覽量
49019 -
硬件開發(fā)
+關(guān)注
關(guān)注
3文章
156瀏覽量
24119 -
HLS
+關(guān)注
關(guān)注
1文章
128瀏覽量
24000
原文標題:開啟無限可能的世界: Vitis HLS 前端現(xiàn)已全面開源
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論