跨越FPGA的障礙
雖然每個人都抱怨編程FPGA有多難,但英特爾并不為此退縮。雖然沒有透露太多相關計劃的情況下,Waxman提出了一些方法讓FPGA更容易被運用和理解。
Waxman說:“我們所擁有的是獨一無二的,這是其他人不能給的。那就是我們能夠了解這些工作負載和能夠推動加速的能力。
“我們看到一條促進機器學習,加速存儲加密,加速網絡功能的捷徑”,Waxman強調。這是基于我們對這些工作負載的深入了解,所以才讓我們看到了這樣的機會。
但現在FPGA還需要面對一些困難,因為現在人們是寫RTL的。我們是一家寫RTL的公司,所以我們可以解決這個問題。首先我們使它運作,然后我們可以降低進入的門檻。第三步是真正的規模經濟學,而這全部是靠集成和制造的實力。
為了解決這些障礙,我們提供了一系列的方法。
X86+FPGA?
對于那些英特爾打算用FPGA來代替Xeons的猜測,Waxman表示這是一派胡言。
Waxman表示,對于那些對高速率和重復性有強烈需求的算法,具有先天優勢的FPGA就是其最好的選擇。而那些對延遲有極高需求的數據操作和轉換,FPGA也是候選人。
考慮到Altera已經在一個SoC上集成了ARM處理器和FPGA,這很自然地會想到英特爾會試圖用X86內核全面替換ARM內核來做類似的設備。但它看起來不像這會發生。
首先,在2016年第二季度英特爾財務聲明會上,Krzanich承諾,英特爾將加強對目前使用Altera的ARM-FPGA芯片客戶的支持。
Waxman進一步澄清:“我們的觀點是會以某種形式把FPGA集成到Xeon里。我們已經公開宣布將會打造第一代使用這種單一封裝的設備,但是我們將根據進展情況調整方向,甚至可能會在同一個die上實現。我們將根據客戶的反饋了解什么是正確的組合。
順便說一下,我仍然期待看到沒有集成的系統,保持他們會做系統級的協同。我們不會將Xeon與FPGA以多種方式組合集成,反之我們會在市場上找到正確的目標和平衡。”
編程問題首當其沖
雖然Altera的工具集利用OpenCL編程模型獲得應用程序代碼,并將其轉換為RTL(FPGA的原生語言),但是有趣的是,英特爾并不認為FPGA在數據中心的未來成功是基于OpenCL與RTL工具集成的改進或更廣泛地采用OpenCL。
Waxman也強調地說:“這并不是以OpenCL為基礎的。”雖然我們確實把OpenCL看作是進一步擴大FPGA應用范圍的一個途徑,但目前FPGA的初始云端部署可能由更具能力的公司完成,但他們并沒有要求我們提供OpenCL。Waxman補充說。
Waxman在不能“自由”地談論的情況下,暗示英特爾有計劃使FPGA更容易編程。他表示Intel將會為程序員提供RTL庫,方便他們調用在FPGA上部署的例程,并推動在其上執行應用程序的gate的形成,來實現應用程序例程的gate,而不是讓他們自己創建例程。這有一定的意義,與Convey(現在是美光科技的一個部門)幾年前用FPGA加速系統處理的方案一樣。
Waxman說:“我認為有一個連續的加速。在一開始,你可能不知道你正在試圖加速什么,只是做了一些嘗試,因此在這個階段加速,你想要的是一個更通用的目的。當你開始真正地想要加速的時候,你會想要更高效的,更低的功耗和更少的空間,這時你就會把焦點移到FPGA上。”
Waxman還引用了Microsoft在其“Catapult”系統上使用FPGA加速的方案來說明。
該系統采用其Open Cloud Server并添加FPGA夾層卡作為加速器。我們在3月份研究了這個項目,將這些加速器應用在Google上執行相同的圖像識別訓練算法,得出的結果顯示,25瓦的FPGA器件相對于使用Nvidia Tesla K20 GPU加速器(235瓦特)的服務器,提高了更好的性能/瓦特。
正如我們所說,我們對于微軟和Google發布的性能數據毫無疑問。但是對分立的GPU或FPGA執行應用性能和對自身的熱配置文件進行測量都是不公平的。你必須在服務器節點級別上看到這一點。
如果意識到這點,得到FPGA輔助的Microsoft服務器在系統級只稍稍領先于用Tesla K20s的Google服務器。(這些只是我們基于每秒每瓦特圖像處理性能的估計)。在這個對比中,Microsoft應該不考慮成本。而且坦白說,不同于什么都配備的Tesla GPU,微軟開放云端服務器并沒有使用Juice或Cooling。真正的評測怎么都會使用GPU夾層卡,同時還需要考慮熱量,性能和價格等因素。
但是Waxman討論的重點仍然是那個。“在某個時候,你真的很想要那個能給你驚喜,并且能做到更低功耗的方案。而這就是我們的FPGA方案所擅長的方面。”
云端業務
最后要考慮的是英特爾的云端業務。這些客戶現在占據了他們數據中心集團收入的25%。
整體來看,他們的購買量每年增長約25%。預計從2016年開始,未來幾年整體數據中心集團業務都將增長15%。讓我們做一些計算。
如果英特爾的計劃如期實施,他的數據中心集團2016年收益將會達到166億美元。云端服務提供商(其中包括在The Next Platform上使用我們的語言的云端構建者和超大規模計算者)占大約41億美元,其余歸屬于英特爾數據中心,銷售數據大約為125億美元。因此,英特爾數據中心的業務增長在12%左右(除云端外),是云端速率的一半。英特爾需要以任何方式來滿足云端的增長和明顯的FPGA需求,即使它只占用Xeon容量的一點點。對于英特爾來說是這個的選擇比讓GPU加速持續增長的方案要好。
編程方面可能是阻礙FPGA被廣泛采用的一個主因(不像其他加速器,具有豐富的開發生態系統,如Nvidia GPU的CUDA)。這就驅動程序員去基于C語言去做擴展設計,或使用OpenCL,而不是用過去困擾FPGA開發的低級模型。但即使在應用的過程中有這么多里程碑,FPGA仍然不被主流青睞。我們將會探索解決編程問題的方法和機會。
雖然我們已經與這個相對較小的生態系統中的許多供應商(包括Altera和Xilinx,兩個主要供應商)進行了交流,但按照FPGA長期研究員Russell Tessier所說,FPGA在更廣闊的市場上大展拳腳的日子還在前面,新的發展意味著更廣泛的采用。
他在馬薩諸塞大學(他還在Altera工作,并且Mentor Graphics收購的虛擬機工程的創始人)研究了FPGA二十多年,他認為FPGA從科學項目到企業應用的形勢正式緩變化。他認為其中的關鍵是來自于設計工具的改進,設計人員不斷提高他們設計高水平。除此與外,工具vendor可以更好地引導芯片發展。他補充說,設備內的大量邏輯量意味著用戶能夠實現更多的功能,這使得FPGA對更多領域更廣泛的吸引力。
Tessier說:“在過去幾年里,FPGA的一個明顯趨勢就是這些設備更容易“程序化”。
Xilinx目前鼓勵使用其Vivado產品的時候,用C語言進行設計。Altera還有一個已經開發的OpenCL環境。關鍵是兩家公司都在試圖創建一個環境,讓用戶可以使用更熟悉的編程(如C和OpenCL),而不必是使用RTL設計專家所擅長的Verilog或VHDL。雖然在過去幾年里取得不錯的成績,但這仍然處于推進的階段,不過這將有助于把更多的事情地移入主流。
其中一個對FPGA真正有利的因素就是如果將其和芯片搭配使用,建立一個快速的內部互聯,它能解決memory和數據移動中的限制。這種優勢就是吸引Intel收購Altera的主要誘因。另外,如果像英特爾和IBM這樣的大公司能夠積極推動FPGA的軟件生態系統的建設,其應用市場將會迅速擴張。FPGA的主流化(至少現在沒有GPU那么重要,)可能會更快地出現。
Tessier解釋:“標準核心處理器集成的增加肯定是關鍵所在。過去的障礙是語言和工具,隨著這些障礙越來越少,為芯片供應商新的合作機會打開了一扇門。由于這些和其他“主流化”趨勢出現,不斷做出的改變的FPGA的應用領域將繼續增長。例如,金融服務商店是第一個使用FPGA進行財務趨勢和股票選擇分析的用戶,但使用案例正在擴大。現在有更強的設備可以解決更大的問題。
更廣泛的應用領域
除此之外,FPGA通過的其他新領域發現新用途,包括DNA測序,安全性,加密和一些關鍵的機器學習任務。
當然,我們希望FPGA變得強大,并“進入”世界上最大的云端和超大規模數據中心,Xilnix數據中心部門副總裁Hamant Dhulla對此表示強烈贊同。他在2016年初,他告訴The Next Platform, “異構計算已經不再是一種趨勢,而是現實”,也就是在那個時候,微軟推出了使用FPGA的Catapult案例(現在就很多或以后會很多),英特爾收購了Altera以及看到了更多FPGA將廣泛應用在數據中心的聲明。
從機器學習,高性能計算,數據分析等領域,FPGA在更多樣化的應用領域中嶄露頭角。這些都與FPGA上嵌入了越來越多可用的on-chip存儲器有關,這些都是FPGA制造商和潛在終端用戶所期待的。 Dhulla表示,市場潛力足夠大,讓Xilinx能夠調整其業務的方式。 過去幾年,存儲和網絡主導了FPGA用戶群。但未來五年內,計算端的需求將遠遠超過存儲和網絡,并都將沿著穩定的增長線繼續發展。
在FPGA其他的熱門領域(包括機器學習),它們的更像是一個帶有GPU 的“協作”加速器。毫無疑問,對于許多機器學習工作負載的訓練部分,GPU是主要的。因此為這里需要很多計算能力,就像HPC一樣,其中power envelope tradeoff值得的。但是這些客戶購買了數十或數百個GPU,而不是數十萬個,龐大的加速器數目正使用在機器學習pipeline的推理部分,這就是市場所在。
正如我們指出的,Nvidia正在使用兩個獨立的GPU(用M4來訓練,更低功耗的M4插入來削減服務器)來抵消這一點,但Dhulla認為FPGA仍然能夠通過采用PCIe方法降低功耗,也可以嵌入超大規模數據中心。
他們的SDAccel編程環境通過提供對C,C ++和OpenCL的高級接口,使其更實用,但是推動超大規模和HPC采用的真正途徑是通過最終用戶示例。
當涉及到這些早期的用戶,就像為下一代的FPGA的應用搭建了舞臺,Dhulla指向像Edico Genome這樣的公司。Xilinx目前還與其他領域的客戶合作,包括石油和天然氣和金融方面的歷史計算方面。早期客戶將Xilinx 的FPGA應用在機器學習,圖像識別和分析以及安全性方面,這可以看作他們計算加速業務發展的第一步。
盡管雙精度性能和總體價格不佳,FPGA的真正的大規模應用機會在于云端。因為FPGA可以提供GPU所不能提供的優勢。如果FPGA供應商能夠說服其最終用戶,他們的加速器可以提供相當大的性能提升(在某些情況下他們會這樣做)給關鍵的工作負載。提供一個通過帶有其他加速器(例如CUDA)的complexity-wise的編程環境推進OpenCL開發,通過在云端中提供FPGA來解決價格問題。這可能是一個新的希望。
當然,這種希望來源于將FPGA部署到有超密集服務器云端架構內,而不是在單機的銷售上。這種模式已經在FPGA的金融服務中發生。
正如他們GPU加速器“伙伴”圍繞深度學習進行拉動,以便迅速得到更多的用戶, FPGA設備在探索一個通過解決神經網絡和深度學習的問題的方式找尋入侵市場的真正的機會。
新的應用程序主機意味著新的市場,隨著云端應用的推廣消除了一些管理開銷,它可能意味著更廣泛的采用。FPGA供應商努力推動它在一些關鍵的機器學習,神經網絡和搜索方面的應用。FPGA在諸如自然語言處理,醫學成像,深度數據檢測等領域中的超大規模上下文中變得越來越普遍。
在過去一年里,FPGA的多種應用得到曝光,特別是在深度學習和神經網絡,以及圖像識別和自然語言處理等領域。例如,微軟使用FPGA在1,632個節點上提供2倍的搜索服務,并采用創新的高吞吐量網絡來支持Altera FPGA驅動的工作。中國的搜索引擎巨頭百度(也是許多深度學習和神經網絡任務GPU用戶)正在用FPGA執行存儲控制,其每天的數據吞吐量在100TB到1PB之間。
使用FPGA的大規模數據中心和其他領域的應用正在吸引人們對FPGA的單精度浮點性能的更多關注。
雖然一些案例使用(包括百度示例),將GPU作為計算加速器和FPGA用在存儲端,但Altera,Xilnix,Nallatech和IBM的研究人員在OpenPower聯盟展示了FPGA在云端深度學習的光明前景。
可以說現在屬于FPGA的一個黃金時
評論
查看更多