在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解FPGA/CPU/GPU/ASIC的區(qū)別

半導(dǎo)體芯科技SiSC ? 來(lái)源:半導(dǎo)體芯科技SiSC ? 作者:半導(dǎo)體芯科技SiS ? 2022-02-23 15:55 ? 次閱讀

一、為什么使用 FPGA?

眾所周知,通用處理器(CPU)的摩爾定律已入暮年,而機(jī)器學(xué)習(xí)和 Web 服務(wù)的規(guī)模卻在指數(shù)級(jí)增長(zhǎng)。

人們使用定制硬件來(lái)加速常見(jiàn)的計(jì)算任務(wù),然而日新月異的行業(yè)又要求這些定制的硬件可被重新編程來(lái)執(zhí)行新類(lèi)型的計(jì)算任務(wù)。

FPGA 正是一種硬件可重構(gòu)的體系結(jié)構(gòu)。它的英文全稱(chēng)是Field Programmable Gate Array,中文名是現(xiàn)場(chǎng)可編程門(mén)陣列。

FPGA常年來(lái)被用作專(zhuān)用芯片(ASIC)的小批量替代品,然而近年來(lái)在微軟、百度等公司的數(shù)據(jù)中心大規(guī)模部署,以同時(shí)提供強(qiáng)大的計(jì)算能力和足夠的靈活性。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

不同體系結(jié)構(gòu)性能和靈活性的比較

FPGA 為什么快?「都是同行襯托得好」。

CPU、GPU 都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行、共享內(nèi)存。FPGA 之所以比 CPU 甚至 GPU 能效高,本質(zhì)上是無(wú)指令、無(wú)需共享內(nèi)存的體系結(jié)構(gòu)帶來(lái)的福利。

馮氏結(jié)構(gòu)中,由于執(zhí)行單元(如 CPU 核)可能執(zhí)行任意指令,就需要有指令存儲(chǔ)器、譯碼器、各種指令的運(yùn)算器、分支跳轉(zhuǎn)處理邏輯。由于指令流的控制邏輯復(fù)雜,不可能有太多條獨(dú)立的指令流,因此 GPU 使用 SIMD(單指令流多數(shù)據(jù)流)來(lái)讓多個(gè)執(zhí)行單元以同樣的步調(diào)處理不同的數(shù)據(jù),CPU 也支持 SIMD 指令。

而 FPGA 每個(gè)邏輯單元的功能在重編程(燒寫(xiě))時(shí)就已經(jīng)確定,不需要指令。

馮氏結(jié)構(gòu)中使用內(nèi)存有兩種作用。一是保存狀態(tài),二是在執(zhí)行單元間通信

由于內(nèi)存是共享的,就需要做訪(fǎng)問(wèn)仲裁;為了利用訪(fǎng)問(wèn)局部性,每個(gè)執(zhí)行單元有一個(gè)私有的緩存,這就要維持執(zhí)行部件間緩存的一致性。

對(duì)于保存狀態(tài)的需求,F(xiàn)PGA 中的寄存器和片上內(nèi)存(BRAM)是屬于各自的控制邏輯的,無(wú)需不必要的仲裁和緩存。

對(duì)于通信的需求,F(xiàn)PGA 每個(gè)邏輯單元與周?chē)壿媶卧倪B接在重編程(燒寫(xiě))時(shí)就已經(jīng)確定,并不需要通過(guò)共享內(nèi)存來(lái)通信。

說(shuō)了這么多三千英尺高度的話(huà),F(xiàn)PGA 實(shí)際的表現(xiàn)如何呢?我們分別來(lái)看計(jì)算密集型任務(wù)和通信密集型任務(wù)。

計(jì)算密集型任務(wù)的例子包括矩陣運(yùn)算、圖像處理、機(jī)器學(xué)習(xí)、壓縮、非對(duì)稱(chēng)加密、Bing 搜索的排序等。這類(lèi)任務(wù)一般是 CPU 把任務(wù)卸載(offload)給 FPGA 去執(zhí)行。對(duì)這類(lèi)任務(wù),目前我們正在用的 Altera(似乎應(yīng)該叫 Intel 了,我還是習(xí)慣叫 Altera……)Stratix V FPGA 的整數(shù)乘法運(yùn)算性能與 20 核的 CPU 基本相當(dāng),浮點(diǎn)乘法運(yùn)算性能與 8 核的 CPU 基本相當(dāng),而比 GPU 低一個(gè)數(shù)量級(jí)。我們即將用上的下一代 FPGA,Stratix 10,將配備更多的乘法器和硬件浮點(diǎn)運(yùn)算部件,從而理論上可達(dá)到與現(xiàn)在的頂級(jí) GPU 計(jì)算卡旗鼓相當(dāng)?shù)挠?jì)算能力。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 的整數(shù)乘法運(yùn)算能力(估計(jì)值,不使用 DSP,根據(jù)邏輯資源占用量估計(jì))

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 的浮點(diǎn)乘法運(yùn)算能力(估計(jì)值,float16 用軟核,float 32 用硬核)

在數(shù)據(jù)中心,F(xiàn)PGA 相比 GPU 的核心優(yōu)勢(shì)在于延遲。

像 Bing 搜索排序這樣的任務(wù),要盡可能快地返回搜索結(jié)果,就需要盡可能降低每一步的延遲。

如果使用 GPU 來(lái)加速,要想充分利用 GPU 的計(jì)算能力,batch size 就不能太小,延遲將高達(dá)毫秒量級(jí)。

