siemens x
工業(yè)無線

將浮點轉(zhuǎn)為定點 大幅降低功耗和成本

2025China.cn   2017年07月14日

  賽靈思器件和工具支持從二進(jìn)制到雙精度在內(nèi)的多種數(shù)據(jù)類型。 UltraScale ? 架構(gòu)的可擴(kuò)展精度提供極大靈活性,便于優(yōu)化功耗和資源利用,同時滿足設(shè)計性能目標(biāo)要求。

  摘要

  在數(shù)據(jù)中心、航空航天與軍用、 5G 無線以及汽車等領(lǐng)域,客戶必須滿足高級駕駛員輔助 (ADAS)、雷達(dá)和深度學(xué)習(xí)等應(yīng)用中嚴(yán)峻的散熱、功耗和成本要求。要實現(xiàn)這些目標(biāo),一種極為有效的方法是用定點數(shù)實現(xiàn)信號處理鏈。賽靈思FPGA 和 SoC 具備固有的可變精度支持,允許客戶輕松調(diào)整以適應(yīng)不斷演變的朝更低精度解決方案發(fā)展的這種行業(yè)趨勢。

  賽靈思提供一種包含 Vivado? 高層次綜合 (HLS) 的工具流程,允許客戶方便地評估 C/C++ 設(shè)計的更低精度實現(xiàn)方案,諸如定點等。

  簡介 :賽靈思支持的數(shù)據(jù)類型

  賽靈思 All Programmable 器件和工具支持從二進(jìn)制到雙精度浮點在內(nèi)的多種數(shù)據(jù)類型。用定點實現(xiàn)的設(shè)計總是比用浮點實現(xiàn)的同一設(shè)計更加高效,因為定點實現(xiàn)方案所占用的資源和消耗的功耗更少。若將設(shè)計遷移到定點,功耗和占用面積縮減一半并不稀奇。

  相較于浮點,定點數(shù)據(jù)類型的優(yōu)勢包括 :

  ● 邏輯資源占用減少

  ● 功耗降低

  ● 材料成本降低

  ● 時延縮短

  賽靈思所有器件均支持客戶采用浮點數(shù)據(jù)類型提供的動態(tài)范圍,能實現(xiàn)高達(dá) 7.3TFLOPs 的單精度浮點DSP 性能。

  業(yè)界領(lǐng)先的賽靈思工具套件提供浮點支持。 Vivado? 高層次綜合 (HLS) [ 參考資料 1] 和 System Generator for DSP [ 參考資料 2] 本身均支持可變的浮點精度,包括半精度 (FP16)、單精度 (FP32) 和雙精度 (FP64) ;System Generator 還支持自定義精度,具備更大的靈活性。這些工具本身還支持可變定點數(shù)據(jù)類型。

  表格 1 : 賽靈思工具支持浮點和定點數(shù)據(jù)類型

 

  注 :

  1. System Generator for DSP 原本不支持 FP16,但支持自定義 FP16。

  2. 浮點運(yùn)算符內(nèi)核支持 →定點到浮點轉(zhuǎn)換、浮點到定點轉(zhuǎn)換以及浮點到浮點的精度變換。

  賽靈思器件和工具均能支持可變精度數(shù)據(jù)類型,以便客戶能夠簡單、靈活地調(diào)整和適應(yīng)行業(yè)趨勢的變化,例如圖像分類只要求 INT8 或更低的定點計算,以保持可接受的推斷精度。

  用于高計算強(qiáng)度工作負(fù)載的其他器件,例如 GPU,在傳統(tǒng)上其結(jié)構(gòu)決定了只能有效支持單精度浮點。這些廠商現(xiàn)在也開始重新設(shè)計產(chǎn)品,以應(yīng)對趨勢的變化。賽靈思的可擴(kuò)展架構(gòu)允許客戶調(diào)整信號處理鏈的精度,以便滿足日新月異的行業(yè)需求。

  當(dāng)選擇實現(xiàn)浮點還是定點信號處理鏈時,客戶必須在功耗、成本、生產(chǎn)力和精度之間仔細(xì)權(quán)衡。賽靈思靈活的 DSP48E2 Slice 可使用所有數(shù)據(jù)類型進(jìn)行重要的 DSP 計算。當(dāng)實現(xiàn)新的定點設(shè)計或針對某些應(yīng)用(適用浮點到定點轉(zhuǎn)換)將現(xiàn)有設(shè)計從浮點轉(zhuǎn)換成定點時, DSP Slice 與賽靈思工具集相結(jié)合能夠帶來巨大優(yōu)勢和靈活性 。

  對于采用 C/C++ 語言設(shè)計的客戶,賽靈思提供 Vivado HLS 并支持任意精度定點數(shù)據(jù)類型,使客戶能夠方便地采用定點進(jìn)行設(shè)計或者將現(xiàn)有的 C/C++ 設(shè)計轉(zhuǎn)換成定點。

  浮點轉(zhuǎn)換為定點的優(yōu)勢

  對于目前幾乎所有的設(shè)計,最小化功耗是需要優(yōu)先處理的問題。大多數(shù)應(yīng)用產(chǎn)品必須首先滿足嚴(yán)格的功耗和散熱范圍要求,才能投產(chǎn)。

  普遍接受的一個原則是,浮點設(shè)計較之低精度設(shè)計而言,功耗更大。這對FPGA 來說也一樣,其中的浮點 DSP 模塊已被硬化在 FPGA 中,另外客戶必須使用提供的 DSP 資源和其它 FPGA 資源來實現(xiàn)軟解決方案。浮點方案與同等的定點解決方案相比需占用更多的 FPGA 資源。資源占用增多,功耗隨之增大,最終會增加設(shè)計實現(xiàn)的總成本。

  將浮點設(shè)計轉(zhuǎn)換為定點設(shè)計有助于滿足嚴(yán)格的規(guī)范,具體體現(xiàn)在以下幾個方面 :

  ● 減少 FPGA 資源占用

  ○ 使用定點數(shù)據(jù)類型時,所需的 DSP48E2、查找表 (LUT) 和觸發(fā)器更少。

  ○ 存儲定點數(shù)字所需的存儲容量更小。

  ● 功耗更低

  ○ 減少 FPGA 資源利用自然就會降低功耗。

  ● 材料成本降低

  ○ 設(shè)計人員可利用額外的資源以相同成本在應(yīng)用中實現(xiàn)附加功能。

  ○ 資源的節(jié)約能大幅提升 FPGA 的計算能力。計算能力的提升可以讓很多應(yīng)用受益,例如機(jī)器學(xué)習(xí)DNN。

  ○ 資源的節(jié)省還可能減小設(shè)計所需的器件尺寸。

  ● 降低時延

  ○ 當(dāng)實現(xiàn) FIR 時減少所用的資源,尤其是減少 DSP48E2 Slice 的占用,能降低定點設(shè)計的時延。

  ● 相近的性能和精度

  ○ 對于不需要用浮點實現(xiàn)動態(tài)范圍的設(shè)計和應(yīng)用,定點方案能提供相近的結(jié)果和精度。 有些情況下,結(jié)果甚至更好。

  過去由于缺乏工具支持,難以將設(shè)計從浮點轉(zhuǎn)換為定點。對于針對賽靈思 All Programmable 器件的 C/C++ 開發(fā)人員來說,可使用 Vivado HLS 減少轉(zhuǎn)換過程中遇到的挑戰(zhàn)。

  這種轉(zhuǎn)換能帶來多種優(yōu)勢,在適用情況下應(yīng)認(rèn)真考慮——尤其是不需要利用浮點來實現(xiàn)動態(tài)范圍和浮點精度的設(shè)計,而且很小的可預(yù)見的精度損失不會在部署后的應(yīng)用中導(dǎo)致無效性。

  實例 :將浮點 FIR 濾波器轉(zhuǎn)換為定點

  Vivado HLS 中簡單的 FIR 濾波器設(shè)計 [ 參考資料 8] 可用來展示浮點 FIR 設(shè)計轉(zhuǎn)換為定點設(shè)計如何減少所用資源和功耗并實現(xiàn)相近的結(jié)果精度。

  單精度浮點 FIR

  在 C++ FIR 函數(shù)代碼中,頂層函數(shù)將 FIR.h 報頭文件中找到的類 CFir 文件 (class CFir) 實例化。

  CFir 類 (CFir class) 是主要的 FIR 算法,在報頭文件 FIR.h 中定義。

 

  此函數(shù)包含重要的 ARRAY_PARTITION 編譯指示,以確保設(shè)計的所有實現(xiàn)方案都是 II=1(迭代間隔為1)。 PIPELINE 編譯指示也被應(yīng)用到頂層函數(shù)調(diào)用。

  這些編譯指示、并行產(chǎn)品實現(xiàn)以及用于執(zhí)行累加的加法器樹,能夠在整個 FIR 函數(shù)中確保最低時延(無論數(shù)據(jù)類型如何),同時保持 II = 1。

  在 fp_FIR 函數(shù)中, fp_coef_t、 fp_data_t 和 fp_acc_t 都被定義為浮點類型,即 C++ 默認(rèn)的單精度浮點數(shù)據(jù)類型。

 

  通過報頭文件中的 include 命令加載濾波器系數(shù)。

 

  用系數(shù)創(chuàng)建一個對稱 FIR 濾波器,但本例中,未使用 DSP48E2 Slice 中的預(yù)加法器。如果使用預(yù)加法器,會實現(xiàn)更高效率。

  以下是針對 85 抽頭 FIR 濾波器得到的結(jié)果,在 Vivado HLS 中運(yùn)行 C 綜合與實現(xiàn),并采用 XCVU9P-2FLGB2104 器件上的 400MHz 時鐘( 2.5ns 時鐘周期)。見表 2。

  表 2 : 單精度浮點 FIR 的實現(xiàn)后結(jié)果

 

  本例中,需要 423 個 DSP48E2 以及約 23,000 個 LUT 來實現(xiàn)單精度浮點 FIR。實現(xiàn)后,時延為 91 個時鐘周期, FMAX 為 500MHz(遠(yuǎn)遠(yuǎn)高于 400MHz 的目標(biāo))。

  轉(zhuǎn)換到定點 FIR 濾波器

  為實現(xiàn)最高 DSP 效率,浮點到定點的轉(zhuǎn)換必須考慮 DSP Slice 的總線寬度,即 27x18 位乘法器和 48 位累加器。將總線寬度進(jìn)一步縮減到到設(shè)計允許的最低水平,從而盡可能減少資源占用和功耗。

  針對這個 FIR 濾波器實例,定義以下定點數(shù)據(jù)類型以匹配 DSP48E2 Slice 中的總線大小,即 18 位系數(shù)中1 個整數(shù)位和 17 個小數(shù)位 ; 27 位數(shù)據(jù)中 15 個整數(shù)位和 12 個小數(shù)位 ;以及 48 位累加器中 19 個整數(shù)位和29 個小數(shù)位。

 

  要使用 Vivado HLS 固有的 ap_fixed 數(shù)據(jù)類型,必須包含 ap_fixed.h 報頭文件,以定義任意定點數(shù)據(jù)類型。

  再次采用 400MHz 時鐘( 2.5ns 時鐘周期)和 XCVU9P-2FLGB2104 器件,定點 FIR 設(shè)計的 C 綜合與實現(xiàn)產(chǎn)生的結(jié)果如表 3 所示。

  表 3 : 比較兩種設(shè)計的實現(xiàn)后結(jié)果

 

  正如結(jié)果顯示的那樣,重視時延和 FPGA 資源利用率,能獲得明顯的改進(jìn)。

  在 UltraScale 架構(gòu)中,通過將多個 DSP48E2 Slice 級聯(lián),必要時仍可支持更高總線寬度。采用級聯(lián)DSP48E2 Slice 的定點設(shè)計,與浮點方案相比仍可顯著減少資源占用和功耗。

  比較濾波器精度

  在 System Generator for DSP 中使用 Vivado HLS 模塊(來自賽靈思模塊集), 在 MATLAB?/Simulink?

  環(huán)境中比較 FIR 濾波器的兩種實現(xiàn)方案。見圖 1。

