FPGA 自上世紀 80 年代進入市場以來,就與通用 CPU、ASIC 乃至 GPU 競爭共存。FPGA 的低功耗、可編程、規格適中等特性,使其在市場中占據一席之地。本文分析了通信、HPC、數據中心等多個領域的現狀,對市場、價格和競品對比等方面進行了概要分析,并預測了 FPGA 未來的一些發展方向,對了解 FPGA 提供了很好的參考。
本文概要總結了 2019 年 9 月在斯坦福大學一次三小時討論情況,其中匯聚了來自多家企業和研究機構的實踐經驗,包括 Zilog、Altera、Xilinx、Achronix、Intel、IBM、Stanford、MIT、伯克利、威斯康星大學、Technion、Fairchild、貝爾實驗室、Bigstream、谷歌、DIGITAL(DEC )、SUN,諾基亞、SRI、日立、Silicom、Maxeler Technologies、VMware、施樂 PARC、思科等。上述各家并不對本文內容承擔任何責任,只是在某種程度上激發了作者們的思考,進而構成了 FPGA 的多維發展之路。
FPGA(現場可編程門陣列,Field-Programmable Gate Arrays) 自誕生以來,就與 ASIC 社區糾纏不清。上世紀 80 年代中期,Ross Freeman 及其同事從 Zilog 處購買了該項技術,初創了面向 ASIC 仿真和教育市場的 Xilinx 公司。Zilog 來自于埃克森美孚石油公司,其創立源自于上世紀 70 年代人們對石油將在 30 年內耗盡的擔憂——盡管時至今日這一說法依然大行其道。幾乎與此同時,以類似技術為核心的 Altera 成立。
FPGA 是支持電路編程的芯片,實現對該電路的“仿真”。對于 ASIC 中的實現,這種仿真的運行性能要慢于實際的電路。它的時鐘頻率更低,耗能更高,但可以每幾百毫秒重新編程一次。
FPGA 用于在 ASIC 制造商做光罩并提交工廠制造前仿真 ASIC。Intel、AMD 等企業在芯片生產前,使用 FPGA 仿真芯片。
電信領域的爭奪
FPGA 一直在電信行業大量使用。由于電信標準的不斷變化增加了電信設備的制造難度,因此能率先給出電信解決方案的企業往往會占領最大的市場份額。ASIC 的制造周期很長,而 FPGA 提供了一種快捷方式。電信設備開始在初期版本上采用 FPGA,這引發了 FPGA 價格的波動。盡管 ASIC 仿真市場并不受 FPGA 價格的影響,但芯片的價格對電信企業卻至關重要。多年前,AT&T 和朗訊制造了自己的 FPGA,稱為 ORCA(優化的可重配置單元陣列,optimized reconfigurable cell arrays)。但與 Xilinx 或 Altera 相比,它們在硅片的速度和規格上并不具有競爭優勢。
如今,華為已成為 FPGA 的最大客戶。美國制造的 FPGA 可能正是中美之間最近的緊張關系的導火索。這些芯片令華為在 5G 電信設備交付上占據優勢,領先世界上其他任何準備參與競爭的供應商達兩年。
FPGA 價格之爭
FPGA 很早就用于 SDR(軟件無線電,software-defined radios)。SDR 技術可同時支持多種通信標準的無線電,類似于一部可講多種語言的電話。這一次 FPGA 遇上了麻煩,因為 SDR 技術走上了兩條不同的采用道路。一方面,商業供應商基于成本效益考慮開發了很多解決方案,并在當前地球上所有的基站都部署了 SDR 技術。另一方面,在國防領域,大型國防承包商是為了保護有利可圖的傳統產品線而構建 SDR 的。這導致基于 FPGA 的無線電產品的價格居高不下,以至美國的部分國防市場一直抵制它們的應用。
下一步,FPGA 試圖進入 DSP 和嵌入式市場發展,開始推出部分使用硬核微處理器的 FPGA。但銷售這些新型 FPGA 的壓力很大,以至于如果客戶拒絕這一新系列的芯片,就會被芯片廠商列入黑名單,有時甚至會拒絕提供服務數月。鑒于 FPGA 企業攻克新市場頻頻失敗,FPGA 市場的增長壓力依然巨大。因為 FPGA 的芯片面積巨大,涉及的知識產權眾多,所以 FPGA 產品難以降低價格。
在 HPC 和數據中心領域碰壁
在過去數年中,FPGA 試圖在 HPC(高性能計算)和數據中心市場中發展。2017 年,微軟宣布在數據中心使用 Altera FPGA,而英特爾則收購了 Altera。2018 年,Xilinx 宣布了其“數據中心優先”戰略。其 CEO 面對廣大分析師時,宣稱 Xilinx 不再是一家單純的 FPGA 企業。這頗具戲劇化,但這是歷史必然。
在 HPC 和數據中心使用 FPGA,主要障礙在于布局布線(place & route),即運行 FPGA 供應商特定軟件將電路映射(mapping)為 FPGA 元件所耗費的時間。針對大型 FPGA,使用快速的 CPU 服務器,布局布線耗時可能多至三天。并且在很多情況下,三天之后軟件依然無法找到映射。
在石油天然氣領域碰壁
2007 年前后,石油和天然氣領域的應用形成了利基市場。在傳統計算機上模擬鉆探地球發現石油所花費的時間,比現場實際施工和鉆探的時間還要長。使用 FPGA 加速器,極大地改變了這種耗時顛倒的情況。首個用于計算地震圖像的石油企業數據中心的 FPGA,是由 Maxeler Technologies 制造并交付給 Chevron 的。
FPGA 在油氣領域的應用經過了數年擴展,直到來自 ASIC 產業的壓力,才讓標準的 CPU 技術重新回歸。當下,預測和仿真在油氣領域依然重要,地震成像大多使用 CPU 和 GPU 完成,不過 FPGA 依然占據了一席之地。我們知道,“當前的新事物,會成為明日黃花”。當然,人工智能和對數據的關注是當前的新事物。
盡管如此,FPGA 依然是一種進入市場的快捷方式、獲取競爭優勢的簡單方法,以及許多關鍵任務中必不可少的技術。FPGA 的每個芯片價格要比 ASIC 昂貴,但是對 HPC 和數據中心而言,相比 CPU 和 GPU 而言需要的 FPGA 芯片更少,制冷開銷更低,因此 FPGA 的運行費用要顯著低于在 CPU 或 GPU 上運行軟件。FPGA 使得數據中心規模更小,這會使運營商感到不安,因為他們擔心自己的數據中心可能會縮水。
ASIC vs. FPGA
FPGA 的另一用途,是作為 ASIC 的補充。構建 ASIC 的目的在于實現固定的功能,添加 FPGA 則可為產品的最新更改以及適應不同的市場提供一定的靈活性。
現代 FPGA 集成了越來越多的硬核功能,變得越來越像是 ASIC。而 ASIC 也時常會在設計中添加一些 FPGA 結構,以便于調試、測試、現場修復,以及增加添補小功能的靈活性。
但 ASIC 團隊卻一直在與 FPGA 概念做抗爭。ASIC 設計師詢問“用戶需要什么功能?”,并在得到“我也不確定”的回答后會失去耐心。
無人駕駛汽車行業就是這樣的一個新戰場。由于算法的不斷變化,并且法律法規可能會在汽車入場時發生變化,需要不斷對駕駛技術做相應調整,這需要靈活可變的解決方案。FPGA 的時鐘頻率更低、散熱片較小,物理尺寸小于 CPU 和 GPU。更低的功耗和更小的尺寸,使 FPGA 成為顯而易見的選擇。盡管如此,GPU 更易于編程,并且不需要耗時三天的布局布線。
另一個至關重要的考慮是,出于模擬和測試等方面的考慮,需要在汽車上和云中運行相同的代碼。這樣需要 FPGA 必須在云中可用,然后才能在汽車中使用。由于上述問題,許多開發人員更喜歡選擇 GPU。
FPGA 的演進
FPGA 正處于不斷發展中。現代接口正使 FPGA 更易于編程,更為模塊化,更易于與其他技術協作。FPGA 支持 AXI(高級可擴展接口,Advanced Extensible Interface)總線,使其更易于編程,但也會引入很多嚴重的效率損失,結果降低了 FPGA 的性能,最終導致其競爭力下降。一些學術工作提出了解決布線問題的研究,例如 Eric Chung 的關于 FPGA 動態網絡的論文,但是這些先進的理念尚未為產業界所接受。
FPGA 是如何連接的?對于具有大量數據流的 HPC 工作負載,可以使用 PCI Express,并部署通信隱藏技術。但是像 NFV(網絡功能虛擬化,network function virtualization)這樣的小規模但卻能同時為大量用戶提供服務的工作負載呢?VMware 最近的調查結果指出,對于 NFV 和虛擬機加速,FPGA 必須直接連接到 CPU,并使用緩存一致性作為通信機制。當然,一個關鍵的特性是 FPGA 的崩潰不會導致 CPU 崩潰,反之亦然。大型技術企業正在重新審視 IBM 大型機時代的需求,意圖使用標準化平臺涵蓋越來越多的復雜性。
在大眾化的企業市場也存在著機會。在提供 FPGA 平臺時,企業即便沒有進行 ASIC 開發的預算,也不了解最新的硅制造挑戰和解決方案,也可以去開發電路,并在其產品中建立競爭優勢。例如新興的物聯網(IoT)邊緣計算,實現在近傳感器、顯示器端甚至在數據流經過時進行計算。
同時,FPGA 企業正將技術棧上推直至 CPU 插槽。英特爾在該市場上占據主導地位,其掌握了 NFV 特殊指令等技術。在數據中心中添加新 CPU 和 FPGA 的主要障礙不僅是速度和成本,還在于所有可能的 I/O 設備的軟件和驅動程序是否可用。
在數據中心中推行 FPGA 的關鍵是易用性。例如,使用自動工具去驅動 FPGA 的應用,避免產生布局布線上的難題。微軟率先在大型數據中心中使用 FPGA 來加速 Bing、NFV 和人工智能算法,此外還構建了抽象、領域特定語言和靈活的硬件基礎結構。在商業上,FPGA 的主要問題在于入市策略。
構建新的芯片后才去考慮軟件就為時已晚了。如何讓硬件適應軟件而從現有軟件中獲益?這也提供了重新思考 FPGA 架構的機會。但是需要警告的是:硅產業是個吞金獸。構建 ASIC 是一種賭注多年持續攀升的撲克游戲。這是一場贏家通吃的比賽,在比賽初期就剔除了 FPGA 的威脅。
FPGA 正在為硅項目帶來額外的不良風險。
利基市場
正如軟件設計師常說,“軟件能完成的事情,就應由軟件實現”。ASIC 設計師會說,“ASIC 能完成的事情,就應由 ASIC 來完成。”最有趣的說法是,“如果可以用軟件完成,那么就不必和一切 FPGA 思維的人打交道了。”相比 ASIC 的團隊規模,以及全球范圍內軟件開發人員的規模,FPGA 的公司很小,社區也很小,其中只有一些甚至是古怪的程序員。
英特爾正在推進 FPGA 的靈活性。在遵循“構建硬件以運行現有軟件”這一原則的公司中,英特爾是最成功的一家。
FPGA 性能可能比 CPU 和 GPU 更快,但是來自產業界和投資界的切實經驗教訓是,自計算機出現以來的絕大多數時間中,速度和實時性并沒那么重要。很少有人僅僅為了高性能而購買計算機。盡管此事時有發生,卻不能根據這樣的隨機事件去建立業務市場。此外,FPGA 缺失標準,沒有開源代碼,也沒有令人愉悅的編程模型。因此,并沒有標準市場支持可在所有 FPGA 芯片上工作或易于交叉編譯的 FPGA 程序。Maxeler Technologies 具有提供此類接口的高級解決方案,但廣泛的行業采用需要的是信任。信任才能推動技術從早期采用者的玩物發展到讓所有人受益,但這需要現有數據中心領域供應商的推動和支持。
現實中,應用的用戶會說:“我并不在乎具體方法,只要能完成我想要做的事情。” 在尚未廣泛探索的應用領域中,哪些是 FPGA 可一展身手的?對于實時計算,FPGA 可用于工業界。對于無人機上的計算機視覺,FPGA 在重量和功耗上具有優勢。在衛星上的硬件升級代價很大,對此 FPGA 提供了至關重要的長期靈活性。FPGA 需要的是休戚與共的產品。此類產品必須易于編程,光是硬件或軟件還不夠,還需要生態系統,需要完整的解決方案。
實時編譯和自動 FPGA 程序生成是拓寬當前市場局限的好方法。說起來容易,但做起來難,但是隨著人工智能對應用空間的突破,越來越多的機會出現了。當前,一切皆可由人工智能完成,甚至油氣領域地震成像等的傳統算法也都采用了人工智能。處理人工智能模塊需要科學和工程上的解決方案。FPGA 可提供一個很好的出發點,從連接 AI 模塊開始進而整合到 FPGA 架構中。例如,Xilinx 的下一代芯片將人工智能架構、CPU、100G 接口和 FPGA 單元整合到同一個 7 納米芯片中。
從另一個角度來看,隨著人工智能芯片生成并處理大量數據,需要 FPGA 提供大量輸入并迅速取走輸出。隨著用于人工智能處理的新 ASIC 的面世,FPGA 將在人工智能芯片公司大展身手。
預 ?測
將出現成功的 CPU+FPGA 服務器芯片,或直接訪問 CPU 緩存層次結構的 FPGA。有人贊同,有人否定。
SoC(片上系統,system on a chip)FPGA 芯片將不斷發展壯大,帶動醫療、下一代電信和汽車等行業。
開發人員將使用 FPGA 實現神奇的事情,推動世界的進步,但對內部存在 FPGA 的事實必須秘而不宣。
FPGA 的名稱將會保留,稱為 FPGA 的芯片也會繼續出現,但是其內部將大相徑庭。
一旦我們為簡化 FPGA 編程而放棄(數據流)優化,FPGA 的性能將降低,進而將無法與易于編程的 CPU 競爭。
FPGA 將具有動態布線、不斷發展的互連,以及運行時靈活的數據移動。
和 FPGA 之上完整的軟件棧一樣,布局布線軟件將會開源。Yosys 和 Lattice FPGA 已經著手于此。
所有半導體架構都將組合為融合了 TPU、GPU、CPU、ASIC 和 FPGA 的單個芯片。芯片中可融合所有技術,也可融合部分技術。
更多的芯片將聚焦于特定應用空間,只有少部分實現通用用途。從某種意義上說,一切都會成為 SoC。
結束語
本文闡明了多少問題,又提出了多少新問題?從這個意義上講,問題是對現有工作方式的挑戰。當前的做事方式,會影響人們的思維方式,進而影響他們的行為方式。但或許更重要的是,將影響我們這樣開發人員的謀生方式。
編輯:黃飛
?
評論
查看更多