使用 FPGA 來(lái)加速的話(huà),只需要微秒級(jí)的 PCIe 延遲(我們現(xiàn)在的 FPGA 是作為一塊 PCIe 加速卡)。

未來(lái) Intel 推出通過(guò) QPI 連接的 Xeon + FPGA 之后,CPU 和 FPGA 之間的延遲更可以降到 100 納秒以下,跟訪(fǎng)問(wèn)主存沒(méi)什么區(qū)別了。

FPGA 為什么比 GPU 的延遲低這么多?

這本質(zhì)上是體系結(jié)構(gòu)的區(qū)別。

FPGA 同時(shí)擁有流水線(xiàn)并行和數(shù)據(jù)并行,而 GPU 幾乎只有數(shù)據(jù)并行(流水線(xiàn)深度受限)。

例如處理一個(gè)數(shù)據(jù)包有 10 個(gè)步驟,F(xiàn)PGA 可以搭建一個(gè) 10 級(jí)流水線(xiàn),流水線(xiàn)的不同級(jí)在處理不同的數(shù)據(jù)包,每個(gè)數(shù)據(jù)包流經(jīng) 10 級(jí)之后處理完成。每處理完成一個(gè)數(shù)據(jù)包,就能馬上輸出。

而 GPU 的數(shù)據(jù)并行方法是做 10 個(gè)計(jì)算單元,每個(gè)計(jì)算單元也在處理不同的數(shù)據(jù)包,然而所有的計(jì)算單元必須按照統(tǒng)一的步調(diào),做相同的事情(SIMD,Single Instruction Multiple Data)。這就要求 10 個(gè)數(shù)據(jù)包必須一起輸入、一起輸出,輸入輸出的延遲增加了。

當(dāng)任務(wù)是逐個(gè)而非成批到達(dá)的時(shí)候,流水線(xiàn)并行比數(shù)據(jù)并行可實(shí)現(xiàn)更低的延遲。因此對(duì)流式計(jì)算的任務(wù),F(xiàn)PGA 比 GPU 天生有延遲方面的優(yōu)勢(shì)。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

計(jì)算密集型任務(wù),CPU、GPU、FPGA、ASIC 的數(shù)量級(jí)比較(以 16 位整數(shù)乘法為例,數(shù)字僅為數(shù)量級(jí)的估計(jì))

ASIC 專(zhuān)用芯片在吞吐量、延遲和功耗三方面都無(wú)可指摘,但微軟并沒(méi)有采用,出于兩個(gè)原因:

數(shù)據(jù)中心的計(jì)算任務(wù)是靈活多變的,而 ASIC 研發(fā)成本高、周期長(zhǎng)。好不容易大規(guī)模部署了一批某種神經(jīng)網(wǎng)絡(luò)的加速卡,結(jié)果另一種神經(jīng)網(wǎng)絡(luò)更火了,錢(qián)就白費(fèi)了。FPGA 只需要幾百毫秒就可以更新邏輯功能。FPGA 的靈活性可以保護(hù)投資,事實(shí)上,微軟現(xiàn)在的 FPGA 玩法與最初的設(shè)想大不相同。

數(shù)據(jù)中心是租給不同的租戶(hù)使用的,如果有的機(jī)器上有神經(jīng)網(wǎng)絡(luò)加速卡,有的機(jī)器上有 Bing 搜索加速卡,有的機(jī)器上有網(wǎng)絡(luò)虛擬化加速卡,任務(wù)的調(diào)度和服務(wù)器的運(yùn)維會(huì)很麻煩。使用 FPGA 可以保持?jǐn)?shù)據(jù)中心的同構(gòu)性。

接下來(lái)看通信密集型任務(wù)。

相比計(jì)算密集型任務(wù),通信密集型任務(wù)對(duì)每個(gè)輸入數(shù)據(jù)的處理不甚復(fù)雜,基本上簡(jiǎn)單算算就輸出了,這時(shí)通信往往會(huì)成為瓶頸。對(duì)稱(chēng)加密、防火墻、網(wǎng)絡(luò)虛擬化都是通信密集型的例子。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

通信密集型任務(wù),CPU、GPU、FPGA、ASIC 的數(shù)量級(jí)比較(以 64 字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包處理為例,數(shù)字僅為數(shù)量級(jí)的估計(jì))

對(duì)通信密集型任務(wù),F(xiàn)PGA 相比 CPU、GPU 的優(yōu)勢(shì)就更大了。

從吞吐量上講,F(xiàn)PGA 上的收發(fā)器可以直接接上 40 Gbps 甚至 100 Gbps 的網(wǎng)線(xiàn),以線(xiàn)速處理任意大小的數(shù)據(jù)包;而 CPU 需要從網(wǎng)卡把數(shù)據(jù)包收上來(lái)才能處理,很多網(wǎng)卡是不能線(xiàn)速處理 64 字節(jié)的小數(shù)據(jù)包的。盡管可以通過(guò)插多塊網(wǎng)卡來(lái)達(dá)到高性能,但 CPU 和主板支持的 PCIe 插槽數(shù)量往往有限,而且網(wǎng)卡、交換機(jī)本身也價(jià)格不菲。

