?
賽靈思的全新SDx 軟件定義環境配合Vivado IPI、HLS 和備受青睞的系統級設計工具。
為將設計團隊的生產力提升到全新的水平,并將All Programmable FPGA、SoC 和3D IC 推向更廣泛的軟件工程師用戶,賽靈思近期新增了兩款SDxTM 開發環境系列成員。新推出的SDAccelTM 開發環境使沒有任何FPGA經驗的數據中心設備編程員都能夠運用OpenCLTM、C 或C++語言針對數據中心和云計算基礎設施對賽靈思FPGA進行編程,設計出的FPGA 設備性能功耗比遠超基于GPU 和CPU 的設備。賽靈思還推出了SDSoCTM 開發環境,支持同樣沒有FPGA 經驗的軟件開發人員用C 或C++ 語言基于賽靈思及第三方平臺開發商推出的Zynq?-7000All Programmable SoC 和UltraScale+TM MPSoC 平臺創建各種系統。
SDx 環境是賽靈思All Programmable Abstraction 計劃的最新產品。該計劃旨在幫助軟件工程師和系統架構師方便地編程賽靈思器件,同時開發環境可根據他們的需求量身定制。
賽靈思公司企業戰略與市場營銷高級副總裁Steve Glaser 指出:“SDNet、SDAccel 與SDSoC 這一完美組合將為系統和軟件工程師提供熟悉的類似CPU、GPU 和ASSP 的編程環境,這些工程師將首次盡享All Programmable 器件帶來的獨特優勢,諸如定制加速功能,性能功耗比提升10 倍乃至100 倍,任意設備件間連接,以及提供下一代智能系統所需的保密性和安全性。賽靈思正力助下一代系統做到進一步互聯,實現軟件定義和虛擬化,同時還必須支持基于軟件的分析,更多云端計算功能,這通常是無處不在的視頻和嵌入式視覺應用所需要的。這就要求SDx 軟件定義編程環境和異構多處理技術采用新型UltraScale FPGA 和MPSoC。”
2014 年春季SDNetTM 開發環境(詳見《賽靈思中國通訊第52 期》)推出后不久就推出了SDAccel 和SDSoC這兩款新的開發環境。
SDx 新環境在幫助軟件工程師和系統架構師對賽靈思器件的FPGA 部分進行編程的同時,也能讓擁有硬件工程設計資源的設計團隊的生產力更高,且更快集成到優化的系統上,進而加速產品上市進程。有了可行的系統設計,硬件工程師能集中精力優化FPGA 布局和性能,實現更高的系統效率,同時軟件工程師則能進一步優化應用代碼。
All Programmable Abstraction賽靈思于2008 年在新任CEO Moshe Gavrielov 領導下開始規劃7 系列All Programmable 系列FPGA、3D IC 和Zynq-7000 All Programmable SoC 時,就明顯發現7 系列和未來產品線的所有產品均具有豐富的功能,完全能讓客戶將賽靈思器件作為最新最具創新性產品的核心。
這些All Programmable 器件比賽靈思早些年的膠合邏輯FPGA 高級得多,實現了任何其他架構所無法企及的系統功能和最終產品差異化。為了最大化這些最新器件的價值,在競爭中脫穎而出,管理層認識到賽靈思必須開發出相關工具和方法,幫助系統架構師乃至嵌入式軟件開發員(而僅僅只有FPGA 專家),去進行賽靈思最新器件的編程工作。此外,公司還必須針對高增長市場,為軟件工程師開發出設計環境,并根據設計人員習慣使用的工具和流程來定制這些環境。此外,加強與MathWorks 和國家儀器(Nl)等公司聯盟也勢在必行,這些公司已經構建了各種環境,使非傳統FPGA 用戶能夠充分利用賽靈思All Programmable 器件的功率效率和靈活性優勢。
對老客戶來說,如果能為設計團隊的每個成員都提供相應的設計環境,那就能確保高效性,縮短產品上市時間。如果這些環境足夠高級,就能真正推廣All Programmable FPGA 和Zynq SoC 設計,讓那些沒有FPGA 設計經驗的架構師和軟件工程師無需硬件設計人員幫助就能進行器件編程。全球軟件工程師人數與硬件工程師人數比為10:1。因此,提供這種開發環境(或支持這種開發環境的硬件平臺)的賽靈思及其聯盟計劃合作伙伴既能擴大用戶群,又能增加營收。
該戰略和支持軟件工程師及系統架構師利用根據其設計需求量身定做的環境進行賽靈思器件編程的后續開發工作就是賽靈思所謂的All Programmable Abstraction(如圖1 所示)。
?
圖1 – 利用新的SDx 設計環境和聯盟成員提供的環境,賽靈思正幫助更多創新者充分發揮賽靈思All Programmable 器件的作用,為下一代產品帶來更大增值。
VIVADO HLS和IPI:設計抽象的第一步
2011 年, 設計抽象邁出了重大的第一步,那就是賽靈思收購了私企AutoESL 公司的高層次綜合(HLS)工具。繼并購之后,賽靈思于2012 年公開發布了集成到ISE? 設計套件和Vivado? 設計套件工具流程中的HLS技術。根據Berkeley Design Automation詳細調研(結果表明AutoESL 的HLS 工具最簡便易用,而且是EDA 產業所有HLS 工具中能提供最佳結果質量的HLS),賽靈思選擇了AutoESL技術。HLS 源于EDA 世界,這也意味著工具使用模型面向的是ASSP 和片上系統(SoC)架構師以及擁有C 和C++ 編程經驗、同時對硬件描述語言(Verilog 和VHDL)及芯片設計需求有一定工作了解的成熟設計團隊。
利用Vivado HLS,具有豐富技能的架構師和設計團隊能用C 和C++ 創建算法,同時利用Vivado HLS 來編譯并轉換那些算法為RTL IP 模塊。隨后,FPGA 設計人員能將這個模塊及其它模塊集成到創建或授權的RTL 中,并用賽靈思的IP Integrator(IPI)工具將IP 匯編到設計中。隨后,FPGA設計人員能將匯編設計一步步通過Vivado 流程,執行HDL 仿真、時序與功耗優化、布局布線等。最終,設計人員生成網表/ 比特文件并配置目標All Programmable 器件的硬件。如果設計包含處理器(Zynq SoC 或MPU 軟核),配置后的器件隨即可供嵌入式軟件工程師編程。
為了幫助嵌入式軟件工程師應對繁雜的編程工作,賽靈思提供了基于Eclipse 的集成設計環境,即賽靈思軟件開發套件(SDK),其包含編輯器、編譯器、調試器、驅動程序和面向Zynq SoC 或FPGA 的庫,其內嵌了賽靈思的32 位MicroBlazeTM 軟核。該SDK 于10 多年前推出,隨著賽靈思器件上處理器集成的發展變化而得到了大幅提升,此前器件上集成硬化的DSP Slice 和軟核MCU 和MPU(8位、16 位和32 位),到Virtex?-4 和Virtex?-5 FPGA 時已轉變為集成硬化的32 位PowerPC? ;到Zynq SoC 已轉化為集成32 位ARM? 處理器;而到即將推出的Zynq UltraScale+ MPSoC 則發展到集成64 位ARM 處理器。
聯盟成員為更多用戶帶來增值
10 多年來,賽靈思與國家儀器(NI)和MathWorks 公司一直保持密切合作。這兩家公司致力于為其服務的特定用戶提供量身定制的獨特高級開發環境。
美國國家儀器(NI)(德克薩斯州奧斯汀)提供的硬件平臺深受控制和測試系統創新者歡迎。賽靈思的FPGA和Zynq SoC 為NI RIO 平臺提供動力。NI 的LabVIEW 開發環境是用戶友好型圖形化程序,底層運行Vivado設計套件,因此NI 的客戶無需了解任何FPGA 設計細節。一些人或許根本不知道RIO 產品的核心其實是賽靈思器件。他們只需在LabVIEW 環境中對其系統編程即可,NI 硬件能提升其開發的設計性能。
就MathWorks(馬薩諸塞州納蒂克)而言,該公司10 多年前為其MATLAB?、Simulink?、HDL Coder和Embedded Coder 添加了FPGA 支持,底層運行賽靈思的ISE 和Vivado工具,而且完全自動化。因此,公司的用戶—— 主要是數學算法開發人員—— 能開發算法并大幅提升算法性能,而且能在FPGA 結構上簡便運行算法。
10 年前,賽靈思為其ISE 開發環境添加了FPGA 架構級工具—— 系統生成器(System Generator),近期又給Vivado 設計套件添加了,以幫助具備FPGA 知識的團隊進一步調節設計,實現算法性能增益。MathWorks 和賽靈思兩家公司技術的強強組合,有助于客戶公司推出成千上萬種創新產品。
近期,其他公司也開始為賽靈思環境做出貢獻。賽靈思近期迎來TOPIC Embedded Systems 和SiliconSoftware 這兩家歐洲公司加入其聯盟計劃,特別是歡迎其針對醫學和工業市場的高級開發環境。
TOPIC Embedded Systems(荷蘭埃因霍溫)擁有獨特的開發環境DYPLO,《賽靈思中國通訊第54 期》對其進行了詳細介紹。該環境面向Zynq SoC,很快也將面向Zynq MPSoC,對系統級設計采用統一方法,從而使系統架構師能夠用C 或C++ 創建系統設計結果,并在Zynq SoC 的雙核ARM CortexTM-A9 處理系統上運行該結果。一旦用戶發現設計某些部分在軟件中運行太慢,可以將這些部分拖放到窗口中,將C 語言轉化為FPGA 邏輯(底層運行Vivado HLS),并將其放入Zynq SoC 的可編程邏輯中。來回交換代碼片段,直到達到最佳系統性能。TOPIC 最初用于醫療設備開發,目前也開始與工業設備制造商合作。
Silicon Software(德國曼海姆)是支持軟件工程師利用賽靈思All Programmable 器件的最新聯盟成員。公司的VisualApplets 圖形圖像處理設計環境可幫助面向Zynq SoC 平臺的系統架構師和軟件工程師打造工業機器視覺應用創新,而且無需硬件工程師的協助。在2013 年SPS Drives 行業展會的賽靈思展臺上,Silicon Software展示了其用VisualApplets 環境開發的光學檢查系統。演示顯示通過采用VisualApplets 環境將圖形處理任務從Zynq SoC 的處理系統轉交給器件的FPGA 邏輯來執行,能將系統性能提升10 倍。
借助SDx推廣FPGA和SOC設計
借助SDx 軟件定義開發環境,賽靈思將面向關鍵市場的軟件開發人員和系統架構師構建一系列高級的設計入門環境。SDAccel 和SDSoC 在底層自動運行整個Vivado 流程,無需直接使用Vivado 工具,也無需硬件工程師的協助。SDNet 不會訪問Vivado HLS,針對線路卡架構師,其提供了獨特的“兩步使用模型”。
在第一步中,線路卡架構師采用直觀的類似C 語言的高級語言而不是晦澀的微代碼來設計需求,并制定網絡線路卡規格描述。SDNet 開發環境根據規格描述生成RTL 版設計。流程隨后需要硬件工程師在目標FPGA 中實現RTL。
在第二步中,SDNet 還允許網絡公司用高級語言測試和更新協議,并升級線路卡的功能,即便在現場部署后也能做到,而且無需硬件設計參與。這個流程有助于企業快速創建并更新線路卡,這種靈活性對軟件定義網絡而言非常重要。
SDAccel 和SDSoc 這兩個新設計環境將SDx 的理念推廣到新的應用領域。
SDACCEL可優化數據中心性能功耗比《數據中心學刊》(Data Center Journal)2014 年3 月的一篇文章指出,谷歌、Facebook、亞馬遜、領英等公司核心部分—— 數據庫——“消耗的電力占全球電力3% 以上,同時產生2 億公噸CO2”。如此巨大的能耗使得其數據中心一年電費超過600 億美元。即便對最大規模網絡公司來說,功耗也會嚴重削減盈利性,而且對環境也會產生不可估量的影響。
隨著越來越多的企業期望采用云計算和大數據分析技術;視頻和流媒體的全球性普及,以及越來越多的人加入無線網并準備升級到未來5G 網絡,對數量更多、性能更好的數據中心的需求呈幾何級無止境增長趨勢。《數據中心學刊》文章指出,從當前趨勢看,到2017 年數據中心流量預計將達7.7ZB,這意味著數據中心的功耗如果不能得到有效控制將會出現大幅增長。當今大多數數據中心的功耗主要源于其基礎組件—— Intel x86 處理器。目前MPU 能提供良好但不是最佳的性能,而且功耗很高。
目前全球龐大的的軟件工程師隊伍均發現MPU 是最容易編程的器件。要解決數據中心性能問題,許多公司一直在設法構建采用圖形處理單元(GPU)或通過GPU 實現CPU 系統加速的設備。GPU 的性能大大超越數據中心的CPU,但不幸的是功耗要高很多。性能雖然很高,但功耗巨大。
為集兩者之大成,許多企業均轉而采用以FPGA 為中心的方法,將FPGA 與其它處理器結合使用,以實現數據中心設備性能最大化。
許多數據中心設備廠商已證實,分立式FPGA 結合分立式CPU 使用,雖然每個卡的功耗會增加一點點,但性能卻得到大幅提升,從而可大幅提升性能功耗比。還有人認為,通過采用一顆在單個SoC 上集成x86 處理器內核和FPGA 邏輯的芯片,有望進一步提升性能功耗比。還有人認為,在單個SoC 上集成FPGA 邏輯和64 位ARM 處理器IP 似乎能帶來更低功耗但同樣高性能的解決方案。
在數據中心使用FPGA 的主要障礙就是編程問題。數據中心開發人員習慣于x86 架構編程,這些開發人員通常只有純軟件編程背景。幫助開發人員將CPU 程序轉向更快的GPU 的第一步就是業界OpenCL 語言的開放開發。過去2 年來,OpenCL 取得進一步發展,使客戶能夠針對FPGA 進行編程,從而為未來數據中心設備架構乃至無所不在網絡創造了新的機遇。
通過推出SDAccel 環境,賽靈思彌補了編程鴻溝,并為數據中心工程師使用OpenCL、C 或C++ 編程FPGA 平臺鋪平了道路,而且無需硬件工程師介入。賽靈思公司設計方法市場高級總監Tom Feist 表示,針對OpenCL、C 和C++ 的SDAccel 開發環境使數據中心編程人員能夠打造出比CPU 和GPU 系統性能功耗比高出25倍的設備。
Feist 指出,在SDAccel 流程中(見圖2,SDAccel 開發環境演示),x86 CPU 結合運行賽靈思20nm Kintex?UltraScale FPGA 的加速卡,軟件開發人員能發現需要加速的應用,并用OpenCL 編碼和優化內核,再為CPU編譯和執行應用。隨后他們再來評估并調試內核,直到找到周期精確的模型。接下來,再用SDAccel 編譯代碼,并自動實現在FPGA 中(可能因為Vivado 在底層運行)。隨后就能運行應用,驗證通過卡加速后的應用性能以及與單純用CPU 運行的性能對比。Feist 指出:“他們能循環運行迭代,直到找到性能和功耗之間的最佳平衡,相對于CPU和GPU 實現方案,性能功耗比可提升多達25 倍。”
?
圖2 – 在本SDAccel開發環境演示中,工程師 Henry Styles介紹了如何通過使用內含Alpha Data ADM-PCIE-7V3加速器的標準64位x86工作站來運用SDAccel開發環境實現加速。
在本期《賽靈思中國通訊》中,Feist 和他的同事詳細介紹了SDAccel環境,后續文章則介紹SDAccel 的工作原理。
SDSOC讓嵌入式系統創新者輩出SDNet 讓線卡開發人員能夠利用獨特的軟定義方式快速創建下一代網絡,而SDAccel 則能讓數據中心設備廠商的下一代數據中心設計的實現最佳性能功耗比。新的SDSoC 開發環境或許能為賽靈思用戶群帶來最廣泛的影響。這是因為SDSoC 針對廣泛的嵌入式系統設計團隊,特別是軟件工程師,這些軟件工程師設計面向的是賽靈思Zynq SoC 所服務的大部分市場。SDSoC 環境現在能讓用戶配置邏輯—— 不光是對運行Zynq SoC 硬件平臺的嵌入式系統處理器編程——而且能使用C 和C++ 語言。
SDSoC 產品經理Nick Ni 指出:“軟件開發人員習慣于對主板、ASSP平臺和ASIC 進行編程,且無需硬件工程師參與。有了SDSoC 開發環境,他們就用類似ASSP 的方式對Zynq SoC 和MPSoC 平臺進行編程。SDSoC 的獨特之處在于現在我們能在Eclipse IDE 環境中用C 或C++ 語言面向Zynq SoC 和Zynq UltraScale+MPSoC 平臺創建完整的系統設計。
Nick 表示,使用SDSoC 環境,嵌入式軟件開發人員能運用C 或C++語言創建設計并進行測試,以發現Zynq SoC 處理系統上哪些部分運行得不佳。一旦發現可疑代碼,便突出顯示并命令SDSoC 環境自動將該代碼分區到Zynq SoC 的可編程邏輯中,以加速系統性能。Nick 指出,SDSoC環境只需點擊按鈕就能把軟件功能移到FPGA 邏輯中,無需硬件工程師介入。SDSoC 中的編譯器將生成整個Vivado 項目,并為目標硬件平臺生成可引導的軟件映像。
Nick 指出:“利用針對我們ZynqSoC 的SDSoC 環境,我們主要是讓我們的嵌入式軟件工程師變成系統工程師。”( 見圖 3,SDSoC開發環境演示)
?
圖3 – 在本SDSoC開發環境演示中,首席工程師Jim Hwang用SDSoC構建簡單的圖形處理流水線以檢測運動,并在以60fps速率運行的實時HD 1080p視頻流中插入運動邊緣。
SDSoC 環境利用帶有用戶指定的C/C++ 代碼的宏編譯器,可在Zynq SoC 邏輯中實現加速。通過在底層運行Vivado 設計套件,該環境可自動將該代碼返回IP 模塊并將該模塊配置為器件的邏輯,從而自動生成軟件驅動程序。
SDSoC 可為基于Zynq All Programmable SoC 的開發板(包括ZC702和ZC706),以及第三方和特定市場平臺(諸如ZedBoard、 MicroZed、ZYBO 以及視頻與圖像開發平臺)提供板支持包 (BSP)。
Nick 表示:“我們今后幾個月將為SDSoC 添加更多BSP,尤其是隨著越來越多第三方平臺公司用Zynq SoC 開發系統。SDSoC 有助于賽靈思以及采用Zynq SoC 開發平臺的公司擴大用戶群。”
Nick 同時指出,SDSoC 環境的主要目的是讓大量嵌入式軟件設計人員能用賽靈思Zynq SoC 創建完整的系統,不過有傳統FPGA 背景的用戶和設計團隊也能從該環境受益匪淺。
Nick 指出:“它能幫助設計團隊快速用C 和C++ 語言設計系統架構,然后嘗試不同的配置,以獲得所需的最佳性能。如果他們團隊里確實有FPGA 設計人員,則能讓其通過Vivado 工具來進一步優化模塊和邏輯布局。”
如欲了解聯盟成員對SDSoC 環境支持的更多信息,敬請參閱本期Xpedit 部分(第66 頁)。
?
評論
查看更多