圖 1 : System Generator for DSP 模型 - 使用兩種 HLS 解決方案進(jìn)行分析

 

  System Generator 模型由兩個 Vivado HLS 模塊構(gòu)成,都經(jīng)過配置以包含來自 Vivado HLS 的單精度浮點 (FP32) 和定點 FIR 解決方案。兩個模塊具有相同的輸入和離散脈沖信號,然后在 Simulink 示波器上比較每個 FIR 的輸出。見圖 2。

圖 2 : System Generator 中兩個 HLS 設(shè)計的輸出

 

  為了方便比較輸出,有必要延遲定點結(jié)果,以按照兩種解決方案之間的時延差進(jìn)行對比。

  正如預(yù)期的那樣,兩種 FIR 濾波器產(chǎn)生的結(jié)果幾乎相同,差異很小。

  為進(jìn)一步分析信號,將兩個輸出相減。得到的信號表明精度損失非常小,處在如圖 3 所示頻譜分析圖中的 -100dBm 至 -160dBm 范圍。

圖 3 : 兩個輸出差的 dB 圖

 

  關(guān)鍵優(yōu)勢

  當(dāng)把原始單精度浮點 FIR 濾波器的結(jié)果與轉(zhuǎn)換后定點 FIR 濾波器的結(jié)果進(jìn)行比較時,發(fā)現(xiàn)定點設(shè)計不僅減少了資源占用 , 降低了時延,同時還能保持甚至提高設(shè)計的最大頻率 (FMAX) 。見圖 4。