從延遲上講,網(wǎng)卡把數(shù)據(jù)包收到 CPU,CPU 再發(fā)給網(wǎng)卡,即使使用 DPDK 這樣高性能的數(shù)據(jù)包處理框架,延遲也有 4~5 微秒。更嚴(yán)重的問(wèn)題是,通用 CPU 的延遲不夠穩(wěn)定。例如當(dāng)負(fù)載較高時(shí),轉(zhuǎn)發(fā)延遲可能升到幾十微秒甚至更高(如下圖所示);現(xiàn)代操作系統(tǒng)中的時(shí)鐘中斷和任務(wù)調(diào)度也增加了延遲的不確定性。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

ClickNP(FPGA)與 Dell S6000 交換機(jī)(商用交換機(jī)芯片)、Click+DPDK(CPU)和 Linux(CPU)的轉(zhuǎn)發(fā)延遲比較,error bar 表示 5% 和 95%。來(lái)源:[5]

雖然 GPU 也可以高性能處理數(shù)據(jù)包,但 GPU 是沒(méi)有網(wǎng)口的,意味著需要首先把數(shù)據(jù)包由網(wǎng)卡收上來(lái),再讓 GPU 去做處理。這樣吞吐量受到 CPU 和/或網(wǎng)卡的限制。GPU 本身的延遲就更不必說(shuō)了。

那么為什么不把這些網(wǎng)絡(luò)功能做進(jìn)網(wǎng)卡,或者使用可編程交換機(jī)呢?ASIC 的靈活性仍然是硬傷。

盡管目前有越來(lái)越強(qiáng)大的可編程交換機(jī)芯片,比如支持 P4 語(yǔ)言的 Tofino,ASIC 仍然不能做復(fù)雜的有狀態(tài)處理,比如某種自定義的加密算法

綜上,在數(shù)據(jù)中心里 FPGA 的主要優(yōu)勢(shì)是穩(wěn)定又極低的延遲,適用于流式的計(jì)算密集型任務(wù)和通信密集型任務(wù)。

二、微軟部署 FPGA 的實(shí)踐

2016 年 9 月,《連線(xiàn)》(Wired)雜志發(fā)表了一篇《微軟把未來(lái)押注在 FPGA 上》的報(bào)道 [3],講述了 Catapult 項(xiàng)目的前世今生。

緊接著,Catapult 項(xiàng)目的老大 Doug Burger 在 Ignite 2016 大會(huì)上與微軟 CEO Satya Nadella 一起做了 FPGA 加速機(jī)器翻譯的演示。

演示的總計(jì)算能力是 103 萬(wàn) T ops,也就是 1.03 Exa-op,相當(dāng)于 10 萬(wàn)塊頂級(jí) GPU 計(jì)算卡。一塊 FPGA(加上板上內(nèi)存和網(wǎng)絡(luò)接口等)的功耗大約是 30 W,僅增加了整個(gè)服務(wù)器功耗的十分之一。

Ignite 2016 上的演示:每秒 1 Exa-op (10^18) 的機(jī)器翻譯運(yùn)算能力。

微軟部署 FPGA 并不是一帆風(fēng)順的。對(duì)于把 FPGA 部署在哪里這個(gè)問(wèn)題,大致經(jīng)歷了三個(gè)階段:

專(zhuān)用的 FPGA 集群,里面插滿(mǎn)了 FPGA;

每臺(tái)機(jī)器一塊 FPGA,采用專(zhuān)用網(wǎng)絡(luò)連接;

每臺(tái)機(jī)器一塊 FPGA,放在網(wǎng)卡和交換機(jī)之間,共享服務(wù)器網(wǎng)絡(luò);

第一個(gè)階段是專(zhuān)用集群,里面插滿(mǎn)了 FPGA 加速卡,就像是一個(gè) FPGA 組成的超級(jí)計(jì)算機(jī)。

下圖是最早的 BFB 實(shí)驗(yàn)板,一塊 PCIe 卡上放了 6 塊 FPGA,每臺(tái) 1U 服務(wù)器上又插了 4 塊 PCIe 卡。

可以注意到該公司的名字。在半導(dǎo)體行業(yè),只要批量足夠大,芯片的價(jià)格都將趨向于沙子的價(jià)格。據(jù)傳聞,正是由于該公司不肯給「沙子的價(jià)格」 ,才選擇了另一家公司。

當(dāng)然現(xiàn)在數(shù)據(jù)中心領(lǐng)域用兩家公司 FPGA 的都有。只要規(guī)模足夠大,對(duì) FPGA 價(jià)格過(guò)高的擔(dān)心將是不必要的。

最早的 BFB 實(shí)驗(yàn)板,1U 服務(wù)器上插了 4 塊 FPGA 卡。像超級(jí)計(jì)算機(jī)一樣的部署方式,意味著有專(zhuān)門(mén)的一個(gè)機(jī)柜全是上圖這種裝了 24 塊 FPGA 的服務(wù)器(下圖左)。

這種方式有幾個(gè)問(wèn)題:

不同機(jī)器的 FPGA 之間無(wú)法通信,F(xiàn)PGA 所能處理問(wèn)題的規(guī)模受限于單臺(tái)服務(wù)器上 FPGA 的數(shù)量;

數(shù)據(jù)中心里的其他機(jī)器要把任務(wù)集中發(fā)到這個(gè)機(jī)柜,構(gòu)成了 in-cast,網(wǎng)絡(luò)延遲很難做到穩(wěn)定。

FPGA 專(zhuān)用機(jī)柜構(gòu)成了單點(diǎn)故障,只要它一壞,誰(shuí)都別想加速了;

