引言
目前應用軟件的需求已經遠遠超出了傳統處理器的能力所及。一種解決方法是通過硬件加速,采用專用協處理器來提升處理性能。FPGA作為協處理器設計的基礎,在價格、性能、易用性以及功耗方面有明顯的優勢。

微處理器有近40年的歷史,在這期間內它的性能得到了大幅提高,根據摩爾定律每18個月翻倍。處理器在每一輪性能增長過程中,都能支持更復雜和要求更高的應用軟件,使用戶對未來處理器的性能有更高的期望。在過去幾年中情況發生了變化,處理器本身無法滿足高性能計算(HPC)應用軟件的性能需求,導致需求和性能之間出現了缺口
應用軟件的需求促進性能的提高
新的應用軟件在性能達到要求后,很快得到廣泛應用。在處理性能達到一定水平后,超聲、計算機輔助斷層掃描(CAT)、磁共振成像(MRI)等醫療成像應用需要更高的圖像分辨率。科學計算和建模也同樣出現類似的情況,使用的模型越來越復雜。
與此同時用戶還希望加快應用軟件的運行速度,盡快得出結果,他們不能忍受較慢的響應,這對應用軟件提出了新的性能標準。而另一方面,計算速度帶來的競爭優勢也促使提高目前的處理能力。
雖然對性能需求的增長已經超越了摩爾定律,處理器的發展卻徘徊不前。過去40年中處理器性能的提高主要受益于半導體技術,但是這種技術的改進達到了極限。電路越來越復雜,每一個設計的開發成本高達數百萬美元,數十億美元才能形成新產品投產能力。時鐘速率的提高導致器件功耗增大,現在已經到了不能迅速散熱的地步。
提高處理器性能并不是解決應用需求的唯一方法。采用專用處理器來擴展處理器一直是解決性能瓶頸可靠的途徑。這類協處理器可以結合使用調制解調器和以太網控制器等專用I/O處理功能,使用圖層著色引擎提高顯示能力,采用加密引擎來保證安全性。還出現了更通用的協處理器,例如處理乘法

和除法的數學加速器。數字信號處理器作為一種協處理器,采用了內置數學硬件以及具有流水線和并行運作的新體系結構,能夠處理復雜的數學運算。然而,這些專用結構還不足以填補目前的技術缺口,只是解決了一小部分問題。而且,在設計中還要避免采用軟件實現某些功能,例如數字信號處理器等,因為這和主處理器一樣,在靈活性上受到限制。
專用協處理器
當今理想的協處理器應該具備三種基本能力。第一是能夠提供專門的硬件加速,實現各種應用所需的關鍵處理功能。其次是協處理器設計在性能上非常靈活,使用流水線和并行結構,跟上性能的需求變化。最后,協處理器能夠為主處理器和系統存儲器提供寬帶、低延遲接口。
除了硬件要求以外,理想的協處理器還應該滿足HPC市場的“4P”要求:性能(performance)、效能(productivity)、功耗(power)和價格(price)。HPC市場對性能的最低要求是全面加速實現算法,而不僅僅是某一步驟,并能夠加速實現整個應用軟件。效能需求來自最終用戶,協處理器必須安裝起來很方便,提供簡單的方法來配置系統,加速實現現有的應用軟件。

HPC市場的功耗需求來自計算系統安裝和使用上的功耗限制。低功耗協處理器能夠為計算系統提供更低的成本,還提高了計算系統的空間利用率。
價格因素在HPC市場上顯得越來越重要。十幾年前,某些應用軟件對性能的需求超出了單個處理器能力范圍,這促使人們采用專用體系結構,例如密集并行處理(MPP)、對稱多處理(SMP)和單指令多數據(SIMD)等(見圖2)。然而,這類系統要求使用定制處理器單元和專用數據通路,開發和編程都非常昂貴。
現在的HPC市場拋棄了這種昂貴的方法,采用性價比更高的集群計算方法。集群計算采用商用標準體系結構,例如Intel和AMD采用工業標準互聯,例如千兆以太網和InfiniBand;采用標準程序語言,例如運行在低成本Linux操作系統上的C語言等。當今的協處理器設計必須能夠平滑集成到商用集群計算環境中,而成本大致與在集群中加入另一個節點相當。
在這些市場條件下,設計協處理器來提供專用硬件加速功能是很大的挑戰。過去,開發人員針對一些常見的應用,例如圖像和以太網控制器等,設計不同的協處理器來滿足這些應用需求。然而,出于開發時間和成本考慮,并不能采用這一方法,因為對于大部分應用的回報太低,用戶不愿意等待太長的時間。而且各種各樣的應用軟件需要進行加速,平滑集成到現有計算集群中,而傳統的方法在成本上做不到這一點。
理想FPGA功能的實現
采用替代方案可以針對每一應用需求設計不同的協處理器,同樣的半導體技術既能把處理器的性能發揮到極限,也能使FPGA從簡單的膠合邏輯控制器發展到性能很高的可編程架構。FPGA完全能夠滿HPC市場的“4P”需求。
當今的FPGA有很大的性能潛力。它們支持深度可變的流水線結構,提供大量的并行計算資源,一個時鐘周期內就可以完成非常復雜的功能。FPGA的可編程能力保證了這種器件能夠滿足應用軟件的特殊需求,不存在設計定制協處理器的成本或者延遲問題。FPGA是可再編程的,它可以在一個芯片中為多種應用提供非常靈活的定制協處理功能。
FPGA的內置存儲器也有很大的性能優勢。例如,片內存儲器意味著協處理器邏輯的存儲器訪問帶寬不會受到器件I/O引腳數量的限制。而且,存儲器和運算邏輯緊密結合,不再需要采用外部高速存儲器緩沖。容量更大的FPGA和原先的器件有相同的電路板外形封裝,不用改變電路板就可以提高性能。
利用當今高性能FPGA(例如,Altera的Stratix III系列FPGA)的結構和資源優勢,大量的應用軟件都可以采用硬件加速協處理器,大大提升性能,如表1所示。相對于只采用處理器的應用,基于FPGA的協處理器在實際應用中運算執行速度提高了10倍,速度提高100倍也是很常見的。
工具簡化了定制實現

