FPGA協(xié)處理技術(shù)介紹及進(jìn)展
顯然,FPGA在并行化與流水化方面存在相當(dāng)大的優(yōu)勢,同時與GPGPU相比,FPGA在主緩存與帶寬方面也存在優(yōu)勢。在FPGA中,邏輯資源周圍是存儲器塊。XDI模塊具有一塊帶寬為3.8TB/s的3.3MB主緩存,這是nVidia 8800 GTX型GPGPU上主緩存(支持流處理器)的5~10倍。
FPGA的優(yōu)勢還在于,可以利用裕量連接帶寬來靈活構(gòu)建直達(dá)各邏輯塊的數(shù)據(jù)通道和存儲器訪問通路。圖1所示的可編程互連結(jié)構(gòu)提供了大量的布線帶寬。模塊與電路板可根據(jù)FPGA輸出帶寬、存儲器大小及延遲的需要進(jìn)行設(shè)計(jì),I/O端口可由用戶自定義。
圖1 FPGA的架構(gòu)
最后,F(xiàn)PGA架構(gòu)還擁有一個優(yōu)勢,它可擴(kuò)展為更大型的邏輯塊、存儲器塊與DSP塊的陣列。邏輯與主緩存的大小是一起擴(kuò)展的?,F(xiàn)有最大的FPGA峰值功耗為30W,其FPGA架構(gòu)有很多空間,可以在不超過現(xiàn)有數(shù)據(jù)中心功率和冷卻限制的前提下,擴(kuò)展為新的處理構(gòu)型。
盡管FPGA架構(gòu)具有許多出眾的性能,一些性能必須共同發(fā)揮作用,才能提供優(yōu)于CPU協(xié)處理的解決方案。
芯片與算法基礎(chǔ)
大部分雙精度浮點(diǎn)算法的加法與乘法操作比例大約為1:1。在FPGA中,加法運(yùn)算使用邏輯資源,乘法運(yùn)算使用DSP塊,因此FPGA的邏輯資源與DSP塊的比例必須均衡。FPGA的另一個特點(diǎn)是其可編程功率技術(shù),該技術(shù)可針對所有邏輯塊、DSP塊與存儲器塊進(jìn)行編程,根據(jù)設(shè)計(jì)的時序要求將其設(shè)定為高功耗或低功耗模式。
浮點(diǎn)運(yùn)算核已經(jīng)改進(jìn),可運(yùn)行于更高的時鐘速率,使用更少的DSP塊和更少的邏輯資源。采用浮點(diǎn)編譯器可減少不同浮點(diǎn)運(yùn)算核之間用于連接64位數(shù)據(jù)通路的邏輯資源。
在一次浮點(diǎn)運(yùn)算結(jié)束時,合并對浮點(diǎn)運(yùn)算進(jìn)行規(guī)格化處理(定點(diǎn)格式轉(zhuǎn)換至浮點(diǎn)格式)的步驟,可以顯著減少對后續(xù)浮點(diǎn)運(yùn)算輸入的去規(guī)格化處理(浮點(diǎn)格式轉(zhuǎn)換為定點(diǎn)格式)。浮點(diǎn)運(yùn)算的數(shù)學(xué)表達(dá)式的整個數(shù)據(jù)通路可熔接在一起,這會最多減少40%的邏輯資源并使時鐘速率略有提高。
浮點(diǎn)運(yùn)算的正確組合十分重要。如果算法有許多超越運(yùn)算(求指數(shù)、求對數(shù)等),F(xiàn)PGA可配置所需要的數(shù)目。在GPGPU設(shè)計(jì)中,會增加一些硬模塊實(shí)現(xiàn)上述函數(shù),但比例比單精度浮點(diǎn)邏輯少得多。使用算法技巧、抽象硬件細(xì)節(jié)及針對個別FPGA資源的優(yōu)化都需要函數(shù)庫。
基于芯片、算法與庫基礎(chǔ),圖2的系統(tǒng)級解決方案涉及到了工具鏈、模塊/板級設(shè)計(jì)、CPU接口以及采用合作公司專門技術(shù)的由CPU至基于FPGA的加速器的數(shù)據(jù)傳輸。
圖2 FPGA加速系統(tǒng)級解決方案的基礎(chǔ)
評論