裝 FPGA 的服務(wù)器是定制的,冷卻、運(yùn)維都增加了麻煩。

一種不那么激進(jìn)的方式是,在每個(gè)機(jī)柜一面部署一臺(tái)裝滿(mǎn) FPGA 的服務(wù)器(上圖中)。這避免了上述問(wèn)題 (2)(3),但 (1)(4) 仍然沒(méi)有解決。

第二個(gè)階段,為了保證數(shù)據(jù)中心中服務(wù)器的同構(gòu)性(這也是不用 ASIC 的一個(gè)重要原因),在每臺(tái)服務(wù)器上插一塊 FPGA(上圖右),F(xiàn)PGA 之間通過(guò)專(zhuān)用網(wǎng)絡(luò)連接。這也是微軟在 ISCA'14 上所發(fā)表論文采用的部署方式。

FPGA 采用 Stratix V D5,有 172K 個(gè) ALM,2014 個(gè) M20K 片上內(nèi)存,1590 個(gè) DSP。板上有一個(gè) 8GB DDR3-1333 內(nèi)存,一個(gè) PCIe Gen3 x8 接口,兩個(gè) 10 Gbps 網(wǎng)絡(luò)接口。一個(gè)機(jī)柜之間的 FPGA 采用專(zhuān)用網(wǎng)絡(luò)連接,一組 10G 網(wǎng)口 8 個(gè)一組連成環(huán),另一組 10G 網(wǎng)口 6 個(gè)一組連成環(huán),不使用交換機(jī)。

這樣一個(gè) 1632 臺(tái)服務(wù)器、1632 塊 FPGA 的集群,把 Bing 的搜索結(jié)果排序整體性能提高到了 2 倍(換言之,節(jié)省了一半的服務(wù)器)。

如下圖所示,每 8 塊 FPGA 穿成一條鏈,中間用前面提到的 10 Gbps 專(zhuān)用網(wǎng)線(xiàn)來(lái)通信。這 8 塊 FPGA 各司其職,有的負(fù)責(zé)從文檔中提取特征(黃色),有的負(fù)責(zé)計(jì)算特征表達(dá)式(綠色),有的負(fù)責(zé)計(jì)算文檔的得分(紅色)。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 加速 Bing 的搜索排序過(guò)程。來(lái)源:[1]

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 不僅降低了 Bing 搜索的延遲,還顯著提高了延遲的穩(wěn)定性。來(lái)源:[4]

詳解FPGA/CPU/GPU/ASIC的區(qū)別

本地和遠(yuǎn)程的 FPGA 均可以降低搜索延遲,遠(yuǎn)程 FPGA 的通信延遲相比搜索延遲可忽略。來(lái)源:[4]

FPGA 在 Bing 的部署取得了成功,Catapult 項(xiàng)目繼續(xù)在公司內(nèi)擴(kuò)張。

微軟內(nèi)部擁有最多服務(wù)器的,就是云計(jì)算 Azure 部門(mén)了。

Azure 部門(mén)急需解決的問(wèn)題是網(wǎng)絡(luò)和存儲(chǔ)虛擬化帶來(lái)的開(kāi)銷(xiāo)。Azure 把虛擬機(jī)賣(mài)給客戶(hù),需要給虛擬機(jī)的網(wǎng)絡(luò)提供防火墻、負(fù)載均衡、隧道、NAT 等網(wǎng)絡(luò)功能。由于云存儲(chǔ)的物理存儲(chǔ)跟計(jì)算節(jié)點(diǎn)是分離的,需要把數(shù)據(jù)從存儲(chǔ)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)搬運(yùn)過(guò)來(lái),還要進(jìn)行壓縮和加密。

在 1 Gbps 網(wǎng)絡(luò)和機(jī)械硬盤(pán)的時(shí)代,網(wǎng)絡(luò)和存儲(chǔ)虛擬化的 CPU 開(kāi)銷(xiāo)不值一提。隨著網(wǎng)絡(luò)和存儲(chǔ)速度越來(lái)越快,網(wǎng)絡(luò)上了 40 Gbps,一塊 SSD 的吞吐量也能到 1 GB/s,CPU 漸漸變得力不從心了。

例如 Hyper-V 虛擬交換機(jī)只能處理 25 Gbps 左右的流量,不能達(dá)到 40 Gbps 線(xiàn)速,當(dāng)數(shù)據(jù)包較小時(shí)性能更差;AES-256 加密和 SHA-1 簽名,每個(gè) CPU 核只能處理 100 MB/s,只是一塊 SSD 吞吐量的十分之一。

為了加速網(wǎng)絡(luò)功能和存儲(chǔ)虛擬化,微軟把 FPGA 部署在網(wǎng)卡和交換機(jī)之間。

如下圖所示,每個(gè) FPGA 有一個(gè) 4 GB DDR3-1333 DRAM,通過(guò)兩個(gè) PCIe Gen3 x8 接口連接到一個(gè) CPU socket(物理上是 PCIe Gen3 x16 接口,因?yàn)?FPGA 沒(méi)有 x16 的硬核,邏輯上當(dāng)成兩個(gè) x8 的用)。物理網(wǎng)卡(NIC)就是普通的 40 Gbps 網(wǎng)卡,僅用于宿主機(jī)與網(wǎng)絡(luò)之間的通信。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

Azure 服務(wù)器部署 FPGA 的架構(gòu)。來(lái)源:[6]

