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

評(píng)論