1.前言
FPGA自誕生起一直在高速復(fù)雜計算領(lǐng)域里占有極大的優(yōu)勢,借助于計算機輔助設(shè)計工具通過Verilog編程,設(shè)計者可以很方便地將一個通用結(jié)構(gòu)的FPGA芯片構(gòu)造成一個規(guī)模宏大的并行的計算結(jié)構(gòu),這個結(jié)構(gòu)能以通用CPU無法比擬的高速進(jìn)行極其復(fù)雜的數(shù)據(jù)處理。然而,F(xiàn)PGA作為一種硬件可重構(gòu)的體系結(jié)構(gòu),在過去的很長一段時間內(nèi)都被用作ASIC的小批量替代品。
在有實用價值的圖像分析、語音理解等模式識別的處理計算中,通常需要在幾個毫秒之內(nèi)對一幅圖像的所有像素逐點進(jìn)行卷積計算,分析、比較計算結(jié)果,得到可靠的結(jié)論。算法研究工作者通常用普通計算機的軟件來處理靜態(tài)數(shù)據(jù),得到理論結(jié)果,但實際應(yīng)用中如此慢的響應(yīng)速度根本無法滿足實際工程的需求。最近二十多年來,圖像分析、語音理解等模式識別研究的算法理論研究已逐步成熟,引起了工業(yè)界的興趣,大量的研究經(jīng)費轉(zhuǎn)向如何設(shè)計可以高速進(jìn)行復(fù)雜數(shù)據(jù)處理的并行計算機結(jié)構(gòu),并研發(fā)實用的AI系統(tǒng)。因此近二十多年來,F(xiàn)PGA芯片和Verilog設(shè)計/驗證方法得到了飛速的發(fā)展。
在圖像處理方面,如人臉識別、指紋識別、語音識別方面的機器人,其AI表現(xiàn)也十分搶眼。 在這一類機器人的計算系統(tǒng)中許多極其復(fù)雜的計算工作,絕大部分都是由FPGA結(jié)構(gòu)實現(xiàn)的。而且FPGA可以與各種不同的存儲器、各種不同類型的并行接口或是計算機接口,如PCIe等方便地連接,它也可以把機器人與計算機網(wǎng)絡(luò)和廣大的知識庫融為一體,構(gòu)成極其龐大、響應(yīng)迅速的AI知識系統(tǒng)。
根我所知,許多AI研究工作者習(xí)慣于用軟件進(jìn)行算法研究,他們中的大多數(shù)人用靜態(tài)的圖像或靜態(tài)的聲音(錄下來的聲音)做語音理解或者翻譯方面的工作。在整個過程中,雖然數(shù)據(jù)處理的計算速度比較慢,但還是可以得到可靠的分析處理結(jié)果。但是在實際工程應(yīng)用當(dāng)中,這樣慢的處理速度顯然沒有多大實用價值,因為在許多場合,響應(yīng)根本無法用于實際場合。隨著研究工作向設(shè)計實際系統(tǒng)轉(zhuǎn)換,我建議軟件系統(tǒng)的工程師們應(yīng)該學(xué)會如何使用FPGA,以及如何用FPGA做復(fù)雜計算的加速。其實對計算機科學(xué)和工程專業(yè)畢業(yè)的軟件工程師而言,只要有數(shù)字電路的基礎(chǔ)知識,學(xué)習(xí)Verilog HDL語言并不困難,學(xué)會RTL級別Verilog的編程來構(gòu)造可綜合的并行迭代計算結(jié)構(gòu)并不困難,只需要花費一兩個月就能上手。
而對于那些在嵌入式系統(tǒng)工作多年的硬件工程師或只有一些簡單接口設(shè)計經(jīng)驗的FPGA工程師而言,雖然不是一個專職研究處理算法的軟件編程專家,但他們必須抽一些時間來理解算法,幫助算法工程師把電路結(jié)構(gòu)改變得更加合理,令計算瓶頸變成寬敞的通道。在AI時代,特別是AI進(jìn)入應(yīng)用的新時代,一個真正的硬件工程師不僅應(yīng)該熟練掌握Verilog的語言,學(xué)會如何用Verilog語言編寫可綜合的并行結(jié)構(gòu),在規(guī)定的時間間隔內(nèi)完成算法要求的計算工作量,并且學(xué)會如何設(shè)計硬件,讓硬件與算法軟件配合,更有效率地完成算法要求的多種計算任務(wù)。把原來算法研究中完全用軟件實現(xiàn)的計算過程,變成用軟件和硬件配合實現(xiàn)的過程,把整個計算結(jié)構(gòu)改造成一個可配置的高速處理的結(jié)構(gòu),專門針對某一領(lǐng)域的人工智能產(chǎn)品,讓這個硬件有更大的市場,這是非常有意義的!
總而言之,對今天的AI嵌入式系統(tǒng)的設(shè)計師而言,必須軟硬兼?zhèn)洳拍艹蔀橐粋優(yōu)秀的工程師。換言之,軟件人員要往硬件方向轉(zhuǎn),學(xué)習(xí)硬件知識,硬件工程師也必須向軟件工程師靠攏,理解算法的執(zhí)行過程,為AI算法設(shè)計新的計算結(jié)構(gòu)和數(shù)據(jù)通路。這是因為現(xiàn)在AI的軟件編程并不是簡單地編寫一個程序得到一個計算結(jié)果,還必須考慮計算的速度是不是足夠夠快。所以實質(zhì)上是一個如何設(shè)計合理的并行結(jié)構(gòu)計算加速核心硬件,以達(dá)到實時全面完成算法要求的問題。
轉(zhuǎn)型勢在必行,F(xiàn)PGA工程師要理解新任務(wù)、掌握新工具。
2.對FPGA產(chǎn)品的需求
硬件性能的提升
盡管FPGA在數(shù)據(jù)中心應(yīng)用處于一個快速增長過程,但總體規(guī)模還不是很大,這里面有一些限制,也是FPGA廠商需要努力提升的地方。 首先是價格問題,F(xiàn)PGA的大規(guī)模部署需要FPGA硬件成本盡快降下來,這個要靠工藝進(jìn)步以及市場規(guī)模來解決;其次是存儲訪問帶寬,HBM技術(shù)以及CCIX是代表性的方向。
軟件工具的提升
FPGA需要軟件工具來輔助工程師完成設(shè)計過程,在新的應(yīng)用領(lǐng)域?qū)υO(shè)計的內(nèi)容、流程、驗證方法等都提出了新的需求,例如AI應(yīng)用客戶希望具備高層次的模型定制能力,但是目前還沒有廠商可以提供成熟的方案。這也為新的工具提供商提供了機會。
生態(tài)系統(tǒng)
GPU獲得了廣泛的認(rèn)同和應(yīng)用,這與CUDA長期的演進(jìn)和積累密不可分。新興應(yīng)用領(lǐng)域大都有流行的設(shè)計框架和開源項目。FPGA一般作為高性能計算硬件來加速現(xiàn)有項目,所以需要和這類設(shè)計框架進(jìn)行融合,也需要大量基礎(chǔ)庫/IP來支持用戶快速完成設(shè)計。所以一個成熟的生態(tài)系統(tǒng)至關(guān)重要,目前這塊也還是非常薄弱。
3. 對FPGA工程師的需求
理解新任務(wù)
傳統(tǒng)FPGA工程師面對的是硬件的設(shè)計問題,但AI等應(yīng)用與應(yīng)用系統(tǒng)關(guān)系密切,不單純是FPGA片上邏輯設(shè)計的問題。工程師往往需要了解上層軟件如何與FPGA片上系統(tǒng)的集成與優(yōu)化問題。
掌握新工具
FPGA主流廠商很早就開始布局新興市場的應(yīng)用,一個主要工作就是提升FPGA設(shè)計開發(fā)抽象層次,OpenCL/HLS語言就是典型代表,一般情況下可以提升數(shù)倍開發(fā)效率。所以FPGA工程師需要充分掌握這類新的工具,以保障自己能有足夠的效率面對行業(yè)需求。
抓住新機遇
新興應(yīng)用領(lǐng)域不僅僅是FPGA市場的簡單擴充,它也為FPGA應(yīng)用帶來新的商業(yè)模式,以FaaS為代表的應(yīng)用形式,為FPGA開發(fā)人員帶來眾多新的商業(yè)機遇。
Achronix的Speedcore IP具有支持先進(jìn)人工智能技術(shù)的正確功能組合。
人工智能(AI)應(yīng)用要求高性能,并且在許多情況下,低延遲能夠成功地響應(yīng)條件和需求的實時變化。它們還要求功耗盡可能的低從而意味著無法使用,其解決方案是將機器學(xué)習(xí)放在供電和制冷能力充足的云服務(wù)器端。對這些嵌入式系統(tǒng)的進(jìn)一步要求是,即使在沒有網(wǎng)絡(luò)連接到云端的情況下也都能隨時工作并且準(zhǔn)備好做出響應(yīng)。這些因素的組合要求在硬件設(shè)計方法上做出改變。
人工智能要求謹(jǐn)慎地平衡數(shù)據(jù)通路的 性能、內(nèi)存延遲 和 吞吐量,這就需要用一種方法來將盡可能多的功能放到專用集成電路(ASIC)或系統(tǒng)級芯片(SoC)上。通過添加eFPGA技術(shù),則提供了市場需要的一種解決方案,來將靈活性以及客制化邏輯單元支持能力結(jié)合在一起。
作為專為嵌入到SoC和ASIC之中而設(shè)計的硅知識產(chǎn)權(quán)(IP),Achronix的Speedcore eFPGA IP是一種高度靈活的解決方案,它支持高性能機器學(xué)習(xí)應(yīng)用中需要的數(shù)據(jù)吞吐量。通過借助其可切分的架構(gòu),Speedcore IP為設(shè)計人員提供了滿足其應(yīng)用要求的能力來實現(xiàn)eFPGA功能的混合和匹配。Speedcore IP的核心功能包括基于四輸入查找表(LUT)的邏輯單元、用于寄存器文件和類似應(yīng)用并面向邏輯單元的小型存儲器(LRAM)、較大的單元塊存儲器(BRAM)和可配置的數(shù)字信號處理器(DSP)模塊。根據(jù)應(yīng)用的要求,Speedcore基于縱列的架構(gòu)可提供準(zhǔn)確混合資源的能力。
4.FPGA工程師要這樣擁抱AI
FPGA本身作為一種可編程的邏輯器件,其最突出的特性在于可編程的邏輯部分。這與傳統(tǒng)CPU的順序執(zhí)行方式有著本質(zhì)區(qū)別,與ASIC相比又有著較好的靈活性,在AI產(chǎn)業(yè)興起之前,就一直是ASIC設(shè)計的前期驗證手段。
但是,如今的FPGA器件的發(fā)展已經(jīng)跨越了可編程這個特性,現(xiàn)在的FPGA器件往往擁有遠(yuǎn)比通用芯片更高的I/O帶寬和內(nèi)存帶寬,例如高達(dá)40Gbps的serdes接口,以及HBM2等超高速內(nèi)存接口,這些接口使得FPGA在通信領(lǐng)域有著非常廣泛的應(yīng)用。
現(xiàn)如今,由于很多AI產(chǎn)品對內(nèi)存帶寬和互聯(lián)互通性有著相當(dāng)高的要求,在較輕運算量的情況下,F(xiàn)PGA的可應(yīng)用場景有了非常大的突破,所以很多小批量、快迭代的產(chǎn)品,其最佳開發(fā)方式反而變成了FPGA,而非ASIC或者GPU等等,因此FPGA開發(fā)人員,只要多熟悉AI技術(shù)、熟悉AI應(yīng)用需求,仍然可以在AI行業(yè)游刃有余,不斷打造新的傳奇。
現(xiàn)在的圖像處理和數(shù)據(jù)的傳輸、分配這些事情在人工智能開發(fā)方面發(fā)揮著重要作用,在AI時代需要FPGA工程師尤其是做軟件算法和做硬件設(shè)計的人要優(yōu)勢互補。
產(chǎn)品設(shè)計好后還要與原來的計算機與服務(wù)器連接在一塊兒,那么還需要做系統(tǒng)級設(shè)計。這對FPGA的軟件工程師、硬件工程師都是一個新的挑戰(zhàn)。希望FPGA工程師們成功轉(zhuǎn)型,為AI時代能設(shè)計出更好的產(chǎn)品助力。
5. FPGA工程師的核心競爭力
這個問題主要引申為以下兩點:“
-
什么是只有FPGA工程師能做的?
-
作為FPGA工程師,應(yīng)用具備哪些能力,又如何去培養(yǎng)這些能力呢?
只有FPGA工程師能做到的
FPGA工程師最核心的能力的就是全棧能力。這指的是系統(tǒng)級的軟硬件全棧能力。它既包括了在系統(tǒng)層面的架構(gòu)設(shè)計、芯片開發(fā)的前后端流程,也包括了軟件設(shè)計的全棧流程,甚至還有后期的項目維護(hù)、技術(shù)支持、與客戶的溝通等軟技能。它可以看成是綜合多種技能的技能樹。
我隨手寫了一下 FPGA 工程師的全棧技能樹,見下圖,盡管很不完整,但仍可供大家參考。之前很多人提到的,諸如調(diào)試與分析的能力,其實是這個全棧技能樹里的一片樹葉,或一個分支。
聯(lián)系:highspeedlogic
QQ :1224848052
微信:HuangL1121
郵箱:1224848052@qq.com
網(wǎng)站:http://www.mat7lab.com/
網(wǎng)站:http://www.hslogic.com/
微信掃一掃:

--------------------------------------------------------------------------------------
人工智能代做,深度學(xué)習(xí)代做,深度強化學(xué)習(xí)代做,zynq智能系統(tǒng)FPGA開發(fā),
AI代做,卷積神經(jīng)網(wǎng)絡(luò),Alexnet,GoogleNet,CNN,TensorFlow,
caffe,pointnet,PPO,Qlearning,F(xiàn)asterRCNN,MTCNN,
SPPNet,word2vec,SARASA算法,梯度策略等等