FPGA(SmartNIC)對(duì)每個(gè)虛擬機(jī)虛擬出一塊網(wǎng)卡,虛擬機(jī)通過(guò) SR-IOV 直接訪(fǎng)問(wèn)這塊虛擬網(wǎng)卡。原本在虛擬交換機(jī)里面的數(shù)據(jù)平面功能被移到了 FPGA 里面,虛擬機(jī)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包均不需要 CPU 參與,也不需要經(jīng)過(guò)物理網(wǎng)卡(NIC)。這樣不僅節(jié)約了可用于出售的 CPU 資源,還提高了虛擬機(jī)的網(wǎng)絡(luò)性能(25 Gbps),把同數(shù)據(jù)中心虛擬機(jī)之間的網(wǎng)絡(luò)延遲降低了 10 倍。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

網(wǎng)絡(luò)虛擬化的加速架構(gòu)。來(lái)源:[6]

這就是微軟部署 FPGA 的第三代架構(gòu),也是目前「每臺(tái)服務(wù)器一塊 FPGA」大規(guī)模部署所采用的架構(gòu)。

FPGA 復(fù)用主機(jī)網(wǎng)絡(luò)的初心是加速網(wǎng)絡(luò)和存儲(chǔ),更深遠(yuǎn)的影響則是把 FPGA 之間的網(wǎng)絡(luò)連接擴(kuò)展到了整個(gè)數(shù)據(jù)中心的規(guī)模,做成真正 cloud-scale 的「超級(jí)計(jì)算機(jī)」。

第二代架構(gòu)里面,F(xiàn)PGA 之間的網(wǎng)絡(luò)連接局限于同一個(gè)機(jī)架以?xún)?nèi),F(xiàn)PGA 之間專(zhuān)網(wǎng)互聯(lián)的方式很難擴(kuò)大規(guī)模,通過(guò) CPU 來(lái)轉(zhuǎn)發(fā)則開(kāi)銷(xiāo)太高。

第三代架構(gòu)中,F(xiàn)PGA 之間通過(guò) LTL (Lightweight Transport Layer) 通信。同一機(jī)架內(nèi)延遲在 3 微秒以?xún)?nèi);8 微秒以?xún)?nèi)可達(dá) 1000 塊 FPGA;20 微秒可達(dá)同一數(shù)據(jù)中心的所有 FPGA。第二代架構(gòu)盡管 8 臺(tái)機(jī)器以?xún)?nèi)的延遲更低,但只能通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn) 48 塊 FPGA。為了支持大范圍的 FPGA 間通信,第三代架構(gòu)中的 LTL 還支持 PFC 流控協(xié)議和 DCQCN 擁塞控制協(xié)議。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

縱軸:LTL 的延遲,橫軸:可達(dá)的 FPGA 數(shù)量。來(lái)源:[4]

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 內(nèi)的邏輯模塊關(guān)系,其中每個(gè) Role 是用戶(hù)邏輯(如 DNN 加速、網(wǎng)絡(luò)功能加速、加密),外面的部分負(fù)責(zé)各個(gè) Role 之間的通信及 Role 與外設(shè)之間的通信。來(lái)源:[4]

詳解FPGA/CPU/GPU/ASIC的區(qū)別

FPGA 構(gòu)成的數(shù)據(jù)中心加速平面,介于網(wǎng)絡(luò)交換層(TOR、L1、L2)和傳統(tǒng)服務(wù)器軟件(CPU 上運(yùn)行的軟件)之間。來(lái)源:[4]

通過(guò)高帶寬、低延遲的網(wǎng)絡(luò)互聯(lián)的 FPGA 構(gòu)成了介于網(wǎng)絡(luò)交換層和傳統(tǒng)服務(wù)器軟件之間的數(shù)據(jù)中心加速平面。

除了每臺(tái)提供云服務(wù)的服務(wù)器都需要的網(wǎng)絡(luò)和存儲(chǔ)虛擬化加速,F(xiàn)PGA 上的剩余資源還可以用來(lái)加速 Bing 搜索、深度神經(jīng)網(wǎng)絡(luò)(DNN)等計(jì)算任務(wù)。

對(duì)很多類(lèi)型的應(yīng)用,隨著分布式 FPGA 加速器的規(guī)模擴(kuò)大,其性能提升是超線(xiàn)性的。

例如 CNN inference,當(dāng)只用一塊 FPGA 的時(shí)候,由于片上內(nèi)存不足以放下整個(gè)模型,需要不斷訪(fǎng)問(wèn) DRAM 中的模型權(quán)重,性能瓶頸在 DRAM;如果 FPGA 的數(shù)量足夠多,每塊 FPGA 負(fù)責(zé)模型中的一層或者一層中的若干個(gè)特征,使得模型權(quán)重完全載入片上內(nèi)存,就消除了 DRAM 的性能瓶頸,完全發(fā)揮出 FPGA 計(jì)算單元的性能。

當(dāng)然,拆得過(guò)細(xì)也會(huì)導(dǎo)致通信開(kāi)銷(xiāo)的增加。把任務(wù)拆分到分布式 FPGA 集群的關(guān)鍵在于平衡計(jì)算和通信。

在 MICRO'16 會(huì)議上,微軟提出了 Hardware as a Service (HaaS) 的概念,即把硬件作為一種可調(diào)度的云服務(wù),使得 FPGA 服務(wù)的集中調(diào)度、管理和大規(guī)模部署成為可能。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

