面向高性能計(jì)算,與GPGPU展開(kāi)競(jìng)爭(zhēng)
與傳統(tǒng)使用定點(diǎn)乘法器和FPGA邏輯來(lái)實(shí)現(xiàn)浮點(diǎn)功能的做法不同,Altera的硬核浮點(diǎn)DSP幾乎不使用現(xiàn)有FPGA浮點(diǎn)計(jì)算所需要的邏輯資源,釋放了上千個(gè)乘法器和加法器,從而一舉在Arria 10器件中實(shí)現(xiàn)了1.5 TeraFLOP (每秒浮點(diǎn)運(yùn)算次數(shù))和Stratix 10器件中10 TeraFLOP的DSP性能。
“這要?dú)w功于我們創(chuàng)新的精度可調(diào)DSP體系結(jié)構(gòu)?!盇ltera公司軟件和DSP產(chǎn)品市場(chǎng)經(jīng)理 Albert Chang說(shuō),在DSP模塊現(xiàn)有模式(標(biāo)準(zhǔn)精度定點(diǎn)模式和高精度定點(diǎn)模式)基礎(chǔ)上添加浮點(diǎn)模式,Altera FPGA和SoC的性能和功耗效率將在很多領(lǐng)域高于目前正在使用的微處理器和GPU,尤其是那些需要高性能計(jì)算的行業(yè)(大數(shù)據(jù)分析、石油和天然氣行業(yè)的地震建模、金融仿真、雷達(dá)和醫(yī)療成像等)。但其對(duì)定點(diǎn)模式并沒(méi)有影響(性能、大小和功耗),且對(duì)管芯總體改變<1%。
Altera 方面稱(chēng),其開(kāi)發(fā)的硬核浮點(diǎn)FPGA產(chǎn)品的競(jìng)爭(zhēng)對(duì)手并非來(lái)自同行,而是通用圖形處理單元(GPGPUs)。“其他FPGA廠(chǎng)商提供的‘軟核’浮點(diǎn)使用了邏輯來(lái)實(shí)現(xiàn)復(fù)數(shù)浮點(diǎn)電路,是缺乏功效和競(jìng)爭(zhēng)力的?!盡ichael Parker打比方說(shuō),這就好像數(shù)年前沒(méi)有硬核乘法器的FPGA,卻總在試圖和現(xiàn)代具備DSP模塊的FPGA進(jìn)行競(jìng)爭(zhēng)一樣可笑。
盡管類(lèi)似 OpenCL這樣的公共設(shè)計(jì)流程可以用在FPGA和GPGPU上,但兩者在算法實(shí)現(xiàn)上有很大的不同。GPGPU使用了并行處理器體系結(jié)構(gòu),并行運(yùn)行數(shù)千個(gè)浮點(diǎn)乘加小單元。算法被分成數(shù)萬(wàn)個(gè)線(xiàn)程,然后再將數(shù)據(jù)映射到計(jì)算單元中;而Altera FPGA使用了流水線(xiàn)邏輯體系結(jié)構(gòu),是將幾千個(gè)計(jì)算單元排列成流數(shù)據(jù)流電路,在矢量上運(yùn)行(FFT內(nèi)核或者Cholesky分解內(nèi)核就是類(lèi)似的例子)。每一個(gè)內(nèi)核在每一時(shí)鐘周期產(chǎn)生矢量輸出數(shù)據(jù),矢量寬度由設(shè)計(jì)人員決定。
Michael Parker
認(rèn)為,F(xiàn)PGA在高性能計(jì)算方面相對(duì)較新,但是具有競(jìng)爭(zhēng)優(yōu)勢(shì)。首先,由于采用流水線(xiàn)邏輯體系結(jié)構(gòu),數(shù)據(jù)流的處理延時(shí)要比GPU低得多,在金融交易算法等某些應(yīng)用中,這是關(guān)鍵優(yōu)勢(shì);其次,F(xiàn)PGA的GFLOPS/W性能要優(yōu)于GPGPU,這在航空電子等環(huán)境不受控的應(yīng)用中非常關(guān)鍵;第三,F(xiàn)PGA具有很好的通用性和廣泛的連通性。例如,F(xiàn)PGA可以直接與
硬核浮點(diǎn)DSP模塊縮短6-12個(gè)月的開(kāi)發(fā)時(shí)間
由于設(shè)計(jì)人員可以將其DSP設(shè)計(jì)直接轉(zhuǎn)譯成浮點(diǎn)硬件,而不是轉(zhuǎn)換為定點(diǎn),從而大幅度縮短了時(shí)序收斂和驗(yàn)證時(shí)間。相比此前系列,硬核浮點(diǎn)DSP模塊能夠縮短近12個(gè)月的開(kāi)發(fā)時(shí)間。
Albert Chang認(rèn)為,自然支持浮點(diǎn)功能對(duì)于設(shè)計(jì)人員在FPGA中實(shí)現(xiàn)復(fù)雜的高性能算法非常重要—在構(gòu)建系統(tǒng)之前,在浮點(diǎn)中完成所有算法開(kāi)發(fā)和仿真;完成算法后,通常還需要6-12個(gè)月的投入,在定點(diǎn)實(shí)現(xiàn)中分析、轉(zhuǎn)換并驗(yàn)證浮點(diǎn)算法。需要克服的三個(gè)主要問(wèn)題包括:
1. 必須手動(dòng)將浮點(diǎn)設(shè)計(jì)轉(zhuǎn)換為定點(diǎn),這需要非常有經(jīng)驗(yàn)的工程師。盡管這樣,其實(shí)現(xiàn)的數(shù)字精度也沒(méi)有仿真高。
2. 如果以后對(duì)算法進(jìn)行任何修改,也需要再次進(jìn)行手動(dòng)轉(zhuǎn)換。而且,優(yōu)化系統(tǒng)中定點(diǎn)算法的任何步驟都不會(huì)反映在仿真中。
3. 如果系統(tǒng)集成和測(cè)試過(guò)程中出現(xiàn)了問(wèn)題,其原因可能如下:手動(dòng)轉(zhuǎn)換過(guò)程有錯(cuò)誤,數(shù)字精度問(wèn)題,或者算法本身就有問(wèn)題。隔離問(wèn)題會(huì)非常困難。使用Altera浮點(diǎn)FPGA能夠避免所有這些問(wèn)題。
為了幫助硬件設(shè)計(jì)人員、基于模型的設(shè)計(jì)人員以及軟件編程人員在器件中輕松實(shí)現(xiàn)高性能浮點(diǎn)DSP模塊,Altera還同時(shí)提供多種工具流程,包括:
DSP Builder高級(jí)模塊庫(kù)提供了基于模型的設(shè)計(jì)流程,設(shè)計(jì)人員使用業(yè)界標(biāo)準(zhǔn)MathWorks Simulink工具在幾分鐘內(nèi)就可以完成系統(tǒng)定義和仿真,直至系統(tǒng)實(shí)現(xiàn)。
對(duì)于軟件編程人員,Altera在FPGA編程中率先使用了OpenCL,并面向FPGA提供基于C語(yǔ)言的通用高級(jí)設(shè)計(jì)流程。Arria 10 FPGA浮點(diǎn)DSP模塊結(jié)合使用方便的開(kāi)發(fā)流程,為軟件編程人員提供了硬件直接轉(zhuǎn)譯方法,幫助他們縮短了開(kāi)發(fā)和驗(yàn)證時(shí)間。
2014 年下半年,Altera將提供面向Arria 10器件中硬核浮點(diǎn)DSP模塊的浮點(diǎn)設(shè)計(jì)流程,包括演示和基準(zhǔn)測(cè)試。在此之前,用戶(hù)可以采用Arria 10 FPGA開(kāi)始設(shè)計(jì),使用軟件浮點(diǎn)技術(shù)來(lái)實(shí)現(xiàn)浮點(diǎn)功能,在得到設(shè)計(jì)流程支持后,軟件工具會(huì)自動(dòng)(一次重新編譯)將浮點(diǎn)算法無(wú)縫映射到硬核浮點(diǎn)運(yùn)算中,而不必使用軟核邏輯。
關(guān)注我們
公眾號(hào):china_tp
微信名稱(chēng):亞威資訊
顯示行業(yè)頂級(jí)新媒體
掃一掃即可關(guān)注我們