FPGA可以比其他加速選項更靈活地實現處理器卸載任務。超大規模數據中心都熱衷于部署此技術。
新型處理器也采用FPGA芯片來加速應用程序,讓服務器獲得更專業與靈活的可編程特性。
沒有任何單一處理器架構可以解決每個工作負載優化,而且對規模效率的需求正在推動新的、功能強大的應用程序為中心服務器設計。方法之一,就是讓中央處理單元卸載任務到現場可編程門陣列組件(FPGA)上。
根據應用的原生特性,FPGA編程中的任務與硬件描述語言(HDL),FPGA能夠從本質上大幅提高處理性能。
專用服務器vs.標準x86服務器
服務器可以通過精簡計算指令集(RISC)來加速應用程序,這樣可以降低芯片處理的延遲,但這只適合于使用這些指令集的應用程序。另一種方法是擴展處理器指令集來內部處理新的任務——與RISC相反——擁有更大的靈活性。第三個選擇是將任務從處理器中卸載到另外一個計算組件——比如將接收/發送任務交給網絡接口卡處理——從而提高指令集處理效率。
推進服務器性能的最新動向,是關于卸載模式的新方案:將FPGA與x86處理器配對。FPGA是可定制的:它被編程為特定工作負載的性能加速,而且可以在未來根據需求來重新編程,適應新變化。
例如,某個經過適當編程的FPGA可以提升圖形任務吞吐量,類似于擁有CPU與圖形處理器的協同處理器。 經過重新編程后,相同的FPGA可以用于加快數據庫搜索。那些需要頻繁重復任務操作或復雜任務序列的應用程序,最適合加速(任務卸載實踐)。
FPGA處理器的優點與缺點
FPGA加速處理器,如Intel的 Xeon E5+FPGA適用于海量服務器同時運行相同負載任務或大規模計算這樣的場景。部署FPGA服務器到每個數據中心,而只運行少量的業務程序,是種做法不經濟。主要原因是HDL加速算法的開發需要花費時間與精力。
并不是所有的FPGA都是一樣的;最佳的應用程序性能來自擁有高質量HDL編碼的大型FPGA。這意味著越多的邏輯門電路互聯是越有效的。小型FPGA中繁瑣的編程方式對工作負載有太多的優化起色。
HDL開發的回報無法在一臺Exchange Server服務器上看出。然而,在云計算或網絡規模數據中心,跨越數千臺服務器提升幾個百分點性能,可以節省數百萬美元;想想在1000臺服務器上提升搜索、OpenCL或大數據分析10%的性能,十分驚人不是嗎?
使用FPGA加速還影響了變更管理,尤其是大規模數據中心,因為企業工具必須追蹤FPGA算法,并保持其更新狀態。
FPGA服務器內部
Intel開發了一款混合處理器,帶有一顆Xeon E5以及一個FPGA。 整個包裝和普通的E5類似(而且匹配相同的處理器插座),但是可以通過服務器設置處理器卸載高級任務,來加速特定的應用。雖然處理器看起來完全一樣,但FPGA提供了上可編程協處理器,可以針對一定數量的任務集進行優化。
廠商的產品
結合處理器與FPGA設備并不是最新的技術。Intel已經在Atom E600c系列x86處理器上實現了。它包含了內存與I/O,通過單道PCIe通道相連。Intel Atom凌動系統芯片處理器被用于輕量級的Web托管服務器,而Xeon Phi系列用于處理高度并行的任務。
Juniper Netoworks將Intel Xeon E3-1125C v2處理器與Broadcom交換芯片和Altera FPGA整合,創建了交換服務器QFX5100-AA平臺。目標是直接在交換機上運行金融服務。
超大規模數據中心運營商都急于整合FPGA功能。微軟的Catapult項目在PCIe卡上增加FPGA(而不是在CPU上),超過1600臺服務器運行著Bing搜索引擎。公司報告顯示其吞吐量提升了近一倍。微軟同樣在其第二代開源Open CloudServer設計規范上增加了帶有FPGA的增強型Intel Xeon E5-2600 v3。
預計FPGA服務器技術開發與發展領域會轉向更小、更通用的數據中心,證據就是Intel的Xeon E5+FPGA處理器。HDL優化庫可能甚至成為日常商業應用。