Hardware as a Service (HaaS)。來(lái)源:[4]

從第一代裝滿(mǎn) FPGA 的專(zhuān)用服務(wù)器集群,到第二代通過(guò)專(zhuān)網(wǎng)連接的 FPGA 加速卡集群,到目前復(fù)用數(shù)據(jù)中心網(wǎng)絡(luò)的大規(guī)模 FPGA 云,三個(gè)思想指導(dǎo)我們的路線(xiàn):

硬件和軟件不是相互取代的關(guān)系,而是合作的關(guān)系;

必須具備靈活性,即用軟件定義的能力;

必須具備可擴(kuò)放性(scalability)。

三、FPGA 在云計(jì)算中的角色

FPGA 在云規(guī)模的網(wǎng)絡(luò)互連系統(tǒng)中應(yīng)當(dāng)充當(dāng)怎樣的角色?

如何高效、可擴(kuò)放地對(duì) FPGA + CPU 的異構(gòu)系統(tǒng)進(jìn)行編程?

我對(duì) FPGA 業(yè)界主要的遺憾是,F(xiàn)PGA 在數(shù)據(jù)中心的主流用法,從除微軟外的互聯(lián)網(wǎng)巨頭,到兩大 FPGA 廠(chǎng)商,再到學(xué)術(shù)界,大多是把 FPGA 當(dāng)作跟 GPU 一樣的計(jì)算密集型任務(wù)的加速卡。然而 FPGA 真的很適合做 GPU 的事情嗎?

前面講過(guò),F(xiàn)PGA 和 GPU 最大的區(qū)別在于體系結(jié)構(gòu),F(xiàn)PGA 更適合做需要低延遲的流式處理,GPU 更適合做大批量同構(gòu)數(shù)據(jù)的處理。

由于很多人打算把 FPGA 當(dāng)作計(jì)算加速卡來(lái)用,兩大 FPGA 廠(chǎng)商推出的高層次編程模型也是基于 OpenCL,模仿 GPU 基于共享內(nèi)存的批處理模式。CPU 要交給 FPGA 做一件事,需要先放進(jìn) FPGA 板上的 DRAM,然后告訴 FPGA 開(kāi)始執(zhí)行,F(xiàn)PGA 把執(zhí)行結(jié)果放回 DRAM,再通知 CPU 去取回。

CPU 和 FPGA 之間本來(lái)可以通過(guò) PCIe 高效通信,為什么要到板上的 DRAM 繞一圈?也許是工程實(shí)現(xiàn)的問(wèn)題,我們發(fā)現(xiàn)通過(guò) OpenCL 寫(xiě) DRAM、啟動(dòng) kernel、讀 DRAM 一個(gè)來(lái)回,需要 1.8 毫秒。而通過(guò) PCIe DMA 來(lái)通信,卻只要 1~2 微秒。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

PCIe I/O channel 與 OpenCL 的性能比較。縱坐標(biāo)為對(duì)數(shù)坐標(biāo)。來(lái)源:[5]

OpenCL 里面多個(gè) kernel 之間的通信就更夸張了,默認(rèn)的方式也是通過(guò)共享內(nèi)存。

本文開(kāi)篇就講,F(xiàn)PGA 比 CPU 和 GPU 能效高,體系結(jié)構(gòu)上的根本優(yōu)勢(shì)是無(wú)指令、無(wú)需共享內(nèi)存。使用共享內(nèi)存在多個(gè) kernel 之間通信,在順序通信(FIFO)的情況下是毫無(wú)必要的。況且 FPGA 上的 DRAM 一般比 GPU 上的 DRAM 慢很多。

因此我們提出了 ClickNP 網(wǎng)絡(luò)編程框架 [5],使用管道(channel)而非共享內(nèi)存來(lái)在執(zhí)行單元(element/kernel)間、執(zhí)行單元和主機(jī)軟件間進(jìn)行通信。

需要共享內(nèi)存的應(yīng)用,也可以在管道的基礎(chǔ)上實(shí)現(xiàn),畢竟 CSP(Communicating Sequential Process)和共享內(nèi)存理論上是等價(jià)的嘛。ClickNP 目前還是在 OpenCL 基礎(chǔ)上的一個(gè)框架,受到 C 語(yǔ)言描述硬件的局限性(當(dāng)然 HLS 比 Verilog 的開(kāi)發(fā)效率確實(shí)高多了)。理想的硬件描述語(yǔ)言,大概不會(huì)是 C 語(yǔ)言吧。

詳解FPGA/CPU/GPU/ASIC的區(qū)別

ClickNP 使用 channel 在 FPGA 和 CPU 間通信,來(lái)源:[5]

低延遲的流式處理,需要最多的地方就是通信。

然而 CPU 由于并行性的限制和操作系統(tǒng)的調(diào)度,做通信效率不高,延遲也不穩(wěn)定。

此外,通信就必然涉及到調(diào)度和仲裁,CPU 由于單核性能的局限和核間通信的低效,調(diào)度、仲裁性能受限,硬件則很適合做這種重復(fù)工作。因此我的博士研究把 FPGA 定義為通信的「大管家」,不管是服務(wù)器跟服務(wù)器之間的通信,虛擬機(jī)跟虛擬機(jī)之間的通信,進(jìn)程跟進(jìn)程之間的通信,CPU 跟存儲(chǔ)設(shè)備之間的通信,都可以用 FPGA 來(lái)加速。

