<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計應(yīng)用 > 將浮點轉(zhuǎn)為定點 大幅降低功耗和成本

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

          作者: 時間:2018-09-14 來源:網(wǎng)絡(luò) 收藏

          摘要

          本文引用地址:http://www.ex-cimer.com/article/201809/389188.htm

          在數(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 或更低的定點計算,以保持可接受的推斷精度 [ 參考資料 3][ 參考資料 4]。

          用于高計算強(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)勢和靈活性 [ 參考資料 5]。

          對于采用 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è)計而言,功耗更大 [ 參考資料 6][ 參考資料 7]。這對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)[ 參考資料 9]。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),并采用 XCVU9P2FLGB2104 器件上的 400MHz 時鐘(2.5ns 時鐘周期)。見表 2。

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

          本例中,需要 423 個 DSP48E2 以及約 23,000 個 LUT 來實現(xiàn)單精度浮點 FIR。實現(xiàn)后,時延為 91 個時鐘周期,F(xiàn)MAX 為 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ù)類型 [ 參考資料 9]。

          再次采用 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)勢。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();