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