性能浮點(diǎn)處理一直與高性能CPU相關(guān)聯(lián)。在過去幾年中,GPU也成為功能強(qiáng)大的浮點(diǎn)處理平臺,超越了圖形,稱為GP-GPU(通用圖形處理單元)。新創(chuàng)新是在苛刻的應(yīng)用中實(shí)現(xiàn)基于FPGA的浮點(diǎn)處理。本文的重點(diǎn)是FPGA及其浮點(diǎn)性能和設(shè)計(jì)流程,以及OpenCL的使用,這是高性能浮點(diǎn)計(jì)算前沿的編程語言。
各種處理平臺的GFLOP指標(biāo)在不斷提高,現(xiàn)在,TFLOP/s這一術(shù)語已經(jīng)使用的非常廣泛了。但是,在某些平臺上,峰值GFLOP/s,即,TFLOP/s表示的器件性能信息有限。它只表示了每秒能夠完成的理論浮點(diǎn)加法或者乘法總數(shù)。分析表明,F(xiàn)PGA單精度浮點(diǎn)處理能夠超過1 TFLOP/s。
一種不太復(fù)雜的常用算法是FFT。使用單精度浮點(diǎn)實(shí)現(xiàn)了4096點(diǎn)FFT。它能夠在每個(gè)時(shí)鐘周期輸入輸出四個(gè)復(fù)數(shù)采樣。每一個(gè)FFT內(nèi)核運(yùn)行速度超過80 GFLOP/s,大容量FPGA的資源支持實(shí)現(xiàn)7個(gè)這類的內(nèi)核。
但是,如圖1所示,這一FPGA的FFT算法GFLOP/s接近400 GFLOP/s。這是“按鍵式”OpenCL編譯結(jié)果,不需要FPGA專業(yè)知識。使用邏輯鎖定和DSE進(jìn)行優(yōu)化,7內(nèi)核設(shè)計(jì)接近單內(nèi)核設(shè)計(jì)的Fmax,將其GFLOP/s提升至500,超過了10 GFLOP/s每瓦。
這一每瓦GFLOP/s要比CPU或者GPU功效高很多。對比一下GPU,GPU在這些FFT長度上效率并不高,因此,沒有進(jìn)行基準(zhǔn)測試。當(dāng)FFT長度達(dá)到幾十萬個(gè)點(diǎn)時(shí),GPU效率才比較高,能夠?yàn)镃PU提供有效的加速功能。
圖1:Altera Stratix V 5SGSD8 FPGA浮點(diǎn)FFT性能。
總之,實(shí)際的GFLOP/s一般只達(dá)到峰值或者理論GFLOP/s的一小部分。出于這一原因,更好的方法是采用算法來對比性能,這種算法能夠合理的表示典型應(yīng)用的特性。算法越復(fù)雜,典型實(shí)際應(yīng)用的基準(zhǔn)測試就越具有代表性。 大功率電感廠家 |大電流電感工廠