FPGA作為有史以來最具創(chuàng)新性的半導(dǎo)體器件,一直都走在架構(gòu)和工藝的最前沿。也正是因其較高的技術(shù)門檻和IP要求,這一領(lǐng)域的玩家?guī)缀跚缚蓴?shù)。兩家主流的FPGA廠商在架構(gòu)創(chuàng)新和工藝制程的提升方面你追我趕,競(jìng)爭(zhēng)甚是激烈。不過,這一局面開始呈現(xiàn)出一些新的發(fā)展態(tài)勢(shì),幾年的攻城掠地后,他們都在自己所專注且擅長(zhǎng)的領(lǐng)域贏得了一席之地,差異化特征越來越明顯。
賽靈思在忙什么?
這是我非常關(guān)注的一個(gè)問題。
賽靈思的創(chuàng)新,讓賽靈思從傳統(tǒng)可編程邏輯公司轉(zhuǎn)型為“All Programmable”公司,創(chuàng)建各種形式的軟/硬件、數(shù)字和模擬可編程技術(shù)并將其并整合到All Programmable FPGA、SoC和3D IC中。這些器件集可編程系統(tǒng)的高集成度以及嵌入式智能和靈活性于一身,支持快速開發(fā)高度可編程的智能系統(tǒng)。
有兩個(gè)動(dòng)向需特別關(guān)注:賽靈思推出“軟”定義網(wǎng)絡(luò)(“Softly” Defined Networks)解決方案,將可編程能力和智能化功能從控制層擴(kuò)展至數(shù)據(jù)層。全新SDNet軟件定義規(guī)范環(huán)境可實(shí)現(xiàn)可編程數(shù)據(jù)層功能設(shè)計(jì),而且功能規(guī)范可自動(dòng)編譯到賽靈思的All Programmable FPGA和SoC中。
賽靈思又宣布推出針對(duì)OpenCL、C和C++的SDAccel開發(fā)環(huán)境,將單位功耗性能提高達(dá)25倍,相對(duì)其它FPGA解決方案,性能和資源效率可提高3倍。目前,賽靈思已經(jīng)通過這一開發(fā)環(huán)境實(shí)現(xiàn)了FPGA向數(shù)據(jù)中心應(yīng)用加速。
賽靈思究竟在做什么?它的發(fā)展路線始終圍繞FPGA,但似乎已經(jīng)超越了傳統(tǒng)FPGA廠商的范疇。以下節(jié)選自美國(guó)Eletronic Engineering Journal的一段內(nèi)容或許對(duì)我們有所啟發(fā)。
If FPGAs are to become the compute engines of the future, the flow of FPGA design must make a tectonic shift toward the software engineer. The devices must seem like processors, and the implementation must feel like programming. Synthesis, simulation, and layout must be replaced by compilation and debug. Detailed control of optimization options must be replaced by rapid iteration and productive workflow. In short, the whole hardware-engineer-centric FPGA process must be turned on its side.(from Kevin Morris at EE Journal)
這就是賽靈思正在做的事情。
單純地依靠FPGA芯片架構(gòu)、工藝制程或是增強(qiáng)型工具套件進(jìn)行性能提升已成為過去式。如果FPGA希望進(jìn)入一個(gè)更廣闊的新世界去開疆拓土,軟件開發(fā)環(huán)境是一個(gè)不得不逾越的鴻溝,而這需要根本上的改變。賽靈思必須能夠在硬件工程師與軟件開發(fā)人員之間搭建起一座溝通的橋梁,讓他們即使使用各自的語(yǔ)言也能自由溝通。
SDNet是Xilinx的第一步嘗試,SDAccel則緊隨其后。這就是賽靈思努力實(shí)現(xiàn)的SDx系列,它已不僅僅是某一項(xiàng)市場(chǎng)策略,而是該公司以軟件為中心的SDx生態(tài)系統(tǒng),正在幫助賽靈思將FPGA的發(fā)展推進(jìn)一個(gè)新境界。當(dāng)然,背后起關(guān)鍵支撐作用的仍然是賽靈思多年來大量的工具和IP積累。
賽靈思如何搭建軟硬件人員的溝通橋梁?
建立起硬件工程師與軟件開發(fā)人員的溝通并非易事。硬件工程師追求的是系統(tǒng)的優(yōu)化——如何在最小的硅片面積,以最低的功耗,實(shí)現(xiàn)最佳的性能。而軟件開發(fā)人員則注重如何有效管理復(fù)雜代碼,他們通常需要面對(duì)成千上萬行代碼,必須快速地進(jìn)行迭代、分析,并以最少的bug、最易理解的方式來組織他們的編程語(yǔ)言。二者的工作似乎永遠(yuǎn)不會(huì)有交集。賽靈思是如何實(shí)現(xiàn)的?
SDAccel技術(shù)是建立在賽靈思于2011年年初收購(gòu)AutoESL時(shí)獲得的高層次綜合(HLS)技術(shù)的基礎(chǔ)上實(shí)現(xiàn)的。賽靈思在過去三年多時(shí)間里進(jìn)一步開發(fā)該技術(shù),并將其作為產(chǎn)品供貨給1000多名FPGA客戶。與此同時(shí),賽靈思還將該技術(shù)從針對(duì)C和C++擴(kuò)展到了現(xiàn)在能夠優(yōu)化本地OpenCL代碼的編譯工作。
SDAccel使軟件開發(fā)人員能夠利用新的或現(xiàn)有的OpenCL、C和C++ 代碼創(chuàng)建高性能加速器,并針對(duì)計(jì)算搜索、圖像識(shí)別、機(jī)器學(xué)習(xí)、編碼轉(zhuǎn)換、存儲(chǔ)壓縮和加密等各種數(shù)據(jù)中心應(yīng)用中的存儲(chǔ)器、數(shù)據(jù)流和流水線技術(shù)進(jìn)行了精心優(yōu)化。圖1給出了SDAccel環(huán)境中的典型設(shè)計(jì)流程。
圖1:通過SDAccel編譯創(chuàng)建的可執(zhí)行鏡像可在賽靈思FPGA中實(shí)現(xiàn)。
有FPGA實(shí)例化經(jīng)驗(yàn)的軟件開發(fā)老手會(huì)發(fā)現(xiàn)SDAccel中有很多熟悉的內(nèi)容。允許C、C++和OpenCL輸入是為了讓來自獨(dú)立CPU領(lǐng)域的開發(fā)人員盡快熟悉編程環(huán)境,同時(shí)能獲得FPGA的所有獨(dú)特功能集。SDAccel支持在CPU上的完整仿真,程序員可對(duì)并行和流水線化元素進(jìn)行比較,并在對(duì)特定FPGA架構(gòu)進(jìn)行初始編譯之前執(zhí)行循環(huán)、片上存儲(chǔ)器、和數(shù)據(jù)流等優(yōu)化操作。
在FPGA上首次實(shí)現(xiàn)完全類似CPU/GPU的開發(fā)體驗(yàn)
借助SDAccel,開發(fā)人員能夠使用其熟悉的工作流程優(yōu)化應(yīng)用,而且即便之前沒有FPGA使用經(jīng)驗(yàn),也能受益于FPGA平臺(tái)的優(yōu)勢(shì)。集成設(shè)計(jì)環(huán)境(IDE)不僅可提供編碼模板和軟件庫(kù),而且還能對(duì)各種開發(fā)目標(biāo)進(jìn)行編譯、調(diào)試和特性分析,如在X86平臺(tái)上仿真、使用快速仿真進(jìn)行性能驗(yàn)證以及在FPGA處理器上進(jìn)行本地執(zhí)行等。IDE可在數(shù)據(jù)中心用FPGA平臺(tái)上執(zhí)行應(yīng)用。該平臺(tái)配套提供面向所有支持開發(fā)目標(biāo)的自動(dòng)儀器插入功能。此外,SDAccel還經(jīng)過精心設(shè)計(jì),使CPU/GPU開發(fā)人員能夠輕松將其應(yīng)用遷移到FPGA上,同時(shí)還可在他們熟悉的工作流程中維護(hù)和復(fù)用OpenCL、C和C++代碼。
綜合全面的SDAccel環(huán)境包括編程器用IDE、基于C語(yǔ)言的FPGA優(yōu)化庫(kù),以及數(shù)據(jù)中心用現(xiàn)成商用(COTS)平臺(tái)。
SDAccel庫(kù)包括用于高性能低功耗實(shí)現(xiàn)方案的內(nèi)置OpenCL函數(shù)、DSP、視頻以及線性代數(shù)庫(kù)。針對(duì)特定領(lǐng)域加速,賽靈思聯(lián)盟合作成員Auviz Systems提供了精心優(yōu)化的OpenCV和BLAS OpenCL兼容型軟件庫(kù)。原有的COTS成員包括Alpha Data、Convey、Pico Computing,預(yù)計(jì)2015年年初還將增加更多成員。
圖2:SDAccel開發(fā)環(huán)境包括架構(gòu)優(yōu)化編譯器、庫(kù)、調(diào)試器以及特性分析器,可提供類似CPU或GPU的編程體驗(yàn)
在FPGA上首次實(shí)現(xiàn)完全與CPU/GPU的運(yùn)行時(shí)間體驗(yàn)
SDAccel能夠支持帶有多個(gè)程序和類似CPU / GPU按需可加載計(jì)算單元的應(yīng)用。與CPU/GPU類似,SDAccel對(duì)于FPGA解決方案的獨(dú)特之處,在于能夠保持程序轉(zhuǎn)換過程中的系統(tǒng)正常工作。SDAccel目前是業(yè)界唯一能夠創(chuàng)建可在應(yīng)用運(yùn)行過程中加載新加速器內(nèi)核的FPGA計(jì)算單元的環(huán)境。在整個(gè)應(yīng)用執(zhí)行過程中,存儲(chǔ)器、以太網(wǎng)、PCIe和性能監(jiān)控器等關(guān)鍵系統(tǒng)接口和功能均保持工作狀態(tài)。即時(shí)可重配置的計(jì)算單元可讓多個(gè)應(yīng)用共享FPGA加速器。例如通過對(duì)運(yùn)行系統(tǒng)編程,可支持圖像搜索、視頻轉(zhuǎn)碼和圖像處理之間的切換。
能夠支持C、C++和OpenCL對(duì)開發(fā)人員來說是一個(gè)獨(dú)特優(yōu)勢(shì),因?yàn)闊o論是使用現(xiàn)有代碼庫(kù)還是利用全新的OpenCL環(huán)境都可達(dá)到“兩全其美”境地。盡管OpenCL提供一些明顯優(yōu)勢(shì),例如可移植性,以及在主機(jī)與運(yùn)行內(nèi)核的計(jì)算單元之間實(shí)現(xiàn)代碼分段,但是大部分函數(shù)庫(kù)和現(xiàn)有代碼庫(kù)均采用C或C++編寫。SDAccel使客戶能夠在合適的時(shí)候繼續(xù)用C和C++進(jìn)行開發(fā),同時(shí)利用OpenCL的可移植性進(jìn)行移植。
SDAccel庫(kù)包含OpenCL內(nèi)置函數(shù)、DSP、視頻和線性代數(shù)庫(kù)。SDAccel還將諸如OpenCV和BLAS等第三方的庫(kù)集成到其軟件環(huán)境中。當(dāng)設(shè)計(jì)方案使用壓縮或加密等復(fù)雜協(xié)處理模塊時(shí),利用SDAccel開發(fā)環(huán)境得到的設(shè)計(jì)在性能和大小方面可與手動(dòng)編碼效果旗鼓相當(dāng),甚至更勝一籌。
面向未來數(shù)據(jù)中心的開發(fā)環(huán)境
一直阻礙FPGA在數(shù)據(jù)中心應(yīng)用中更廣泛使用的主要原因就是缺乏一款高效優(yōu)化的編譯器和相關(guān)開發(fā)環(huán)境,以滿足數(shù)十年在面向通用CPU和GPU架構(gòu)的編譯器上工作的需求。SDAccel的出現(xiàn)終于打破了這一局面,有助于在數(shù)據(jù)中心應(yīng)用中實(shí)現(xiàn)設(shè)計(jì)優(yōu)化。
SDAccel不僅可完成用戶在任何本地OpenCL編譯器上所能實(shí)現(xiàn)的基本功能,如循環(huán)合并、扁平化以及展開等,而且還能執(zhí)行一些更高級(jí)的優(yōu)化工作,如內(nèi)存使用、數(shù)據(jù)流、循環(huán)流水線等選項(xiàng)。這些優(yōu)化讓客戶通過編譯器將C、C++或OpenCL直接高效導(dǎo)入到FPGA硬件中。賽靈思基準(zhǔn)測(cè)試顯示,編譯器相對(duì)優(yōu)化的RTL大小可減少5%,而且在一些情況下其結(jié)果質(zhì)量(QoR)相比RTL能提升20%以上。這讓客戶能夠在具有嵌入式調(diào)試功能的本地FPGA硬件上進(jìn)行綜合和調(diào)試前,即可在架構(gòu)層的x86處理器上設(shè)計(jì)和優(yōu)化他們的應(yīng)用。
SDAccel不僅使加速內(nèi)核接近傳統(tǒng)CPU和GPU,甚至超越它們以往的性能,而且還能簡(jiǎn)化面向未來低功耗異構(gòu)數(shù)據(jù)中心的FPGA產(chǎn)品的開發(fā)工作。SDAccel在為數(shù)據(jù)中心創(chuàng)建功耗更優(yōu)化型計(jì)算環(huán)境,以及在通用開發(fā)環(huán)境中整合 CPU/GPU優(yōu)化型編譯和動(dòng)態(tài)可重配置加速器方面所起的重要作用。
SDx系列仍在持續(xù)創(chuàng)新
賽靈思公司亞太區(qū)銷售與市場(chǎng)副總裁楊飛表示,賽靈思的SDx系列仍會(huì)持續(xù)發(fā)展。毫無疑問,這會(huì)幫助賽靈思面向更為廣泛的用戶群。事實(shí)上,不僅是數(shù)據(jù)中心,未來,有線通信、無線通信等領(lǐng)域都有廣闊的應(yīng)用前景。
賽靈思SDx系列已經(jīng)收獲了一系列不錯(cuò)的反響。關(guān)于它的未來,關(guān)于FPGA的未來,會(huì)是很有趣的猜想。
應(yīng)用案例:
百度現(xiàn)已轉(zhuǎn)用深度神經(jīng)網(wǎng)絡(luò)(DNN)處理技術(shù)來解決語(yǔ)音識(shí)別、圖像搜索以及自然語(yǔ)言處理中存在的各種問題,這是因?yàn)樗麄円呀?jīng)認(rèn)識(shí)到,當(dāng)在線預(yù)測(cè)使用神經(jīng)反向傳播算法時(shí),F(xiàn)PGA解決方案遠(yuǎn)比CPU和GPU更容易進(jìn)行擴(kuò)展。
板級(jí)超級(jí)計(jì)算機(jī)專家Convey Computer將x86 CPU與賽靈思FPGA結(jié)合,設(shè)計(jì)了一款可幫助數(shù)據(jù)中心服務(wù)器進(jìn)行內(nèi)容高速緩存的Wolverine加速卡。Convey與戴爾的數(shù)據(jù)中心解決方案(DCS)業(yè)務(wù)部通力合作推出了一款圖像縮放解決方案(在社交媒體和圖片存儲(chǔ)網(wǎng)絡(luò)中非常需要)。該解決方案采用兩個(gè)Virtex7開發(fā)板,相對(duì)僅采用CPU的同等系統(tǒng)而言,縮放速度可提高35到40倍。此外,Convey-Dell解決方案之所以得到廣泛使用,關(guān)鍵還是能夠利用更高級(jí)的語(yǔ)言定制FPGA加速器。
微軟于今年年初啟動(dòng)了一項(xiàng)計(jì)劃——使用FPGA加速Bing搜索排名。微軟公司服務(wù)器工程副總裁Kushadra Vaid最近在Linley處理器大會(huì)上的一次主題演講中展示了使用1632臺(tái)帶PCIe FPGA加速卡的服務(wù)器試生產(chǎn)結(jié)果。相對(duì)于未加速的服務(wù)器,微軟實(shí)現(xiàn)方案的吞吐量提高了2倍,而時(shí)延和成本分別降低了29%和30%。
戴爾公司平臺(tái)架構(gòu)與技術(shù)及CTO 辦公室執(zhí)行總監(jiān)Robert Hormuth指出:“基于FPGA的技術(shù)有了新的突破,能支持優(yōu)化的計(jì)算應(yīng)用。在戴爾服務(wù)器部署的過程中,簡(jiǎn)化編程是決定采用FPGA加速器的關(guān)鍵障礙。。毫無疑問,賽靈思開辟了一條正確的道路,讓開發(fā)人員能夠借助一個(gè)軟件環(huán)境,提高FPGA平臺(tái)用戶的生產(chǎn)力?!?/p>
IBM電源開發(fā)副總裁兼OpenPOWER基金會(huì)總裁(IBM vice president of Power Development and OpenPOWER president)Brad McCredie表示:“IBM堅(jiān)信OpenCL對(duì)提高生產(chǎn)力大有裨益,正在與賽靈思展開緊密合作,將該技術(shù)應(yīng)用到我們的OpenPOWER產(chǎn)品設(shè)計(jì)中?!?/p>
---> END <---
-
硬件
+關(guān)注
關(guān)注
11文章
3328瀏覽量
66224 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7565瀏覽量
88794 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136841
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論