圖 4 : 定點 - 性能相近,并減少時延、資源占用和功耗

 

  大大減少 FPGA 資源占用

  本例中的定點 FIR 所占資源不足原始浮點 FIR 的五分之一。

  選擇總線寬度,實現(xiàn)到硬件中 DSP48E2 slice 的最佳映射。這樣允許每次相乘都在一個 DSP48E2 Slice 中完成,并針對 85 個系數(shù)并行完成。這將 DSP48E2 Slice 的使用量減小至浮點解決方案的 20%。

  實現(xiàn) FPGA 架構(gòu)中 LUT 的大幅節(jié)省(約 90%),因為在定點方案中,無需額外的 LUT 來構(gòu)建浮點運(yùn)算。

  如果一個設(shè)計有 10 個 FIR 濾波器,預(yù)計功耗會隨設(shè)計而擴(kuò)展。 表 4 顯示了 10 FIR 濾波器設(shè)計的單精度和定點實現(xiàn)方案的 XCVU9P FPGA 資源占用。當(dāng)將單精度浮點的資源占用與定點實現(xiàn)方案進(jìn)行對比時,會看到明顯的差異。

  表 4 : 兩種數(shù)據(jù)類型 10 FIR 濾波器所使用的資源

 

  顯著的資源節(jié)省能實現(xiàn)多種優(yōu)勢,為設(shè)計人員帶來深遠(yuǎn)的影響,有助于他們改進(jìn)設(shè)計特性集、設(shè)計功耗、設(shè)計性能和設(shè)計成本。

  實現(xiàn)顯著的功耗節(jié)省

  顯著的資源節(jié)省能夠相應(yīng)地降低功耗量。

  將本白皮書中單個 FIR 濾波器的兩種實現(xiàn)方案的功耗估算結(jié)果進(jìn)行比較,發(fā)現(xiàn)定點 FIR 的功耗減少1.4W。兩種方案中,器件的靜態(tài)功耗都是略高于 3W,單個單精度浮點 FIR 設(shè)計的總功耗為 4.7W。這表明該設(shè)計的動態(tài)功耗節(jié)省 80% 以上,定點 FIR 功耗為 3.3W。

  再看看 10 FIR 濾波器設(shè)計,可利用賽靈思功耗估算器 (XPE) 和表 4 中的資源來獲得兩種實現(xiàn)方案的功耗估算結(jié)果。 圖 5 對節(jié)省效果進(jìn)行了比較。

