• <menu id="4s8ek"><strong id="4s8ek"></strong></menu>
    <menu id="4s8ek"><tt id="4s8ek"></tt></menu>
  • 科技魔方

    致力逼真角色 Meta為Codec Avatar解碼提出硬件加速器框架F-CAD

    AR/VR

    2021年12月23日

      Meta一直致力于名為Codec Avatar的虛擬化身項目,從而幫助克服人與人之間,以及人與機會之間的物理距離挑戰。借助突破性的3D捕獲技術和人工智能系統,Codec Avatar可以幫助人們在未來快速輕松地創建逼真的虛擬化身,令虛擬現實中的社交聯系變得如同現實世界般自然和常見。盡管虛擬角色多年來一直是游戲和應用的主要元素,但這家公司相信逼真的虛擬表現將會改變一切。

      對于這個項目,團隊早前已經多次分享過相關的研究進展。日前,Meta又通過名為《F-CAD: A Framework to Explore Hardware Accelerators for Codec Avatar Decoding》的論文介紹了用于為Codec Avatar解碼探索硬件加速器的框架F-CAD。

      整個系統如圖1所示,其中發射機(TX)的所有信息(例如扭曲的微笑和皺眉)將在到達接收機(RX)后進行編碼、發送和解碼,以生成用于高保真社交臨場感的Codec Avatar。其中,解碼器是最復雜的模塊,占整個系統所需計算量的90%。如果沒有有效的優化,它將輕易成為瓶頸,阻礙虛擬現實臨場感的順利實現。隨著VR/AR耳機的普及,社會需求不斷增加,對實時和高質量編解碼器-化身解碼的要求也越來越高。然而,在虛擬現實耳機上部署編解碼器-化身解碼器帶來了重大挑戰。

      最先進的解碼器屬于計算和內存密集型,例如它可以包含超過13.6個GOP和720萬個參數。同時,大多數頭顯只能提供有限的計算、內存和電源預算。為了防止暈動癥,并提供實時響應以支持流暢用戶交互,VR相較于非VR應用(30 FPS)要求更高的刷新率(90 FPS,甚至120 FPS)。

      它要求硬件在不使用大batch size的情況下提供高吞吐量,因為收集batch輸入的額外延遲可能無法滿足實時要求。另外,新興解碼器開始采用具有定制神經網絡層的復雜多分支DNN來生成Codec Avatar的不同組件,例如一個用于面部幾何結構的分支和另一個用于紋理的分支,并且所述分支可能具有非常不同的要求。

      上述獨特的挑戰令現有硬件加速器難以有效處理Codec Avatar解碼器。另外,先進的商用SoC處理器(驍龍865)和學術界最近發布的兩款DNN加速器(DNNBuilder和HybridDNN)未能提供令人滿意的性能和效率。

      針對這個問題,Meta和伊利諾伊大學厄巴納-香檳分校的研究人員提出了F-CAD。這個全新的自動化工具用于加速具有復雜層依賴關系的多分支DNN。在論文中,團隊關注Codec Avatar解碼,將其作為F-CAD的一個重要和實際用例,并通過在資源預算下滿足特定性能目標來提供優化的硬件加速器。

      1.加速器設計挑戰

      Codec Avatar解碼器獨特的多分支功能和自定義層帶來了推理過程中復雜的數據流和高計算和內存需求,這使得現有的DNN加速器難以應對。挑戰包括巨大的和不均勻分布的計算和大量內存占用。對于資源有限,但以高吞吐量性能實時響應為目標的硬件加速器而言,這變得更具挑戰性。團隊從業界(驍龍865 SoC)和學術界(DNNBuilder,HybridDNN)中選擇了三個現有加速器來加速Codec Avatar解碼。

      對于865 SoC,研究人員運行表I中所示的目標解碼器。由于DNNBuilder和HybridDNN不支持定制的Conv,他們通過將定制的Conv替換為傳統的Conv來創建模擬解碼器,同時保持其余網絡結構不變。模擬解碼器具有高度相似的結構,但計算量減少了3.7%。這可以提供一定的洞察,以確定現有加速器設計的瓶頸。在評估過程中,團隊使用了兩個性能指標:FPS(表示吞吐量)和效率(實際和理論峰值吞吐量之間的比率,如等式3所示)。在下面的等式中,β表示一個multiplier在一個時鐘周期內處理的操作數。

      如表II所示,865 SoC只實現了35.8 FPS,整體效率勉強達到16.9%。DNNBuilder的吞吐量稍微更慢(30.5 FPS),但效率更高(81.6),而HybridDNN則數據則更差,吞吐量為12.1 FPS,而效率為(77.5%)。

      2. F-CAD自動化設計流程

      為了應對上述的問題,團隊提出了F-CAD,通過它設計和開發用于多分支DNN的定制硬件加速器。如圖4所示,F-CAD直接連接到流行的機器學習框架,并將開發的解碼器模型作為輸入,以實現更精細的定制。在Analysis步驟中,F-CAD不僅通過提取分層信息(例如層類型、層配置),而且通過提取分支信息(例如,分支編號、每個分支中的層數和層依賴關系)來開始分析目標網絡。然后,profiler開始計算每一層的計算和內存需求,并提供關于分支需求的統計信息,以幫助將目標解碼器映射到提出的加速器架構。輸入同時包含資源預算和分支優先級,以設置資源界限。

      在Construction步驟中,執行層融合以減少層數量,其中輕量層(例如激活層)聚合到其相鄰的主要層,例如控制計算或內存消耗的Conv-like和up-sampling層。然后分離具有共享部分的分支以創建單獨的數據流,相應的層被重新組織并分配給計算需求最高的流。這個策略有助于避免硬件冗余,因為它不會實例化重復的硬件單元,并且會從共享分支創建一個清晰的臨界流(計算量最大),并確保該流在Optimization步驟中得到足夠的關注。

      在融合和重組后,F-CAD分別根據層和分支編號沿X和Y維度導入和擴展擬議的彈性架構。最終,這將生成一個基本加速器,并在步驟3中進行優化。

      在Optimization步驟中,首先確定加速器設計空間。解碼器的層和分支構成了更高維的設計空間,因此搜索優化設計變得復雜。F-CAD引入了DSE引擎以利用跨分支和分支內優化。然后,將隨機搜索應用于跨分支優化,探索跨分支的資源分配方案,并通過考慮設計空間和可用資源為每個分支尋找最佳加速器候選。最后,根據性能、效率和定制需求對候選加速器進行評估。DSE引擎最終通過迭代過程生成全局優化設計。

      3. 加速器架構

      A.基于層的多管道加速器范例

      團隊提出的加速器的設計范例如圖5(A)所示。每個分支的輸入以管道方式處理,并通過屬于所述分支的所有管道階段。對于具有共享部分的分支,按照層重組策略將相應的階段分配給其中一個分支。例如,Branch2和3共享前兩層,所以階段1∼ 2被分配給Branch 2,而后續階段分別執行。第2階段的結果分布到兩個不同的分支。研究人員同時采用了fine-grained管道設計,以降低管道初始延遲。

      B.具有二維擴展能力的彈性架構

      為了實現擬議的加速器范例,F-CAD引入了彈性架構,以便在二維以下靈活擴展加速器。在圖5(b)中,所述彈性架構由基本架構單元組成,其布置在反映層重組結果的二維平面中,每個單元負責一個管道階段。例如,在X軸之后的擴展意味著在這個分支中需要處理更多的階段(本例為三個階段),而沿Y軸的擴展表示在目標解碼器中使用更多分支。在本例中,F-CAD生成一個加速器,其中有三條管道對應于Branch 1.∼ 3。

      在基本架構單元內有三種類型的資源:計算(黃色區域)、片上內存(藍色和綠色區域)和外部內存(紅色區域)資源。上一層的輸入特征圖從左側水平傳遞,其中一部分保存在輸入緩沖區(InBuf)中,從而提供及時的數據供應。同時,DNN參數從外部存儲器中提取,并按照計算順序存儲在權重緩沖區(WeightBuf)中。

      為滿足不同層階段的各種需,每個基本架構單元都是高度可配置。它支持建議的3D并行性,包括沿輸出和輸入通道的兩個展開因子(內核并行因子kpf和通道并行因子cpf)和輸入特征圖的分區因子(H分區)。配置后,計算引擎的H分區數被實例化,每個引擎包含kpf流程元素(PE)來處理計算。提出的基本架構單元同時允許定制輸入特征(DW)、權重(WW)和外部存儲器總線(MW)的位寬度。

      C.具有3D并行性的基本架構

      圖5(C)提供了擬議3D并行性的詳細說明。假設一個具有4×6×3輸入特征映射(InFM)和兩個4×2×2內核的Conv類層。最大輸入并行因子為cpf max=4,最大輸出并行因子為kpf max=2,因為該層包含四個可并行處理的輸入通道和兩個輸出通道。在這種情況下,將輸入和輸出并行因子配置為2(cpf=kpf=2),因此每個計算引擎將實例化兩個PE,每個PE并行執行兩個MAC。由于來自輸入/輸出通道的并行性可能不足以用于Codec Avatar解碼,研究人員通過沿高度維度劃分InFM來添加一個額外的并行性。因此,所有InFM子部分都可以并行處理。本例的總并行因子為cpf×kpf×H-partition=8,實例化了四個PE。

      在實驗測試中,研究人員針對三個嵌入式FPGA平臺(Xilinx Z7045、ZU17EG和ZU9CG)演示F-CAD加速Codec Avatar解碼的能力和可擴展性。由于目標平臺是FPGA,團隊將資源預算Cmax和Mmax設置為目標FPGA中的可用DSP和BRAM,將BWmax設置為DDR3內存帶寬。所有平臺的時鐘頻率均設置為200MHz。

      表I中描述了目標解碼器,其中定制的batch size{1,2,2}對應于Branch 1.∼ 3。大多數VR虛擬化身應用都會考慮這種定制,其中Branch 2和3需要渲染兩眼都能看到鏡面反射效果的兩個HD紋理,而Branch 1僅輸出一個可由雙眼共享的面部幾何圖形。

      表IV列出了實驗結果,其中F-CAD按照建議的彈性架構生成了五個加速器。為了評估搜索速度,團隊對每種情況執行10次獨立搜索,其中N=20(意味著搜索包含20次迭代)和P=200(意味著初始化了200個候選資源分布),所有搜索都使用2.6 GHz的Intel i7 CPU在幾分鐘內收斂。收斂的平均迭代次數為9.2次(最小值:6.8;最大值:13.6)。最終,F-CAD通過考慮定制和資源約束生成優化設計。特別是,案例4的加速器達到最高122.1 FPS,完全滿足VR要求;而案例5的加速器提供了最高的效率峰值96.7%。

      團隊將F-CAD生成的加速器與表V中的現有設計進行比較,以相同的ZU9CG FPGA為目標,配備2520個DSP和1824個BRAM。DNNBuilder的性能和效率受到并行性不足的限制,因此分配的資源沒有得到充分利用。

      另一方面,HybridDNN無法分配更多的DSP,并且留下超過一半的可用DSP未分配。原因是coarse-grained配置需要兩倍大小的加速器實例才能繼續擴展,但BRAM預算不足,成為瓶頸。在研究人員的設計中,F-CAD在相同的資源預算下提供最高的FPS和效率。與DNNBuilder相比,其實現了4.0倍更高的吞吐量和62.5%更高的效率。與HybridDNN相比,在運行16位模型時,其只需多分配2.2倍的DSP,就能提供2.8倍的吞吐量,效率提高21.2%。

      總的來說,團隊在論文中介紹了F-CAD。為了解決特殊的DNN結構和苛刻的性能要求所帶來的獨特挑戰,研究人員提出了支持多分支DNN的可擴展彈性架構和高度可配置的基本架構單元,以提供靈活和可擴展的并行處理。

      然后,其引入了一個多分支動態設計空間來描述硬件配置,并引入了一個高效的DSE引擎,通過考慮各種定制約束和可用資源預算來探索優化的加速器。在實驗中,F-CAD提供了非常高的吞吐量和效率,峰值達到122.1 FPS和91.6%。與最先進的加速器相比,在針對同一FPGA時,F-CAD的吞吐量分別比DNNBuilder和HybridDNN高4.0倍和2.8倍,效率分別高62.5%和21.2%。

    +1

    來源:映維網

    推薦文章

    免费国产黄在线观看,吃农村哺乳丰满妇女奶水,7788亚洲精品无码专区在线
  • <menu id="4s8ek"><strong id="4s8ek"></strong></menu>
    <menu id="4s8ek"><tt id="4s8ek"></tt></menu>