成也蕭何,敗也蕭何。缺少指令同時(shí)是 FPGA 的優(yōu)勢(shì)和軟肋。

每做一點(diǎn)不同的事情,就要占用一定的 FPGA 邏輯資源。如果要做的事情復(fù)雜、重復(fù)性不強(qiáng),就會(huì)占用大量的邏輯資源,其中的大部分處于閑置狀態(tài)。這時(shí)就不如用馮·諾依曼結(jié)構(gòu)的處理器。

數(shù)據(jù)中心里的很多任務(wù)有很強(qiáng)的局部性和重復(fù)性:一部分是虛擬化平臺(tái)需要做的網(wǎng)絡(luò)和存儲(chǔ),這些都屬于通信;另一部分是客戶(hù)計(jì)算任務(wù)里的,比如機(jī)器學(xué)習(xí)、加密解密。

首先把 FPGA 用于它最擅長(zhǎng)的通信,日后也許也會(huì)像 AWS 那樣把 FPGA 作為計(jì)算加速卡租給客戶(hù)。

不管通信還是機(jī)器學(xué)習(xí)、加密解密,算法都是很復(fù)雜的,如果試圖用 FPGA 完全取代 CPU,勢(shì)必會(huì)帶來(lái) FPGA 邏輯資源極大的浪費(fèi),也會(huì)提高 FPGA 程序的開(kāi)發(fā)成本。更實(shí)用的做法是FPGA 和 CPU 協(xié)同工作,局部性和重復(fù)性強(qiáng)的歸 FPGA,復(fù)雜的歸 CPU。

當(dāng)我們用 FPGA 加速了 Bing 搜索、深度學(xué)習(xí)等越來(lái)越多的服務(wù);當(dāng)網(wǎng)絡(luò)虛擬化、存儲(chǔ)虛擬化等基礎(chǔ)組件的數(shù)據(jù)平面被 FPGA 把持;當(dāng) FPGA 組成的「數(shù)據(jù)中心加速平面」成為網(wǎng)絡(luò)和服務(wù)器之間的天塹……似乎有種感覺(jué),F(xiàn)PGA 將掌控全局,CPU 上的計(jì)算任務(wù)反而變得碎片化,受 FPGA 的驅(qū)使。以往我們是 CPU 為主,把重復(fù)的計(jì)算任務(wù)卸載(offload)到 FPGA 上;以后會(huì)不會(huì)變成 FPGA 為主,把復(fù)雜的計(jì)算任務(wù)卸載到 CPU 上呢?隨著 Xeon + FPGA 的問(wèn)世,古老的 SoC 會(huì)不會(huì)在數(shù)據(jù)中心煥發(fā)新生?

關(guān)于我們

