隨著5G通信技術的發(fā)展,云計算和邊緣計算業(yè)務也將快速增長。由于云計算多樣性和邊緣環(huán)境復雜性的特點,將決定了在CPU,GPU,FPGA,ASIC中,不會只有一種芯片存在。所以FPGA一定可以尋找到它的應用方向。相較于其它幾種芯片,F(xiàn)PGA具有以下幾種優(yōu)勢:
1 靈活可編程。FPGA是以LUT作為基本結(jié)構的器件,可以根據(jù)需求的變化對其擦除重寫,運行新的程序。
2 高帶寬。FPGA芯片有很多高速管腳,可以連接多顆DRAM,產(chǎn)生較高的帶寬。
3 復雜的數(shù)據(jù)處理能力。FPGA能夠有針對性的處理邏輯關系復雜的程序,這相比于CPU,GPU等依賴指令處理數(shù)據(jù)的芯片有優(yōu)勢,因為它能夠做到更低的延遲。
FPGA也存在以下劣勢限制了它的發(fā)展:
1 編程復雜,開發(fā)周期較長。RTL的開發(fā)包括了架構設計,RTL代碼,仿真驗證,上板調(diào)試。一個項目的周期往往是軟件開發(fā)的幾倍,團隊規(guī)模也較大。這些既提高了開發(fā)成本,又沒法適應不斷迭代的產(chǎn)品需求。
2 粗粒度硬件結(jié)構導致資源利用率低。FPGA達不到100%的資源利用率,這是對資源的一種浪費,體現(xiàn)在經(jīng)濟上是提高了成本。
以上兩方面都可以歸結(jié)到成本這一點上,但是如果能夠解決1問題,那么2問題也就迎刃而解了。因為如果FPGA的市場應用多了,那么其制造成本也會下降。1問題的解決一直在路上,但是一直沒有解決。HLS等類似軟件編程語言的出現(xiàn)可以提高FPGA的開發(fā)效率,但是相比于純軟件開發(fā)語言還是存在一定復雜性。而相對于RTL語言來說,HLS語言的硬件描述性不夠鮮明。所以硬件開發(fā)人員更多的會選擇硬件描述清晰的verilog,system Verilog等語言。
這些缺點并不意味著我們對FPGA在未來AI應用中抱著悲觀的想法,一個是未來場景的復雜性和多樣性,一個是FPGA也在尋求改進和發(fā)展。第一個決定了FPGA一定能夠在AI中活下去,第二個決定了FPGA在AI中活的怎么樣。
接下來我們來了解一下FPGA在微軟云azure中的應用。
Azure stack edge
微軟在邊緣做了產(chǎn)品布局,依據(jù)邊緣的規(guī)模,提供了兩類產(chǎn)品。一類是針對計算任務繁重的企業(yè)用戶,其提供了基于GPU和FPGA的Pro設備,能夠?qū)崿F(xiàn)邊緣端的數(shù)據(jù)預處理,包括聚合數(shù)據(jù),修改數(shù)據(jù)等,以及運行ML模型。另外一類是針對隨時移動的用戶,提供了小而便攜的設備。這些設備使用了intel針對視覺處理專門研發(fā)的VPU芯片。
雖然在2024年基于FPGA的pro設備將停用,而遷移到基于GPU的設備上。但是VPU芯片的出現(xiàn),反映了在邊緣計算應用中,F(xiàn)PGA所發(fā)生的可能轉(zhuǎn)變。在多變的邊緣目標上,小芯片能夠更有針對性的保留有效的計算資源,這樣精簡了結(jié)構,降低了功耗。
Intel VPU是集成了Leon處理器,12個SHAVE計算核以及一個DRAM的SoC結(jié)構。SHAVE是一個向量處理器,能夠進行大量的向量運算。所以VPU能夠適合運行ML模型,以及進行一些圖像處理方面的工作。目前VPU能夠支持21種神經(jīng)網(wǎng)絡算子,包括conv,relu等。這些神經(jīng)網(wǎng)絡可以通過其編譯器工具NCAPI轉(zhuǎn)化為可以在VPU中執(zhí)行的指令。目前能夠支持inception,mobilenet,googlenet,ssd,alexnet等很多卷積和LSTM網(wǎng)絡。
超算中心的FPGA
微軟在數(shù)據(jù)中心系統(tǒng)性的構建了一個FPGA集群,這個FPGA集群能夠?qū)崿F(xiàn)內(nèi)部和外部server的互聯(lián)。在頂層軟件的分配調(diào)度下,可以執(zhí)行多種不同的任務,包括web search ranking, deep neural networks, expensive compression等。
FPGA集群的基本結(jié)構如上圖所示:包括了兩塊CPU和一塊altera的FPGA芯片。FPGA通過PCIE和一個NIC來和兩塊CPU進行通信。NIC保證了FPGA可以實現(xiàn)原位處理網(wǎng)絡數(shù)據(jù)包。FPGA之間還通過ToR實現(xiàn)互聯(lián),ToR保證了一個任務能夠被分割為多個子任務,然后分配給多個FPGA處理。
在邏輯層面,F(xiàn)PGA定義了Lightweight Transport Layer(LTL)和Elastic Router(ER)。LTL實現(xiàn)了不同的FPGA芯片之間的互聯(lián),這樣保證了遠程FPGA之間的通信,使得整個FPGA集群處于一個整體中。ER是用于同一個FPGA芯片中不同任務的互聯(lián)。LTL和ER的混合使用能夠靈活的為FPGA分配不同任務,滿足數(shù)據(jù)中心任務多樣性需求。
ToR形成了三層結(jié)構,L0層連接了24個FPGA設備,L1連接了960個設備,L2級可能連接了超過幾百萬的設備。L0級的round-trip延時大概在2.8us,L1級平均在7.7us,而L2級在22us。
FPGA架構
微軟的神經(jīng)網(wǎng)絡加速器主要是針對單batch低延遲來設計的,其所期望的是能夠最大限度的將weight緩存在片上,通過將一個大的網(wǎng)絡進行分割,分配到多個FPGA芯片上實現(xiàn)。其分割的子網(wǎng)絡的權重大小可以適配一顆FPGA芯片上weight的緩存空間。架構將計算重點放在矩陣-向量乘法上,這個也是合理的,因為LSTM,CNN網(wǎng)絡大部分計算量都由矩陣乘法承擔。
其它函數(shù)運算,包括向量加法,乘法,sigmoid,tanh等函數(shù),則統(tǒng)一到同一個多功能函數(shù)模塊中。這樣做的好處是簡化了FPGA架構,同時也簡化了數(shù)據(jù)流。因此其整個架構中沒有多端口共享的memory,不存在對多數(shù)據(jù)訪問沖突的處理。同時也簡化了指令,消除了對指令依賴關系的判斷和檢測。FPGA架構中有對指令的進一步分解和處理,所以軟件端的指令非常簡單,就是通過C語言的宏定義實現(xiàn)的。
其矩陣向量乘法結(jié)構是由多個dot-product結(jié)構組成的,多個dot-product和累加器形成了一個tile,然后多個tile就構成了一個大的矩陣向量乘法。
軟件結(jié)構
神經(jīng)網(wǎng)絡加速器的工具鏈包括:CNTK(微軟自定義的一個指令級描述),tensorflow或者caffe的圖文件作為輸入,然后通過前端轉(zhuǎn)化為IR表示,然后依據(jù)網(wǎng)絡大小以及FPGA中資源情況對圖進行分割和優(yōu)化,然后產(chǎn)生硬件可執(zhí)行指令。如果網(wǎng)絡較大,那么網(wǎng)絡可以被分割成多個子圖,部署到不同F(xiàn)PGA上。如果一個矩陣乘法過大,那么可以被分割成多塊來實現(xiàn)。對于不可實現(xiàn)的神經(jīng)網(wǎng)絡算子,工具鏈可以將多個不可實現(xiàn)算子組合成一個子圖,在CPU上完成。
編輯:jq
-
FPGA
+關注
關注
1659文章
22368瀏覽量
633038 -
云計算
+關注
關注
39文章
8010瀏覽量
143858 -
高帶寬
+關注
關注
0文章
49瀏覽量
7937 -
邊緣計算
+關注
關注
22文章
3514瀏覽量
53088
原文標題:FPGA在microsoft azure的應用
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
微軟Microsoft Copilot Studio智能體平臺全面升級
使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025構建高性能AI應用
Microsoft Azure Cobalt 200 開啟AI時代Arm架構計算新紀元
Esri推出適用于Microsoft Fabric的最新ArcGIS集成功能
如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試
如何使用 NuMaker 板和 Mbed OS 上的連接字符串連接到 Azure IoT?
舵機原理簡述!
微軟正式發(fā)布Microsoft行星計算機專業(yè)版
Microsoft Edge瀏覽器iOS端插件功能上線
PLL技術在FPGA中的動態(tài)調(diào)頻與展頻功能應用
微軟 Build 2025大會:筑牢智能體時代的安全新防線
微軟Microsoft Azure AI Foundry國際版的十大技術突破
如何從 Microsoft Visual C++ 應用程序 (CyAPI.h) 訪問 CYUSB3014 芯片組的 i2c 接口?
DXC攜手SAP與Microsoft,簡化并加速企業(yè)轉(zhuǎn)型
簡述FPGA在microsoft azure的應用
評論