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