《半導(dǎo)體芯科技》中國(guó)版(SiSC)是全球知名權(quán)威雜志Silicon Semiconductor的“姐妹”雜志,由香港雅時(shí)國(guó)際商訊出版,報(bào)道最新半導(dǎo)體產(chǎn)業(yè)新聞、深度分析和權(quán)威評(píng)論。為中國(guó)半導(dǎo)體行業(yè)提供全方位的商業(yè)、技術(shù)和產(chǎn)品信息。《半導(dǎo)體芯科技》內(nèi)容覆蓋半導(dǎo)體制造、先進(jìn)封裝、晶片生產(chǎn)、集成電路MEMS、平板顯示器等。雜志服務(wù)于中國(guó)半導(dǎo)體產(chǎn)業(yè),從IC設(shè)計(jì)、制造、封裝到應(yīng)用等方面。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21742

    瀏覽量

    603541
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGAASIC區(qū)別 FPGA性能優(yōu)化技巧

    FPGAASIC區(qū)別 FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和ASIC(專(zhuān)用集成電路)是兩種不同的集成電路技術(shù),它們?cè)诙鄠€(gè)方面存在顯著的
    的頭像 發(fā)表于 12-02 09:51 ?226次閱讀

    ASIC集成電路與FPGA區(qū)別

    ASIC(專(zhuān)用集成電路)與FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)是兩種不同的集成電路技術(shù),它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別。以下是兩者的主要差異: 一、設(shè)計(jì)與制造 ASIC 是為特定應(yīng)用定制設(shè)計(jì)的集
    的頭像 發(fā)表于 11-20 15:02 ?349次閱讀

    FPGAASIC在大模型推理加速中的應(yīng)用

    隨著現(xiàn)在AI的快速發(fā)展,使用FPGAASIC進(jìn)行推理加速的研究也越來(lái)越多,從目前的市場(chǎng)來(lái)說(shuō),有些公司已經(jīng)有了專(zhuān)門(mén)做推理的ASIC,像Groq的LPU,專(zhuān)門(mén)針對(duì)大語(yǔ)言模型的推理做了優(yōu)化,因此相比
    的頭像 發(fā)表于 10-29 14:12 ?464次閱讀
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>ASIC</b>在大模型推理加速中的應(yīng)用

    gpu服務(wù)器與cpu服務(wù)器的區(qū)別對(duì)比,終于知道怎么選了!

    gpu服務(wù)器與cpu服務(wù)器的區(qū)別主要體現(xiàn)在架構(gòu)設(shè)計(jì)、性能特點(diǎn)、能耗效率、應(yīng)用場(chǎng)景、市場(chǎng)定位等方面,在以上幾個(gè)方面均存在顯著差異。CPU服務(wù)器更適合數(shù)據(jù)庫(kù)管理和企業(yè)應(yīng)用,而
    的頭像 發(fā)表于 08-01 11:41 ?497次閱讀

    科普:GPUFPGA,有何異同

    (CPU)是第三種類(lèi)型。讓我們深入了解GPUFPGA之間的主要區(qū)別、它們的優(yōu)勢(shì)、常見(jiàn)用例以及何時(shí)選擇其中一種。什么是FPGA
    的頭像 發(fā)表于 06-15 08:27 ?658次閱讀
    科普:<b class='flag-5'>GPU</b>和<b class='flag-5'>FPGA</b>,有何異同

    到底什么是ASICFPGA

    上一篇文章,小棗君給大家介紹了CPUGPU。今天,我繼續(xù)介紹計(jì)算芯片領(lǐng)域的另外兩位主角——ASICFPGA。█ASIC(專(zhuān)用集成電路)上
    的頭像 發(fā)表于 04-16 08:05 ?210次閱讀
    到底什么是<b class='flag-5'>ASIC</b>和<b class='flag-5'>FPGA</b>?

    fpgagpu區(qū)別

    FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和GPU(圖形處理器)在多個(gè)方面存在顯著的區(qū)別
    的頭像 發(fā)表于 03-27 14:23 ?1216次閱讀

    fpgaasic在概念上有什么區(qū)別

    FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和ASIC(應(yīng)用特定集成電路)在概念上存在明顯的區(qū)別
    的頭像 發(fā)表于 03-27 14:12 ?931次閱讀

    fpgaasic區(qū)別

    FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和ASIC(專(zhuān)用集成電路)是兩種不同類(lèi)型的集成電路,它們?cè)谠O(shè)計(jì)靈活性、制造成本、應(yīng)用領(lǐng)域等方面有著顯著的區(qū)別
    的頭像 發(fā)表于 03-26 15:29 ?1795次閱讀

    一文詳解GPU硬件與CUDA開(kāi)發(fā)工具

    CPUGPU 的顯著區(qū)別是:一個(gè)典型的 CPU 擁有少數(shù)幾個(gè)快速的計(jì)算核心,而一個(gè)典型的 GPU 擁有幾百到幾千個(gè)不那么快速的計(jì)算核心
    的頭像 發(fā)表于 03-21 10:15 ?1191次閱讀
    一文<b class='flag-5'>詳解</b><b class='flag-5'>GPU</b>硬件與CUDA開(kāi)發(fā)工具

    汽車(chē)通信芯片匯總梳理

    一、CPU/GPU/FPGA/ASIC芯片CPU/GPU/F
    的頭像 發(fā)表于 02-20 16:44 ?1635次閱讀
    汽車(chē)通信芯片匯總梳理

    gpu是什么和cpu區(qū)別

    GPUCPU是兩種常見(jiàn)的計(jì)算機(jī)處理器,它們?cè)诮Y(jié)構(gòu)和功能上有很大的區(qū)別。在這篇文章中,我們將探討GPUCPU
    的頭像 發(fā)表于 02-20 11:24 ?1.9w次閱讀

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別有哪些

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別 GPU服務(wù)器是一種專(zhuān)門(mén)用于處理圖形運(yùn)算的服務(wù)器,而
    的頭像 發(fā)表于 01-30 15:31 ?873次閱讀

    到底什么是ASICFPGA

    ASICFPGA區(qū)別,還有它們和CPUGPU之間的區(qū)別
    發(fā)表于 01-23 19:08

    FPGAASICGPU誰(shuí)是最合適的AI芯片?

    CPUGPU遵循的是馮·諾依曼體系結(jié)構(gòu),指令要經(jīng)過(guò)存儲(chǔ)、譯碼、執(zhí)行等步驟,共享內(nèi)存在使用時(shí),要經(jīng)歷仲裁和緩存。 而FPGAASIC并不是馮·諾依曼架構(gòu)(是哈佛架構(gòu))。以
    發(fā)表于 01-06 11:20 ?1673次閱讀
    <b class='flag-5'>FPGA</b>、<b class='flag-5'>ASIC</b>、<b class='flag-5'>GPU</b>誰(shuí)是最合適的AI芯片?
    主站蜘蛛池模板: 男女视频在线观看免费高清观看| free chinese 国产精品| 亚洲 欧美 校园| 午夜影视在线免费观看| 伊人久久大香线焦在观看| 性欧美bbbbbb动漫| 成人影院免费观看| 日本肥妇| 在线精品国产成人综合第一页| 国产网红主播精品福利大秀专区| 久草资源免费| 日本操穴| 91福利网| 欧美a网站| 亚洲专区一区| 国产精品久久久香蕉| 亚洲欧美日本综合| www午夜| 一级特级毛片免费| 四虎影院官网| 免费国产网站| 97人人做人人爱| 免费一级毛片清高播放| 天天躁狠狠躁夜夜躁| 97人人艹| 狼人久久尹人香蕉尹人| 另类专区欧美| 5g国产精品影院天天5g天天爽| 性xxxxhd高清| 久久精品国产99国产精品澳门 | 6080伦理久久精品亚洲| 狠狠色狠狠色| 午夜影视体验区| 国产紧缚jvid| 九九re热| 欧美综合色| a天堂中文在线官网| 国产伦精品一区二区三区四区| 亚洲精品在线视频观看| 四虎影院在线观看网站| 激情天堂|