FPGA開發(fā)難?Xilinx這款軟件平臺解鎖全員創(chuàng)新
提及FPGA,許多人的第一印象就是“難,難于上青天”,一方面Verilog/VHDL與C語言大庭相徑,需要徹底理解FPGA內(nèi)部的邏輯結構的知識,另一方面,F(xiàn)PGA不僅邏輯思維很重要,在數(shù)學思維上的化繁為簡在優(yōu)化過程中也讓人頭疼。對于掌握知識不同的軟件工程師或硬件工程師,都駐足在了上手難度的門外,尤其是想要開發(fā)一些具有AI的復雜算法場景就更加雪上加霜了……
就在2019年10月9日,賽靈思公司(Xilinx)發(fā)布了里程碑式的 Vitis™ 統(tǒng)一軟件平臺,以“突破軟硬壁壘,解鎖全員創(chuàng)新” 為主題,解鎖軟件開發(fā)者的硬件加速壁壘,將賽靈思獨特的自適應計算能力帶給全員開發(fā)者的新篇章。
對Xilinx比較熟悉的開發(fā)人員,可能在認知中Xilinx是一家偏向硬件的企業(yè),此次發(fā)布的軟件軟件平臺正是為適應現(xiàn)如今行業(yè)發(fā)展、為不同層次開發(fā)者提供便捷開發(fā)能力、為行業(yè)創(chuàng)造更大價值而發(fā)布的。
21ic中國電子網(wǎng)記者受邀參加此次發(fā)布會,賽靈思大中華區(qū)銷售副總裁唐曉蕾(Maria) 及賽靈思軟件和人工智能高級經(jīng)理羅霖(Andy)現(xiàn)場為記者解答相關問題。
既可編程又自適應的Vitis:行業(yè)三大趨勢中應運而生
在開始介紹這款軟件平臺前,首先強調(diào)的便是,這款工具不同以往,是“開放,標準,免費”的。對于FPGA熟悉的人,一定對Xilinx也并不陌生,這也許是Xilinx歷史上第一次將軟件開發(fā)平臺免費。
現(xiàn)場,據(jù)唐曉蕾介紹,如今,行業(yè)正邁向三個趨勢——AI激增、異構計算、從云端到邊緣。
第一,AI激增:AI也是近幾年最火熱的詞,從數(shù)據(jù)中心、5G、自動駕駛、基因組學、醫(yī)療、金融等各種應用的大規(guī)模應用,導致數(shù)據(jù)量的激增,這種情況下就需要一個非常統(tǒng)一的平臺。
第二,從云端到邊緣:數(shù)據(jù)量的激增導致大量的計算需要放在云端。假若都在云端計算對整個帶寬的要求是不是一樣的,所以產(chǎn)生了邊緣計算;但都在端計算,功耗、計算能力都是問題。所以這種情況,云端與邊緣的統(tǒng)一化逐漸成為現(xiàn)今的最佳解決方案。
第三,異構計算:在計算能力不足以完成當前任務量之時,行業(yè)引入了CPU+ASIC、CPU+GPU、CPU+FPGA的概念,這也便是異構計算的概念。而Xilinx所提出的異構,與傳統(tǒng)異構并不同,是自適應的異構,主要是軟件感知架構,這種架構將不再單純用硬件決定應用場景。當然Xilinx去年10月發(fā)布的ACAP也已提出軟件自適應計算加速平臺,該平臺是為配合ACAP而生。
圖1:賽靈思大中華區(qū)銷售副總裁唐曉蕾(Maria)
在這種趨勢下,如何解決這種問題?唐曉蕾表示,現(xiàn)今基本大多采用可編程或自適應來解決,但大多數(shù)情況下,市面的CPU、GPU、ASSP在可編程和自適應上市場還難以做到二者同時存在,Vitis正是這樣一款既可做到可編程,又可做到自適應的軟件平臺。
正如上文所述,Vitis這款軟件平臺是免費開放的,是一款統(tǒng)一的軟件平臺,可實現(xiàn)在 Xilinx 異構平臺(包括 FPGA、SoC 和 Versal ACAP)上開發(fā)嵌入式軟件和加速應用。它可為邊緣、云和混合計算應用加速提供統(tǒng)一編程模型??梢宰尠ㄜ浖こ處熀?AI 科學家在內(nèi)的廣大開發(fā)者都能受益于硬件靈活應變的優(yōu)勢。
Vitis統(tǒng)一軟件平臺:創(chuàng)造效率降低成本
據(jù)羅霖介紹,現(xiàn)如今,應用場景是非常碎片化、多樣化、創(chuàng)新化的,舉個例子來說,自動駕駛的廠商軟件迭代周期非常短,模型近乎每周更新,這個前提下專門為某個應用做一款芯片是不可能滿足客戶需求的,客戶需求的是擴展靈活的平臺,可以根據(jù)應用和工作負載自動優(yōu)化系統(tǒng),包括軟件和底層的硬件,這也是Vitis能為市場帶來價值的最大價值。
圖2:賽靈思軟件和人工智能高級經(jīng)理羅霖(Andy)
那么這款Vitis統(tǒng)一軟件平臺究竟有哪些功能?Vitis 統(tǒng)一軟件平臺是將Vitis目標平臺、Vitis核心開發(fā)套件、Vitis加速庫集合在一起的統(tǒng)一平臺,可完成從端到云不同形態(tài)的需求,具體功能包括:
圖3:Vitis統(tǒng)一軟件平臺所具有的的功能
Vitis目標平臺:Vitis 目標平臺為Xilinx平臺定義了基本軟硬件架構及應用環(huán)境,包括外部存儲接口、自定義輸入輸出接口和軟件運行時。
Vitis核心開發(fā)套件:包括編譯器、分析器、調(diào)試器、賽靈思運行時庫(Xilinx RunTime庫,即XRT)。
Xilinx RunTime庫主要目的是為上層用將底層細節(jié)抽象,包括終端處理、生命周期管理、內(nèi)存數(shù)據(jù)搬運,都是由該庫負責進行。Xilinx RunTime庫可促進應用代碼(運行在嵌入式 ARM 或 x86 主機上)與加速器(部署在基于 PCIe 的 Xilinx 加速卡、基于 MPSoC 的嵌入式平臺或 ACAP 的可重構部分上)之間的通信。它包括用戶空間庫和 API、內(nèi)核驅(qū)動、電路板實用程序和固件。
編譯器既包含C/C++/Python的編譯器,也包含賽靈思的V++編譯器,主要用來針對具體的應用產(chǎn)生具體加速內(nèi)核;分析機能夠直觀了解底層到底層間究竟發(fā)生什么;調(diào)試器可以在遇到錯誤或Bug時,幫助分析進行調(diào)試。
在用戶體驗方面,該套系統(tǒng)的用戶體驗將會給工程師帶來非常熟悉的開發(fā)環(huán)境,與此前所使用的的ARM、DSP開發(fā)流程完全一致。
Vitis加速庫:包括OpenCV庫、BLAS庫、金融庫,另外還包括Xilinx專門針的解決方案Vitis AI和Vitis video,其中Vitis AI將在下文中介紹,Vitis video面世在即,這兩款解決方案也可幫助開發(fā)特定環(huán)境方面的應用。
通過上述的三重功能,對于開發(fā)“苦手”的人可直接應用相關庫進行開發(fā),而專業(yè)人員也可以使用相關的套件和Xilinx提供的經(jīng)過優(yōu)化的庫進行高效率開發(fā),減少開發(fā)時間的同時還可節(jié)省成本。
值得一提的是,Xilinx自28nm開始的器件均可使用該平臺,另外一般的FPGA都可支持,不過ACAP一定要使用Vitis進行開發(fā)。
Vitis AI:由傳統(tǒng)軟件轉(zhuǎn)向深度學習
在人工智能時代,市場已逐漸從傳統(tǒng)的軟件開發(fā)方法轉(zhuǎn)向深度學習的算法。自1997年IBM深藍成為國際象棋的冠軍開始,IBM Watson、AlphaGo等逐漸可實現(xiàn)性能超越人類的高精準應用,現(xiàn)在對于人工智能軟件的注重程度越來越高。諸如汽車駕駛員輔助系統(tǒng)(ADAS)、機器人出租車是現(xiàn)在正在發(fā)展的項目,而在2024年,汽車還將實現(xiàn)全自動駕駛。在這樣的背景下,Vitis同樣也具有這樣的解決方案——Vitis AI。
圖4:傳統(tǒng)軟件已逐漸走向深度學習
據(jù)羅霖介紹,Vitis AI底層是業(yè)界主流的框架,包括TensorFlow、Caffe、PyTorch,另外,包括37個開源的模型,這些模型是針對不同應用,諸如智慧城市、智能駕駛、實施目標分析跟蹤等,開發(fā)者可以直接取用模型進行開發(fā)。
圖5:Vitis AI所具有的的功能
當然Vitis AI中也擁有非常強大的開發(fā)套件,包括AI優(yōu)化器(AI Optimizer)、AI量化器(AI Quantizer)、AI 編譯器(AI Compier)、AI 分析器(AI Profiler)。
據(jù)羅霖介紹,AI優(yōu)化器可以將計算量較大的原始模型優(yōu)化,從而提高模型在硬件上的運行性能;AI量化器可將浮點模型編譯為8bit模型,高效部署在目標平臺上;AI編譯器可將定點過的模型編譯成在平臺上的可運行的機器代碼;AI分析器可在模型運行時分析每層運行的狀態(tài)、存儲的帶寬、計算量、運行效率等。
上文也有提到自適應運算,而自適應運算下應有自適應硬件進行支撐,就DPU上說,使用者可能在CNN DPU、LSTM DPU、MLP DPU上均會有需求,Xilinx平臺在此方面的好處便是可根據(jù)用戶需求,通過工具生成高效率、定制化的硬件滿足業(yè)務需求,這也是Xilinx最大的優(yōu)勢。“在業(yè)界,Xilinx也是獨一無二能夠提供這種能力的半導體廠商”,羅霖如是說。
Vitis AI的目的是讓客戶能夠高效開發(fā)神經(jīng)網(wǎng)絡應用,Xilinx在此方面針對具體的DPU有不同版本,包含高吞吐量、低延時、多通道等不同方案。值得一提的是,Vitis AI支持框架編譯,不需要代碼描述模型,從模型文件本身通過工具處理,即可生成在DPU上的機器代碼,所以編譯時間非常短。據(jù)悉,一個編譯的時間大約為1-2分鐘。
“一站式”解鎖全員創(chuàng)新
此前,Xilinx在硬件代碼編程中擁有Vivado™設計套件,而此次發(fā)布的Vitis 獨立于 Vivado™ 設計套件,后者仍然繼續(xù)為希望使用硬件代碼進行編程的用戶提供支持。但是,Vitis 也能夠通過將硬件模塊封裝成軟件可調(diào)用的函數(shù),從而提高硬件開發(fā)者的工作效率。
通過此次發(fā)布的Vitis與Vitis AI,對于層次不同的開發(fā)者擁有了自由的選擇。傳統(tǒng)的硬件工程師可以繼續(xù)使用Vivado開發(fā)工具進行開發(fā),也可利用Vitis調(diào)用庫提高硬件開發(fā)效率;對于擅長底層移植或底層驅(qū)動的軟件工程師,可調(diào)用Vitis中預先定義好Shell、I/O和部分編程工程的硬件庫進行開發(fā);對于應用軟件開發(fā)者可使用熟悉的語言,直接完成高級語言開發(fā);對于AI科學家也可以利用高層次框架訓練自己的模型。
圖6:“一站式”解鎖全員創(chuàng)新
舉一個例子來說,智慧城市中較為典型的應用場景便是在道路或十字路口實時統(tǒng)計交通流量,因為需要捕捉大量的汽車和人流量,所以前端應用了大量的攝像頭,這些攝像頭會實時捕捉當時的視頻,完成特征提取然后發(fā)送至服務器或云端。這種情況下,在硬件上開發(fā)人員需要完成IP開發(fā),開發(fā)完成后嵌入式人員開發(fā)在Xilinx提供的基于Shell、RunTime的庫進行一定程度修改,應用開發(fā)人員可使用Xilinx優(yōu)化好的CNN加速、數(shù)據(jù)分析和數(shù)據(jù)加速的庫完成應用開發(fā),算法人員則可應用非常熟悉的TensorFlow進行訓練模型。
應用了一站式Vitis的開發(fā)人員,既可以一站完成全部開發(fā)工作,也可以協(xié)同工作,從而提高群體的開發(fā)效率。
另外,Vitis還可以一步一步實現(xiàn)客戶所需要的性能。第一步,將整個算法和前后處理均放入CPU中完成,這部分不需要向底層硬件開發(fā)人員求助,可達到6FPS的性能;第二步,將DPU放在殼中,通過算法的加速性能可提升至30FPS;第三步,通過Vitis庫中預處理的空間轉(zhuǎn)換或視頻縮放,提升端到端的性能,可提升至40FPS;第四步,通過Vitis數(shù)據(jù)流中一些技巧,可實現(xiàn)高性能的流水線,可從40FPS提升至80FPS。
圖7:面向智能城市應用的自適應框架
免費的Vitis背后:5年1000人工年致力于創(chuàng)造美好世界
在介紹前,仍然需要強調(diào)的是該軟件平臺是“開放,標準,免費”的,那么這么一款免費軟件究竟有多大的投入?據(jù)了解,平臺歷經(jīng)五年、投入總計 1000 個人工年而打造。目前業(yè)界同類廠商也正在向軟件開發(fā)靠攏,不同于業(yè)界的是Xilinx在軟硬件全方位解鎖方面相比來說是獨一無二的。
Xilinx研發(fā)方向一直致力于擁抱開源社區(qū),自2001年起,在產(chǎn)品中便用到開源軟件和代碼。從2007年開始,在不同開源項目中貢獻代碼,諸如Zynq、GCC。而在今后,Vitis所發(fā)布編譯器、優(yōu)化器、機器人將會貢獻更多的代碼?,F(xiàn)如今,8個庫提供400多種功能,并且開箱即用加速。
圖8:Xilinx擁有廣泛的開源庫
“雖然我們是一家半導體供應商,但還是希望能夠做一個對世界、對人類有貢獻的供應商”,唐曉蕾表示,目前平臺已擁有許多應用案例。第一個是基因治療,應用了Xilinx的產(chǎn)品可將基因組的分析時間從1天縮短到20分鐘,能夠受益的重癥新生兒會更多;第二個是DAIMILER,即汽車自動駕駛,而在此方面通過Xilinx的硬件能夠?qū)踩挽`活性統(tǒng)一在一起;第三個是衛(wèi)星通信,正因它對保密性和技術上更加嚴苛,通過Xilinx的優(yōu)勢則更加明顯。
在社區(qū)方面,Xilinx發(fā)布了開發(fā)者網(wǎng)站,匯集了諸多的示例、教程和文檔,目前已有30+專家文章及項目已經(jīng)發(fā)布,且在不斷增長中,覆蓋9大細分領域。值得一提的是,該網(wǎng)站將持續(xù)更新,并鼓勵用戶分享創(chuàng)新。
圖9:Xilinx發(fā)布開發(fā)者網(wǎng)站
據(jù)唐曉蕾介紹,Xilinx在2019年年收入約為30.6億美元,目前全球約有5,000名員工,6萬多客戶,4400多個專利。
另外,Xilinx是首家擁有FPGA-as-a-Service公有云的服務商,世界首例將5G無線部署在自適應計算領域的廠商,汽車方面出貨量已達1.6億片,在航空航天是自適應計算的第一大廠商,擁有70%的工業(yè)物聯(lián)網(wǎng)視覺市場份額,并且在自適應計算測試測量上是第一大邏輯IC供應商。
總的來說,Vitis是一款從云到端、從軟件到AI都提供了綜合全面的庫和模型的統(tǒng)一軟件平臺,更重要的是Xilinx所擁抱的“開放,標準,免費”必將為行業(yè)創(chuàng)造更多的可能。
據(jù)悉,今年12月3日和4日,賽靈思開發(fā)者大會亞洲站(XDF Asia)將在北京舉行,屆時更多的應用將被展示。