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。

結束語

本文闡明瞭多少問題,又提出了多少新問題?從這個意義上講,問題是對現有工作方式的挑戰。當前的做事方式,會影響人們的思維方式,進而影響他們的行爲方式。但或許更重要的是,將影響我們這樣開發人員的謀生方式。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/zhibo

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-07-30
本文作者:Oskar Mencer等
本文來自:“InfoQ”,瞭解相關信息可以關注“InfoQ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章