隨著數字化時代的飛速發展,人工智能(AI)、大數據分析、自動駕駛等新興領域的需求不斷攀升。FPGA作為靈活可編程的硬件平臺,正成為AI與高性能計算等領域的重要支柱。這一趨勢不僅推動了FPGA架構的創新,也對開發者提出了新的要求。這篇文章將帶您深入探討FPGA發展趨勢,并剖析這些變化對開發者的影響與挑戰,為在新時代的技術浪潮中把握機遇提供參考。
1. 異構化
1.1 異構計算的概念
所謂異構計算,就是在一個系統中使用不同類型指令集和體系架構的計算單元實現復雜多樣的計算方式。簡單來說就是多種芯片協同工作,例如CPU,GPU,ASIC,FPGA,DSP等,最近幾年也出現了AI硬件引擎這樣的新型計算單元。
1.2 異構化的原因
近些年來,IC設計中的異構化趨勢已經越來越明朗了。各領域的前沿芯片,都熱衷于集成越來越多的新計算單元,依次來滿足日益擴大的市場需求和延續摩爾定律的使命。這主要是為了滿足現代應用日益增長的復雜性、性能需求和功耗限制:
①. 新領域對性能需求的增長:近些年大數據分析、人工智能(AI)、自動駕駛、5G通信和高性能計算等領域高速發展,迫切需要極高性能的IC芯片來滿足這樣發展的勢頭。
②. 各類芯片能效比的提升:隨著各類芯片的不斷發展,其在各自領域的優勢日益凸顯,所以全能單芯片漸漸失去了可行性;相反,讓不同芯片協同工作的方案,才能將性能發揮到極致
③. 新型任務的專用化需求:現代計算任務變得越來越專用化,尤其是在人工智能、機器學習、圖像處理和科學計算領域。這種任務往往需要特定的計算單元才能高效執行。
④. 多任務處理和并行計算的需求:現代計算環境通常需要處理大量并行任務,如在數據中心或超級計算機中。異構計算架構可以通過多種處理單元的協同工作,顯著提高并行計算能力。
⑤. 其他原因:如定制化和靈活性的需求,延續摩爾定律發展的需求。
1.3 FPGA的異構化趨勢
作為AI時代新型驅動引擎,FPGA當然也沒有落伍。從早些年內嵌ARM的ZYNQ,到集成DSP,ARM,AI等處理器的ACAP平臺,FPGA前沿創新無不延續著這樣的思路。如圖為Xilinx推出的ACAP架構圖,FPGA與DSP,AI,ARM等處理器協同工作,充分發揮各自性能滿足巨大的客觀需求。
1.4 異構化對開發者提出的新需求,新挑戰
相較于過去開發者只需要對FPGA有足夠了解,異構化芯片則要求,開發者需要熟悉異構計算環境,了解如何將FPGA與CPU、GPU、ASIC等其他處理單元協同工作。這包括掌握數據在不同計算單元間傳輸的方法、任務分配策略,以及優化整體系統性能的技巧。
也就是說,開發者在應對新型FPGA時要具備系統化思維,不僅要保證FPGA自身性能充分施展,還要在FPGA開發中充分考慮到系統中其他芯片,追求整體系統性能的最大化。
這就意味著,異構系統的復雜性增加了開發難度,要求開發者具備跨領域的知識,如并行編程、數據流優化和硬件架構設計。
2. AI與機器學習加速
2.1 AI硬件加速
AI與機器學習的性能不僅依賴于軟件算法模型,還依賴于執行其算法的硬件設備,通過硬件優化AI性能就是所謂的AI加速技術。FPGA在AI加速中具備得天獨厚的優勢,是極為理想的選擇。如上ACAP圖,許多高級FPGA已經集成了專用AI引擎,促進AI技術的發展與應用。
2.2 FPGA實現AI加速的案例
微軟的Project Brainwave項目,是一個基于FPGA的實時AI推理加速平臺,專為云計算環境中的人工智能(AI)和機器學習(ML)任務設計。該項目已經集成到微軟的Azure云平臺中,用于加速各種AI服務,例如圖像識別,自然語言處理,語音識別等。
平臺架構:Project Brainwave基于Intel Stratix 10 FPGA,以此為核心其關鍵組件包括深度神經網絡引擎(DNN),矢量處理單元和可編程邏輯等。深度神經網絡引擎(DNN),是專為加速深度學習推理任務設計的硬件模塊,其直接運行在FPGA上,利用FPGA的并行處理能力來加速卷積神經網絡(CNN)等復雜模型。矢量處理單元,用于處理矢量化的神經網絡運算,結合FPGA中的DSP模塊,實現高效的矩陣乘法和加法運算,顯著提升推理速度。
如圖為該項目的簡單示意圖,可以看見FPGA層是運算核心單元,它與CPU通過PCIe3.0進行高速通信。
2.3 AI硬件加速對開發者提出的新需求
隨著AI應用領域越來越廣,開發者需要學習如何利用FPGA中的AI引擎和加速器進行機器學習任務的加速,包括如何設計、優化和部署FPGA上的AI模型。
芯片供應商們,為開發者提供了高效的AI開發套件,例如Xilinx公司提供的Vitis套件。它不僅提供了高層次綜合(HLS)的新型開發技術環境,還提供了FPGA與ARM,AI等其他處理器的開發環境
如圖所示,為Vitis全套開發流程。在設計階段,Vitis開發可以分為三個部分,即紅色部分使用C語言對內嵌ARM的編程,橙色部分C/C++對AI引擎的開發,綠色部分使用RTL語言(Verilog/VHDL)或者C/C++進行高層次綜合實現FPGA電路的設計,這三者之間的協同工作通過AXI總線實現。我們可以看到,三部分設計最終統一打包在v++ -package內,它包含了FPGA,ARM,AI的編程設計,Vitis可以將其燒寫到實際電路上運行和調試。
3. 高層次綜合(HLS)
3.1 傳統FPGA開發的缺陷
傳統的FPGA開發,多使用RTL語言(Verilog/VHDL/SystemVerilog)進行電路設計。盡管后來,人們使用IP化設計和高效的代碼管理體系,大大提升了RTL語言設計的開發效率,但是RTL語言自身的局限性仍然明顯。
RTL代碼需要設計者詳細描述寄存器、狀態機、數據路徑等低級硬件結構,開發者必須考慮時序、同步等復雜因素,這對開發者的硬件設計經驗要求較高,且容易出錯;并且,在后期優化代碼時,部分改動就需要大量時間重新編譯,這拉長了開發周期,使得生產率底下。
因此RTL設計不能讓開發者專注于算法設計上,而是花費過多時間在具體的硬件適配上,這并不利于發揮FPGA在高速運算上的優勢,因此高層次綜合HLS應運而生。
3.2 高層次綜合
如圖,傳統的FPGA設計方法以HDL語言與IP例化為核心,借助EDA工具完成Synthesis 和Implement的工作,從而完成從代碼到硬件實現的工作。若想要使用C/C++語言完成硬件設計,則需要HLS工具,將其映射到HDL語言上或是直接生成電路原理圖,從而進一步完成FPGA硬件的實現。
現形的HLS工具已走出萌芽期,HLS技術已集成進了AMD的Vitis和Intel的Quartus Pro中去了。
3.3 HLS的學習路線
高層次綜合是大勢所趨,但需要新的學習提升。其實供應商們為了推廣芯片,已經盡可能地為我們傳統FPGA設計者鋪平了道路,我們只要在原有基礎上選擇合理地學習思路和學習技巧,也能很快地掌握HLS開發。
①. C語言復習:對于硬件開發者,可能會對C/C++有所生疏。這不僅包括基本語法,還包括調庫,模塊化編程等開發技巧;此階段只需要簡單過一遍即可,進階還是需要實戰的磨礪才能實現
②. 了解HLS的庫:供應商提供了成體系的C語言庫,方便我們調用。在了解庫的過程中,需要學習常用的HLS專用指令,如pipeline、unroll、dataflow等,還需要在C語言上構建硬件思維,了解如何將C/C++中的算法轉換為硬件結構,理解代碼對硬件資源的合理利用和平衡。
③. HLS工具的使用:就像學習Vivado的操作一樣,HLS需要學習Vitis或者Quartus Pro工具的使用,這個學習思路跟學習Vivado也大差不差
④. 實戰提升。
4. 技術迭代
新概念,新技術固然新穎,但一些舊技術仍然十分重要,它們的更新迭代也需要及時跟進。接下來說幾個目前還在不斷迭代的技術,這也需要開發者們及時更新技術,滿足最新的市場需求。
4.1 PCIe
PCIe接口當前已經迭代到了6.0版本,而最新的FPGA也內嵌了PCIe5.0版本的接口,其單通道傳輸速率可達32GT/s,是傳統FPGA應用的2.0版本的6倍之多。PCIe的技術迭代帶來了更快速的數據處理,這對于當下的“大數據時代"相當重要,而FPGA開發者也需要及時了解新協議,運用新IP,跟上數據密集型產業的巨大需求
4.2 低功耗設計
FPGA低功耗的特點尤為凸顯,在異構化的趨勢下,現今FPGA開發者則更需要充分釋放FPGA的特點。開發者需要掌握低功耗設計技術,了解如何通過選擇合適的架構、優化電源管理和減少時鐘頻率來降低FPGA的功耗,這需要我們深入理解FPGA內部結構,并能靈活應用功耗優化工具和技術。
4.3 HBM
HBM(High Bandwidth Memory)是一種先進的3D堆疊內存技術,它將多個內存層堆疊在一起,實現高密度、高性能的存儲。FPGA供應商已將HBM集成到其高端FPGA產品中(如上ACAP),應用于高性能計算(HPC),視頻處理,網絡加速等技術上。
HBM的引入,讓FPGA開發者在設計中面臨了一些新的挑戰和需求。HBM的高帶寬要求開發者設計高效的數據訪問模式,以充分利用其潛力。開發者需要深刻理解HBM的架構和數據傳輸機制,優化數據存儲和訪問策略。此外,HBM的復雜性增加了FPGA設計的驗證和調試難度。開發者需要利用更高級的調試工具和仿真技術,確保設計的功能和性能符合預期。
5.總結與預告
這一章我們探討了FPGA在數字化時代的主要發展趨勢,包括異構化、AI加速、高層次綜合以及技術迭代。隨著AI、大數據和自動駕駛等領域的快速發展,FPGA同時也對開發者提出了新的挑戰,如掌握異構計算環境、優化AI模型、學習高層次綜合工具以及跟進最新的技術迭代。這也對我們的未來學習提供了一定參考。
-
處理器
+關注
關注
68文章
19595瀏覽量
232221 -
FPGA
+關注
關注
1638文章
21861瀏覽量
610071 -
芯片
+關注
關注
459文章
51757瀏覽量
431283 -
cpu
+關注
關注
68文章
10977瀏覽量
214517 -
異構計算
+關注
關注
2文章
105瀏覽量
16462
原文標題:FPGA發展趨勢及其對開發者提出的新挑戰
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
[推薦]數字化產品是安防行業發展的必然趨勢
PCB發展趨勢,六大趨勢
模擬電路技術在數字時代面臨的挑戰有哪些?
數字化時代教育電視的生存與發展
AI助力打造數字化時代的新型企業
FMEA在數字化時代的創新發展

評論