FPGA(現(xiàn)場可編程門陣列) 是一款特殊的半導(dǎo)體器件, 它在制造出來后仍然能夠被
任意修改電路結(jié)構(gòu), 以適應(yīng)不同應(yīng)用的需要。 相比于其他種類的芯片,FPGA 具有極強的
靈活性, 同時在性能、功耗和開發(fā)成本等方面達到了出色的平衡。 因此 FPGA 被廣泛應(yīng)
用在電信、工業(yè)控制、高性能計算等多個領(lǐng)域。
本書詳細梳理和分析了FPGA 在大數(shù)據(jù)和人工智能時代的新技術(shù)、 開發(fā)的新方法,
以及FPGA 在異構(gòu)計算時代的新趨勢和新方向, 并重點討論了FPGA 的主要技術(shù)特點。
本書致力于向業(yè)界決策人士提供 FPGA 的先進理念與有價值的實踐模式, 促進大
數(shù)據(jù)、 人工智能等新興技術(shù)與各行業(yè)的深度融合提升。 同時也為 FPGA 從業(yè)人員在處理
實際工程技術(shù)問題時, 提供系統(tǒng)的方案和有價值的參考。 此外, 本書對學(xué)界、 企業(yè)界和社
會中的非專業(yè)人員或技術(shù)愛好者了解FPGA 的先進理念和知識, 也有很大的參考價值。
前言
2011年,我正式踏入學(xué)術(shù)界,從事和FPGA相關(guān)的學(xué)術(shù)研究,2015年進入工業(yè)界,繼續(xù)做FPGA的工程研發(fā)工作。直到今天,已入行十年時間了。
在這十年間,我親眼見證了FPGA這個特殊的半導(dǎo)體芯片是如何在人工智能時代取得飛速發(fā)展的。除了它的傳統(tǒng)應(yīng)用領(lǐng)域之外,F(xiàn)PGA在云數(shù)據(jù)中心、人工智能、高速網(wǎng)絡(luò)處理、金融科技、數(shù)字醫(yī)療等多個行業(yè)里又開辟了很多嶄新的應(yīng)用,并逐步成為了這些領(lǐng)域中不可或缺的關(guān)鍵單元。在這場不為大多數(shù)人所知的技術(shù)變革里,我也有幸參與其中,并且完成了一些關(guān)鍵工程項目的研發(fā)工作。
我們既要低頭拉車,又應(yīng)抬頭看路。一直以來,我都在尋找這樣一類書籍——能對FPGA技術(shù)本身及其未來的發(fā)展進行探討和總結(jié)。因為這能幫助大家明確一些很重要的“動機”,例如為什么要學(xué)習(xí)FPGA,從事這個行業(yè)的前景怎樣。更重要的是,如何通過分析FPGA的發(fā)展歷史和現(xiàn)狀,來分析和解答前面的這些問題,并且得到一個比較完整的思維方式和體系。我相信,很多學(xué)習(xí)FPGA或者從事FPGA行業(yè)的朋友也在尋找這些問題的答案。
很可惜,當前市面上的絕大多數(shù)關(guān)于FPGA的書籍,講的都是FPGA具體的開發(fā)方法、流程和經(jīng)驗,側(cè)重點大部分是針對“怎么學(xué)”或者“怎么用”,而非“為什么學(xué)”或者“為什么用”。
事實上,就FPGA的廣泛應(yīng)用來說,它早已不單是一項技術(shù)或者產(chǎn)品,更代表著一種理念。特別是摩爾定律已近黃昏的當下,以FPGA為代表的異構(gòu)計算技術(shù)不斷興起,更是成為了延續(xù)摩爾定律發(fā)展的重要力量。因此,信息化技術(shù)對各行各業(yè)的重大提升,與FPGA的強力助推直接相關(guān)。正是它們在新領(lǐng)域以新形式的結(jié)合,深刻改變了FPGA的地位和作用,F(xiàn)PGA所面臨的前所未有的發(fā)展機遇,讓業(yè)界對其體系、架構(gòu)、功能等許多方面提出了變革與發(fā)展的新要求。這也需要我們以全新的視角去重新認識和看待FPGA。
由此,我便產(chǎn)生了撰寫本書的想法,希望在書中以通俗易懂的語言,分析和梳理以下幾點內(nèi)容: 第一,F(xiàn)PGA在大數(shù)據(jù)和人工智能時代的新應(yīng)用,以及它們的主要技術(shù)特點; 第二,F(xiàn)PGA開發(fā)的新方法和新手段; 第三,F(xiàn)PGA發(fā)展的歷史、現(xiàn)狀,以及FPGA技術(shù)發(fā)展的新趨勢和未來的發(fā)展方向。就像前面提到的,我并不想借由此書教給讀者FPGA具體的開發(fā)方法,而是希望在大家抬頭看路時,還能有一些可以參考的路標和方向。
在本書的寫作過程中,我也盡力平衡技術(shù)的廣度和深度。本書的讀者并不局限于專業(yè)的FPGA從業(yè)者或?qū)W習(xí)者,還可以是學(xué)界、企業(yè)界和社會中的非專業(yè)人員和技術(shù)愛好者。希望不同層次、不同經(jīng)驗、不同背景,但對FPGA技術(shù)有興趣和追求的讀者朋友都能從本書中獲益,并且借由此書,為他們自己的相關(guān)工程實踐與學(xué)術(shù)研究提供借鑒和啟發(fā)。由于筆者的水平和能力有限,本書難免存在錯誤和疏漏,歡迎各位讀者批評指正。
本書付梓之際,我想感謝清華大學(xué)出版社的楊迪娜編輯,她在我寫作和出版過程中給出了很多重要的建議和幫助。感謝北京航空航天大學(xué)的退休教授夏宇聞老師和中科院計算所研究員,副所長包云崗老師,在百忙之中為本書作序,也感謝摩爾精英的CEO張競揚先生、英特爾中國創(chuàng)新中心總經(jīng)理張瑞先生、西南交通大學(xué)的邸志雄老師、電子科技大學(xué)的黃樂天老師為本書做推介。我還想感謝“老石談芯”的所有讀者和觀眾,他們的支持、鼓勵和反饋,讓我不斷提升自己,并且最終寫出了書中的這些內(nèi)容。最后,我想感謝我的家人,包括我的父母、岳父母,特別是我的妻子和兒子,他們無私的愛與包容,讓我成為更好的人。
本書獻給我的外公,他教給了我“眾里尋他千百度,驀然回首,那人卻在燈火闌珊處”的治學(xué)境界。愿他在天國一切安好。
目錄
第1章延續(xù)摩爾定律——FPGA的架構(gòu)革新
1.1什么是FPGA
1.2從無到有,從小到大,從大到強——FPGA發(fā)展的
三個階段
1.2.1發(fā)明階段: 歷史的必然
1.2.2擴張階段: 設(shè)計自動化的興起
1.2.3累積階段: 復(fù)雜片上系統(tǒng)的形成
1.3超越維度的限制——3D FPGA
1.3.1賽靈思堆疊硅片互聯(lián)(SSI)技術(shù)
1.3.2SSI技術(shù)的主要缺點
1.3.3SSI技術(shù)小結(jié)
1.3.4英特爾EMIB技術(shù)
1.3.5基于EMIB技術(shù)的異構(gòu)FPGA的潛在問題
1.3.6EMIB技術(shù)小結(jié)
1.4突破集成度的邊界——從FPGA到ACAP
1.4.1ACAP概述
1.4.2芯片架構(gòu): 在傳統(tǒng)中變革
1.4.3CLB微結(jié)構(gòu): 翻天覆地
1.4.4第四代SSI技術(shù): 3D FPGA的
進一步優(yōu)化
1.4.5片上網(wǎng)絡(luò): 高帶寬數(shù)據(jù)傳輸?shù)娜吕?/p>
1.5靈活與敏捷共存——英特爾Agilex FPGA
1.5.1英特爾10nm工藝能否后發(fā)制人
1.5.2全新的芯片布局與微架構(gòu)優(yōu)化
1.5.3CXL: CPU與FPGA互連的終極方案
1.5.4可變精度DSP: 全力支持AI應(yīng)用
1.5.5增強版HyperFlex架構(gòu)
1.5.6oneAPI: 英特爾的雄心
1.6本章小結(jié)
第2章?lián)肀Т髷?shù)據(jù)洪流——云中的FPGA
2.1第一個吃螃蟹的人——微軟Catapult項目
2.1.1Catapult項目的產(chǎn)生背景
2.1.2在數(shù)據(jù)中心里部署硬件加速單元的
考慮因素
2.1.3幾類硬件加速模塊的對比
2.1.4Catapult項目的三個階段
2.1.5微軟Catapult項目小結(jié)
2.2FPGA即服務(wù)(FPGA as a Service)
2.2.1亞馬遜AWSF1實例: FPGA云服務(wù)的
首次嘗試
2.2.2AWS FPGA云服務(wù)的技術(shù)概述
2.2.3其他公有云提供商的FPGA加速服務(wù)
2.3下一代電信網(wǎng)絡(luò): SDN、NFV與FPGA
2.3.1網(wǎng)絡(luò)功能虛擬化(NFV)與軟件定義
網(wǎng)絡(luò)(SDN)的意義
2.3.2使用FPGA加速虛擬網(wǎng)絡(luò)功能的實現(xiàn)
2.4系統(tǒng)級解決方案: FPGA加速卡
2.4.1FPGA應(yīng)用方案的轉(zhuǎn)型
2.4.2英特爾的FPGA加速卡布局
2.4.3賽靈思的FPGA加速卡布局
2.4.4第三方FPGA加速卡
2.5虛擬與現(xiàn)實之間——FPGA虛擬化
2.5.1為什么要進行FPGA虛擬化
2.5.2FPGA虛擬化的主要目標
2.5.3FPGA虛擬化的層次劃分
2.5.4常見的FPGA虛擬化實現(xiàn)方法
2.5.5FPGA虛擬化的未來研究方向
2.6本章小結(jié)
第3章FPGA在人工智能時代的獨特優(yōu)勢
3.1實時AI處理: 微軟腦波項目
3.1.1FPGA資源池化的主要優(yōu)點
3.1.2腦波項目系統(tǒng)架構(gòu)
3.1.3腦波項目的性能分析
3.2AI加速引擎: FPGA與深度神經(jīng)網(wǎng)絡(luò)的近似
算法
3.2.1使用低精度定點數(shù)代替浮點數(shù)
3.2.2網(wǎng)絡(luò)剪枝
3.2.3深度壓縮
3.3下一個Big Thing: FPGA公司在AI時代的布局
3.3.1賽靈思
3.3.2英特爾
3.3.3Achronix
3.4路在何方: FPGA在AI時代未來的發(fā)展方向
3.5本章小結(jié)
第4章更簡單也更復(fù)雜——FPGA開發(fā)的新方法
4.1難上加難: 現(xiàn)代FPGA開發(fā)的痛點
4.2讓軟件工程師開發(fā)FPGA——高層次綜合
4.2.1FPGA高層次綜合的前世今生
4.2.2高層次綜合的主要工作原理:
以AutoPilot為例
4.2.3高層次綜合工具常用的優(yōu)化方法
4.2.4高層次綜合的發(fā)展前景
4.3商業(yè)級開源開發(fā)工具: 賽靈思Vitis
4.4一個晶體管也不能少: 英特爾oneAPI
4.5本章小結(jié)
第5章站在巨人的肩上——FPGA發(fā)展的新趨勢
5.1百花齊放、百家爭鳴: FPGA學(xué)術(shù)研究概況
5.1.1多倫多大學(xué)
5.1.2加州大學(xué)洛杉磯分校(UCLA)
5.1.3帝國理工學(xué)院
5.1.4清華大學(xué)
5.1.5FPGA領(lǐng)域的主要學(xué)術(shù)會議
5.2FPGA 20年最有影響力的25項研究成果
5.2.1FPGA系統(tǒng)架構(gòu)篇
5.2.2FPGA微架構(gòu)篇
5.2.3FPGA布局布線算法篇
5.2.4其他EDA/CAD算法篇
5.2.5FPGA應(yīng)用篇
5.3這是最好的時代——FPGA未來的發(fā)展方向
5.4本章小結(jié)