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

愛普生可編程展頻晶振SG-9101CG開啟電子設(shè)備革新的無限可能

博世智能傳感器引領(lǐng)智能穿戴設(shè)備無限可能
沐曦GPU跑通DeepSeek開源代碼庫FlashMLA
前端技術(shù)的未來趨勢:擁抱創(chuàng)新,塑造無限可能
gitee 與 GitHub 的比較
助力AIoT應(yīng)用:在米爾FPGA開發(fā)板上實(shí)現(xiàn)Tiny YOLO V4
NVIDIA TensorRT-LLM Roadmap現(xiàn)已在GitHub上公開發(fā)布

評論