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