(圖片來自CSDN)
在傳統CPU以外,現在業界又興起了可重構計算的風潮。近期Intel便與清華簽訂了合作協議,號稱將結合Intel在處理器上的優勢與清華在可重構計算上的前沿成果研發下一代芯片,并共享知識產權。而前陣子又有號稱全球首款完全支持異構系統架構的“華夏芯”橫空出世,一時間異構計算和可重構計算的概念讓人眼花繚亂。在國產芯加速前進的背景下,異構計算和可重構計算會是國產芯的機會嗎?
|通用計算與可重構/異構計算的聯系和區別
要想看清楚新概念,就要先明了老概念。可重構/異構計算到底新穎在哪里,要首先看看它們的同伴“通用計算”。
所謂通用計算,就是追求普適性的覆蓋面。在這個理念下誕生的芯片從功能上來講擁有最廣闊的適用范圍,最典型的例子就是今天的中央處理器(CPU)芯片,絕大多數應用程序的絕大部分功能依賴于它。
一般來說,CPU的設計是面向所有應用,評估CPU的性能指標時通常需要選取門類龐雜的各種測試程序,同時只為極少的重點應用加上一定程度的專門優化,例如時下熱門的加密解密,視音頻編解碼等等。
與通用計算相對的就是專用計算,專門針對一些場合進行專門優化,性能/功耗等指標通常比通用CPU有數量級的提高,但是適用面很窄,在規定的適用面以外就遠遠落后于CPU。
通用和專用的關系就如同什么都懂一些但是基本上什么都不精的“通才”,和在個別領域鉆研極深但是其他領域幾乎一無所知的“偏才”。
在CPU的技術指標增長逐步放緩的今天,若要提供更好的表現,一個直觀的點子就是物盡其用,讓“偏才”處理它最擅長的事情,并招來多種專長不同的“偏才”來照顧多種重點事務,其他事情則交給“通才”去完成。一個系統里面存在一個“通才”和多種“偏才”,這就是異構計算,是通用計算和專用計算的“合體進化“。
那么可重構計算是什么?讓芯片擁有重構自身的能力,從而能像干細胞一樣一身才藝,能夠適應各種不同場合的需要,這就是可重構計算。
這一概念的歷史至少可以追溯到上世紀80年代,xilinx設計出第一塊基于SRAM的可重構芯片的時候。這種芯片里面的基本器件和線路上都配置了大量的開關,這些開關的關斷由與之相連的SRAM單元來控制,只要往這些SRAM單元里面寫入0和1就能控制這些組件的開關和連通,從而像搭積木一樣在原來不存在計算部件的地方拼出大量按需定制的計算部件,使得計算性能產生爆發性的變化。這種芯片被稱為FPGA,被廣泛用于CPU流片前的驗證工作。
那么可重構計算和通用計算\專用計算又是什么關系呢?看上去可重構計算可以替代通用計算,實則不然。由于FPGA芯片底層實現方式的限制,這種由SRAM控制組織結構的做法在性能上遠遠落后基于ASIC的CPU,只有在一些特定場合下,FPGA才能夠實現反超,因此,可重構計算便落入了專用計算的范疇,與異構計算同列。它和異構計算雖然起源不同,但是二者眼下的目標在很大程度上是重疊的,也就是,從傳統通用計算的霸主——CPU嘴里搶食。
|群雄割據的亂局:通用碰撞專用,CPU碰撞加速器/FPGA
眾所周知,Intel在CPU上的優勢已經形成事實上的壟斷,x86指令集授權和Intel的技術優勢讓其他公司已經很難染指CPU市場。而大家瞄準的突破口,就在專用計算上。
作為被Intel常年壓制的公司,AMD對異構計算的推動尤其熱心,不僅早早地將自己旗下的CPU產品重命名成APU(有直譯作加速處理器,也有意譯作融合處理器),而且還成立了一個HSA(異構系統架構)基金會,拉了ARM、Imagination、聯發科、德州儀器、三星、聯發科等眾多一線大廠一同上陣,主推一個叫做OpenCL的異構編程框架。
光從這一局部態勢來看,應該稱贊AMD下了一步好棋,但是AMD還有另外一個競爭對手NVIDIA。NVIDIA的主營業務GPU,是異構計算這桿大旗下呼聲最高的異構處理部件。也是對CPU地位威脅最大的,以至于在異構計算這個大概念下還催生了些個附屬的小概念如“GPU計算”、“GPU編程”,早幾年GPU計算還比較新奇的時候,還發生過Intel惱怒于NVIDIA肆意鼓吹GPU的并行優勢,公開發文撕逼的事情。盡管Intel一直在提高CPU的SIMD能力、從而壓縮GPU的性能優勢,但是迄今為止頂尖GPU在實踐中對付頂尖CPU仍然能取得2-3倍或者更高的性能。NVIDIA為自家的GPU打造了另一個異構編程框架CUDA,專門與OpenCL唱對臺戲,而且呼聲更高,至少在高性能計算領域已經形成了對OpenCL的壓制態勢。
這么一看,是AMD螳螂捕蟬,NVIDIA黃雀在后,然而,還有彈丸在其下。前面提到,FPGA也被證明在一些專門領域具備對CPU的性能優勢,而FPGA取得性能優勢的領域也多是并行性比較好的,這也剛好是GPU的長處,這就與GPU打架了。例如微軟等公司就已經為自己的數據中心加上了FPGA,使用OpenCL進行編程,這樣一來GPU又面臨著被挖墻腳的窘境。
|瞄準可重構/異構領域的國產芯能殺得進去嗎?
可以肯定的是,異構計算/可重構計算是當前的一個技術熱點,無論在學術研究上還是在工業實踐上都是如此,其市場空間是有的。但是國產芯能從中收獲多少,筆者抱持比較悲觀的態度。
從格局上來講,專用計算主要弱點是應用場合有限,且GPU和FPGA存在互相競爭。Intel現有的處理器可以在除了低功耗以外幾乎任意場合下提供不錯的性能,而可重構/異構計算的介入只是在一部分特定業務上再提供大幅加速 —— 這個應用范圍就決定了可重構/異構計算不可能替代中央處理器現有的角色,而只是一些特定場合下的附庸,Intel的地位仍然無人能動搖。因此,對于芯片自給率從30%提升至70%的國家戰略目標來講,可重構/異構計算可以是其中漂亮的一塊拼圖,但是絕對無法擔主梁。
從商業上來講,可重構/異構計算的市場空間正在進一步被Intel壓縮。Intel已經于去年年底完成了對FPGA雙巨頭之一Altera的167億美元收購,據報道內建FPGA模塊的新型xeon志強服務器處理器會在今年一季度面世,以Intel + Altera雙強聯合的體量來說,可重構市場的市場份額絕大部分肯定不容旁落,除非Intel在定價或者出貨時間等問題上出現重大紕漏,國內新興的這些尚處在襁褓期的可重構計算公司將被迫在夾縫中求生存,這些公司的前景如何,很大程度上是受到Intel間接控制的,筆者對此較難看好。