HLS高階綜合的定義及挑戰(zhàn)_第1頁
HLS高階綜合的定義及挑戰(zhàn)_第2頁
HLS高階綜合的定義及挑戰(zhàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

HLS高階綜合的定義及挑戰(zhàn)HLS高階綜合(highlevelsynthesis)在被廣泛使用之前,作為商業(yè)技術(shù)其實已經(jīng)存在了20多年。設(shè)計團隊對于這項技術(shù)可以說呈現(xiàn)出兩極化的態(tài)度:要么堅信它是先進技術(shù)之翹楚,要么對其持謹慎懷疑態(tài)度。高級語言IP的優(yōu)勢是顯而易見的,例如易維護性、在設(shè)計周期早期進行重大變更的能力、以及大大節(jié)省產(chǎn)品上市時間等方面的優(yōu)勢都很明顯。目前的工具較之前一代工具,已有了大幅的進步:它們允許一些受歡迎的高級語言(如C和C++)的準入,這一點讓眾多軟件工程師甘之如飴。與硬件描述語言(如VHDL和VerilogHDL)不同,它并不是由一小部分工程師掌握的工具。當然,它也有局限性:語言限制,就像非可合成構(gòu)造(non-syntheticconstructs)一樣,必須解決或與特殊代碼的問題,這可能對設(shè)計性能產(chǎn)生負面影響。還有更糟糕的,大量可能解決方案都必須經(jīng)過一一驗證。目前的HLS工具是點工具(pointtools),他們解決的是某個具體問題。軟件工程師還沒有一個生態(tài)系統(tǒng)來識別加速至硬件的代碼是否需要加速。對于那個工程師而言,這時的高階綜合可能是一個敵人,而不是朋友。如果沒有對底層多核平臺的全面理解,沒有對應(yīng)用程序進行有效和準確地分析,并且無法從設(shè)計空間中提取最佳解決方案,那么盲目斷言一個單點的工具可能會導(dǎo)致效率極低的解決方案。定義我們先退一步來說說定義。我們說高級綜合(HLS),意思是在導(dǎo)出數(shù)字電路(digitalcircuits)的過程里,這個數(shù)字電路可以在高級規(guī)范的制造過程中合成。這個術(shù)語是行為和電子系統(tǒng)的結(jié)合:是一門技術(shù),也是一門科學(xué),它把設(shè)計意圖抽象化,抽象視圖可以自動地將人類設(shè)計者的努力付諸現(xiàn)實。最終生成的設(shè)計應(yīng)遵循一系列要求,包括芯片面積、時鐘頻率、功耗和時間性能的要求等等。HLS工具的任務(wù)應(yīng)該是基于可移交給物理實現(xiàn)流程的而生成的優(yōu)秀設(shè)計。通常該接口是RTL(寄存器傳輸級別),其中生成的描述是由數(shù)字設(shè)計領(lǐng)域的匯編語言VHDL和Verilog組成的,與邏輯綜合和物理實現(xiàn)可以接受的后端工具一樣高。RTL描述內(nèi)容包括生成的電路在狀態(tài)機、存儲器和寄存器存儲、流水線或多周期操作方面的功能。一個成功的HLS故事中一部分好像是一種藝術(shù)。它作為高級語言代碼(通常是C,C++或SystemC),給出的輸入規(guī)范必須滿足對它應(yīng)該如何編寫的某些期望。而它的另一部分則是科學(xué),因為HLS已經(jīng)成熟到足以成為硬件工程師庫存中的實用工具。盡管設(shè)計生態(tài)系統(tǒng)還不算是一個理想平臺,因為它仍不可保證達到可持續(xù)生產(chǎn)力的產(chǎn)生。因此每一個成功故事的背后,都包含著更多的不為人知的故事,包括不得不采用老辦法時倍感憤怒的團隊,因為這樣既沒有真正利用多核,也沒有平臺中的FPGA空間。尋求一個最佳解決方案(包括在面積,功率,時間性能方面)的過程必然充滿艱辛。在做設(shè)計決策時需要我們的專業(yè)知識,用戶也必須具有經(jīng)驗,才能為既定的應(yīng)用程序或程序集進行有效地HLS引擎做正確的決策。挑戰(zhàn)為了探索解決方案空間,我們必須根據(jù)給定的配置合成所得到的電路進行全方位的嘗試。使用現(xiàn)在的HLS工具,每種特定配置可能需要幾分鐘到半小時或更長時間。這顯然其實沒有幫助用戶減輕負擔,因為這個過程是手動的、緩慢的、容易出錯的,很容易導(dǎo)致明顯的非最優(yōu)解決方案。HLS引擎的常見弱點包括:-沒有早期的性能估計以及任何違反設(shè)計和平臺限制的行為-沒有利用所有可能的數(shù)據(jù)通信方式-沒有功能概述,也沒有對用戶代碼進行優(yōu)化轉(zhuǎn)換-支持代碼報告得太晚了-在某些情況下,工具的高效實施是不可能的,例如當必須將太多的加速器映射到硬件部分時。HLS工具無法預(yù)先檢測到這種情況,也無法在用戶堅持的情況下盡量減輕其影響。這些弱點都對設(shè)計周期造成損害,因為它們不允許自動設(shè)計空間探索,更不用說為所需解決方案自動生成軟件和硬件。解決辦法為了在整體生態(tài)系統(tǒng)中有效地整合高級綜合,需要更高級別的工具。Silexica的SLX是唯一真正支持多核自動生成軟件的生態(tài)系統(tǒng),無論是硬連線(hardwired),還是在FPGA上實現(xiàn)的軟核(如果有的話)。在我們的例子中,SLX解決方案中的分析功能保證用戶可以選擇適當時機切入設(shè)計。它使用底層平臺的模型,包括硬連線處理器和軟處理器,現(xiàn)在正在擴展到FPGA的硬件加速器。SLX了解數(shù)據(jù)通信的可能方式及其成本。它可以分析用戶代碼以識別執(zhí)行熱點。它使用快速估算引擎,在數(shù)秒或數(shù)分鐘而不是數(shù)天和數(shù)周內(nèi),為實際工業(yè)問題進行設(shè)計空間探索。為了從具有FPGA加速器的異構(gòu)多核系統(tǒng)中獲得最佳效果,SLX面臨著有趣的挑戰(zhàn)。因此,目前正在擴展FPGA資源的高級模型,以便如何組織硬件加速。該模型將允許靈活地在每個應(yīng)用程序的基礎(chǔ)上進行架構(gòu)決策,因此非常適合HLS感知流程。它還將實現(xiàn)更準確的性能評估,這對于有效探索解決方案空間至關(guān)重要。SLX工具擴展用于自動HLS感知C代碼生成,將無縫切換到HLS工具,最后一步實現(xiàn)使用SLX進行FPGA加速的端到端自動化流程。HLS是我們應(yīng)該善待的朋友,它也不應(yīng)該承載我們錯誤的期望。為了使HLS成為一個方便且不可或缺的工具,我們需要提高設(shè)計抽象和自動化的水平。SLX通過經(jīng)過檢查的應(yīng)用程序及其輸入數(shù)據(jù),以及底層平臺的描述,即可幫助用戶以最小的努力獲得最佳設(shè)計。通過FPGA加速器實現(xiàn)異構(gòu)多核編程的完全集成流程的要求為Silexica工程師提供了有趣的問題,敬請期待。作者介紹:NikilaosKavvadiasNikilaos來自于希臘,他于2008年畢業(yè)于希臘塞薩洛尼基亞里士多德大學(xué)(AUTH)的電子物理學(xué)專業(yè),他的博士研究方向為定制處理器設(shè)計方法。他從2008年到2012年擔任伯羅奔尼撒大學(xué)計算機科學(xué)與技術(shù)系的講師。2012年1月到2015年7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論