圖 5 : 10 FIR 濾波器實例 :利用定點實現(xiàn)顯著的功耗節(jié)約

 

  這個 10 FIR 濾波器實例中,把設(shè)計轉(zhuǎn)換成定點數(shù)據(jù)類型后,總功耗節(jié)省 70%。如果設(shè)計具有大量浮點信號處理,需占用大量 FPGA 資源,則通過將部分或全部浮點信號處理鏈轉(zhuǎn)換成定點,能夠?qū)崿F(xiàn)巨大的功耗節(jié)省。

  削減材料成本

  將浮點設(shè)計轉(zhuǎn)換成定點方案,能大大減少 FPGA 資源占用。 FPGA 資源的削減能降低材料成本。通過三種方法來實現(xiàn)。

  1 可利用最新可用的 FPGA 資源來增加應(yīng)用特性集。

  2 由于所用 FPGA 資源大量減少以及通過數(shù)據(jù)路徑提高 FMAX,因此 FPGA 的總體計算能力顯著提高。

  3 由于所需 FPGA 資源減少,因此設(shè)計可遷移到更小型的賽靈思 FPGA 中。

  相近的精度

  通過比較單個 FIR 濾波器設(shè)計兩種實現(xiàn)方案的輸出,會發(fā)現(xiàn)定點實現(xiàn)方案提供相近的濾波器精度,精度損失僅為 -100dBm 至 -160dBm,同時能降低功耗和成本。

  然而,定點方案無法獲得相同的動態(tài)范圍,導(dǎo)致設(shè)計中出現(xiàn)可預(yù)測的精度損失。對于很多設(shè)計來說這不成問題,因為只需要最低標(biāo)準(zhǔn)的精度。與單個 FIR 實例類似,這類設(shè)計很適合轉(zhuǎn)換為定點。

  對于需要更大精度值的設(shè)計,有時可將信號處理鏈中的中間值從浮點轉(zhuǎn)換為定點。這種方案使設(shè)計人員能夠?qū)⒃O(shè)計的特定部分(而非全部)轉(zhuǎn)換為定點。最終,這使設(shè)計人員能夠在需要時保持動態(tài)范圍,確保維持?jǐn)?shù)據(jù)路徑的精度,同時充分發(fā)揮定點實現(xiàn)方案帶來的部分優(yōu)勢。

  降低時延

  對于單個 FIR 設(shè)計實例,可通過濾波器降低時延——定點實現(xiàn)方案為 12 個時鐘周期,浮點設(shè)計為 91 個時鐘周期。隨著資源用量減少,尤其是 DSP48E2 Slice 減少,有望降低時延。

  除了降低時延,在單個 FIR 實例中,還能提升 FMAX,實現(xiàn)之后能將 FMAX 提升 16%。

  結(jié)論

  賽靈思 All Programmable 器件和工具支持多種數(shù)據(jù)類型,包括多種精度的浮點和定點。使用浮點的設(shè)計與使用定點的同一設(shè)計相比,資源用量和功耗都要更高,無論針對 FPGA 還是其他架構(gòu)(例如 GPU)都是如此。

  某些應(yīng)用領(lǐng)域已開始放棄浮點數(shù)據(jù)類型,例如深度學(xué)習(xí)推斷工作負(fù)載會盡可能多地使用 INT8 或更低精度,這已經(jīng)成為明顯的行業(yè)趨勢。

  如今的設(shè)計環(huán)境極富挑戰(zhàn),散熱和功耗要求越來越難以滿足,因此,設(shè)計人員必須評估所有可能的方法來降低功耗。其中一種選擇就是將浮點設(shè)計轉(zhuǎn)換為定點。

  如果是使用 C/C++, Vivado HLS 等賽靈思工具有助于簡化轉(zhuǎn)換過程。

  設(shè)計人員必須對定點數(shù)據(jù)類型的轉(zhuǎn)換進(jìn)行充分權(quán)衡,并充分理解這樣做所能帶來的巨大優(yōu)勢。

  繼續(xù)使用浮點是通向市場的捷徑,但是成本高。投入時間和精力轉(zhuǎn)換成定點,這樣能夠降低資源使用量、成本和功耗,而且性能損失很小,從而獲得巨大優(yōu)勢。

  如需了解更多信息,敬請登錄 :  網(wǎng)站,訪問 DSP 網(wǎng)頁 :

 

(轉(zhuǎn)載)

標(biāo)簽:賽靈思 UltraScale ? 架構(gòu) 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會
專題報道