但是,如果需要很大的開發投入才能顯著提升性能,其價值也是有限的。然而,FPGA支持很多成熟的開發工具。
用戶利用這一完整的設計工具鏈,大大簡化了應用軟件的加速過程。工具鏈處理現有的代碼,自動配置FPGA協處理器,顯著提高了性能。而且使用這些工具時,用戶不需要非常了解FPGA硬件,也不需要重新編寫源代碼來實現協處理。
對于第三個“P”的功耗,FPGA比處理器有明顯的優勢。FPGA提供大量的并行資源,在硬件中只需要幾個時鐘周期就可以執行完函數功能,而順序操作的處理器則需要成百上千的時鐘周期。由于只需要很少的時鐘周期,FPGA即使采用較慢的時鐘,也能夠提升性能。減小時鐘速率可以降低功耗,因此,FPGA協處理器的功耗效率遠遠大干處理器(見圖3)。
對于第四個“P”的價格,FPGA在這方面也解決了很多難題。FPGA協處理器的成本與性能類似的處理器相當,甚至還要低一些。結果,在標準群設計中,一個處理器和一個FPGA協處理器的成本不會高于兩個處理器。FPGA協處理器還為標準群設計提供大量的選項,而成本不會增加。這些選項可在多處理器電路板設計中替代處理器,通過存儲器接口與處理器連接,作為高性能外設卡插入系統(見圖4)等。FPGA可以把合適的接口作為架構的一部分來實現。
AItera的產品定位

Altera的Stratix III系列FPGA適合用作HPC協處理單元,比其他FPGA有更大的優勢。優勢之一是它的邏輯和DSP模塊比較均衡,因此,Stratix III FPGA是實現高性能函數的理想選擇,例如雙精度浮點等。此外,Stratix III FPGA可現場配置,系列協處理器設計能夠適應用戶運行的任何軟件,即使用戶需求變化了,也可以不斷提供加速功能。
Stratix III系列FPGA的另一優勢是,其行列體系結構與存儲器供應商采用的結構相似。利用這一體系結構,Altera在某些半導體工藝基礎上開發了高密度型號,不但有數量較多的邏輯門,而且還為實際應用提供了豐富的片內存儲器資源。
Stratix III系列FPGA在其資源矩陣中有分布合理的加法邏輯和乘法器,非常適合需要大量計算的應用軟件,例如矩陣乘法和雙精度數學運算等。代表性的例子是IEEE標準浮點乘法,最佳性能達到了每秒480億次運算(GFLOP)。此外,Stratix III系列FPGA還受益于Avalon布線架構,這種通用互聯支持流水線結構。
Altera還和Intel、AMD等主要的處理器供應商密切合作,為他們的處理器系列提供高性能、低延遲接口。例如,Altera和Intel合作,為FPGA和Intel處理器的互聯開發了前端總線(FSB)。與常用的北橋(NB)外設連接總線不同,FSB使FPGA在多處理器設計中起到了另一處理器的作用。因此,StratixIII系列FPGA可以在標準群設計中配置為置入式處理器,不用改動硬件,在多處理器電路板上實現硬件加速。Altera和AMD合作,開發了HyperTransport接口,在AMD設計中,提供類似的置入式替代方案。
強大的開發工具
除了與半導體供應商合作,Altera還在設計工具領域與其他供應商密切合作。保證為Altera器件開發專用協處理器提供豐富的工具。例如,公司與工具開發商Impulse聯合開發Impulse C,該設計工具編譯C代碼應用程序,在FPGA邏輯中加速實現。因此,開發人員能夠針對自己的應用代碼迅速開發協處理器。利用Altera工具的兼容性,在原型設計中開發人員可節省數星期的開發時間。
Altera還和產品開發商合作,確保采用Stratix III系列FPGA開發同類最佳的設計。例如,Xtreme數據公司開發的置入式模塊可以替代母板上的AMD Opteron處理器,而且不需要改變電路板設計。用戶可以根據多處理器設計需要,合理地結合使用Opteron處理器和FPGA協處理器。
另一供應商SRC公司與Altera開發了MAP系列協處理器產品。這些模塊通過存儲器總線接口與AMD或者Intel處理器連接,數據帶寬高達14GB/秒。SRC還提供Carte工具鏈,轉換C語言或者FORTRAN程序,可在FPGA協處理器上更快地運行。
結語
Xtreme數據公司和SRC公司的協處理器代表了HPC今后的發展方向。在處理器還不能滿足要求的時候,應用軟件加速所帶來的競爭優勢使用戶能夠不斷提高軟件性能。基于Stratix III系列FPGA的協處理器提供了硬件加速需要的高速、低延遲接口,而Altera合作伙伴提供的工具鏈和其他支持大大簡化了HPC用戶定制功能的加速開發。現在,這些工具和產品已經是成熟的高性能商用解決方案,Altera與其他供應商的合作,保證了這些產品和工具能夠持續滿足今后HPC的發展需求。