揭秘FPGA:為什么比 GPU 的延遲低這么多?
微軟部署 FPGA 并不是一帆風(fēng)順的。對于把 FPGA 部署在哪里這個問題,大致經(jīng)歷了三個階段:
本文引用地址:http://m.butianyuan.cn/article/201806/382354.htm專用的 FPGA 集群,里面插滿了 FPGA
每臺機(jī)器一塊 FPGA,采用專用網(wǎng)絡(luò)連接
每臺機(jī)器一塊 FPGA,放在網(wǎng)卡和交換機(jī)之間,共享服務(wù)器網(wǎng)絡(luò)
▲微軟 FPGA 部署方式的三個階段
第一個階段是專用集群,里面插滿了 FPGA 加速卡,就像是一個 FPGA 組成的超級計算機(jī)。
下圖是最早的 BFB 實驗板,一塊 PCIe 卡上放了 6 塊 FPGA,每臺 1U 服務(wù)器上又插了 4 塊 PCIe 卡。
▲最早的 BFB 實驗板,上面放了 6 塊 FPGA。
可以注意到該公司的名字。在半導(dǎo)體行業(yè),只要批量足夠大,芯片的價格都將趨向于沙子的價格。據(jù)傳聞,正是由于該公司不肯給「沙子的價格」 ,才選擇了另一家公司。
當(dāng)然現(xiàn)在數(shù)據(jù)中心領(lǐng)域用兩家公司 FPGA 的都有。只要規(guī)模足夠大,對 FPGA 價格過高的擔(dān)心將是不必要的。
▲最早的 BFB 實驗板,1U 服務(wù)器上插了 4 塊 FPGA 卡。
像超級計算機(jī)一樣的部署方式,意味著有專門的一個機(jī)柜全是上圖這種裝了 24 塊 FPGA 的服務(wù)器(下圖左)。
這種方式有幾個問題:
不同機(jī)器的 FPGA 之間無法通信,F(xiàn)PGA 所能處理問題的規(guī)模受限于單臺服務(wù)器上 FPGA 的數(shù)量;
數(shù)據(jù)中心里的其他機(jī)器要把任務(wù)集中發(fā)到這個機(jī)柜,構(gòu)成了 in-cast,網(wǎng)絡(luò)延遲很難做到穩(wěn)定。
FPGA 專用機(jī)柜構(gòu)成了單點故障,只要它一壞,誰都別想加速了;
裝 FPGA 的服務(wù)器是定制的,冷卻、運維都增加了麻煩。
▲部署 FPGA 的三種方式,從中心化到分布式。
一種不那么激進(jìn)的方式是,在每個機(jī)柜一面部署一臺裝滿 FPGA 的服務(wù)器(上圖中)。這避免了上述問題 (2)(3),但 (1)(4) 仍然沒有解決。
第二個階段,為了保證數(shù)據(jù)中心中服務(wù)器的同構(gòu)性(這也是不用 ASIC 的一個重要原因),在每臺服務(wù)器上插一塊 FPGA(上圖右),F(xiàn)PGA 之間通過專用網(wǎng)絡(luò)連接。這也是微軟在 ISCA'14 上所發(fā)表論文采用的部署方式。
評論