Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks

Google Workloads for Consumer Devices: Mitigating Data Movement Bottlenecks(2018)

1. 摘要:
  • 目前正處於消費類設備數量爆炸增長的時代,包括智能手機,基於網絡的計算機和可穿戴設備等。這些設備由於電池和熱功耗的限制,能效是首要問題
  • 數據移動是消費設備中總系統能耗和執行時間的主要貢獻者。在存儲系統和計算單元之間的數據移動所產生的能耗和性能開銷明顯高於計算成本
  • 論文工作:
    • 全面分析了數據移動對幾種廣泛應用的谷歌客戶(consumer)工作負載的能耗和性能影響:Ghrome網頁瀏覽器, TensorFlow Mobile(客戶端的tensorflow), Google的機器學習框架, 視頻播放, 視頻捕捉(capture)。(每個月都有超過十億的活躍用戶)
    • 論文通過將部分的計算在靠近內存的地方進行,即PIM(processing-in-memory)能夠顯著的減少這些工作負載中的數據移動
    • 四種工作負載中都包含了簡單的原語和函數,對整體的數據移動產生了巨大的影響。對於這些原語和函數,論文采用PIM來實現它們
    • 論文分析表明,將這些原語和函數在由簡單核心或者專用加速器組成的PIM邏輯中,可以消除大量的數據移動,並顯著減少系統總能量(avg. 55.4%)和執行時間(avg. 54.2%)
2. 介紹:
  • 能耗是消費類設備的首要問題,但是這些設備的性能需求也在每年急劇增長,以支持新興應用,例如4K視頻流和錄製,虛擬現實和增強顯示等。
  • 消費類設備集成了許多耗電組件,例如CPU,GPU,專用加速器,傳感器和高分辨率屏幕。
  • 限制消費類設備性能增長的兩個趨勢:
    • 鋰電池在過去的20年中僅增加了一倍
    • 熱功耗已成爲嚴重的性能約束
  • 論文基於全面的工作負載分析發現:在消費類設備的多種能源消耗中(例如,CPU,GPU,專用加速器,內存),主內存系統與計算單元(例如,CPU,GPU,專用加速器)之間的數據移動是系統總能量的主要貢獻者
    • 當用戶滾動瀏覽Google Docs網頁時,在內存和計算單元之間移動數據會導致系統總能耗的77%
    • 移動數據的能源成本比計算的能源成本高几個數量級
  • 在論文研究的所有應用程序中,平均系統總能量的62.7%花費在主存儲器和計算單元之間的數據移動上
  • 降低數據移動成本的一種可行方法:在靠近數據的地方執行應用程序中大量數據移動的部分
  • 近數據處理(PIM)
    • 3D堆疊DRAM架構在單個芯片中堆疊了多層DRAM陣列,並使用垂直硅通孔(TSV)在各層之間提供比DRAM與CPU之間可用的單芯片帶寬大得多的帶寬
    • 3D-stacked DRAM體系結構包括專用邏輯層,該邏輯層能夠提供低複雜度邏輯功能(由於熱約束),並具有到DRAM層的高帶寬,低延遲的連接性
    • 利用邏輯層來執行內存處理成爲近數據處理
    • PIM允許CPU分派應用程序的某些部分,以在接近DRAM的計算單元上執行
  • 使用PIM進行卸載(offload)計算的兩個好處:
    • 消除了主存和傳統處理器之間一大部分的數據移動
    • 可以利用對3D-stacked DRAM內部數據的高帶寬和低延遲訪問的優勢
  • 在消費類設備中引入PIM的挑戰:
    • 這類設別在面積和能耗預算方面非常嚴格
    • 不論是可以進行PIM的內存技術,還是其他某種形式的3D-stacked/具有計算能力的內存,任何額外的邏輯都可能轉化爲巨大的成本
    • 主要挑戰:哪一種in-memory logic既可以最大化能效,又可以成本儘可能的小
  • 論文的第二個關鍵發現:在檢查的所有消費者工作負載中,通常有簡單的函數和原語(PIM目標優化的目標)負責總體數據移動的大部分。
    • 這些函數和原語的範圍從數據重組操作(例如 tiling, packing)到 插值和量化。
    • 這些PIM目標中許多是由簡單的操作組成的,例如memcopy, memset和一些基本算數和按位運算
  • 爲了處理PIM目標中的簡單操作,論文提出了兩種方案:
    • 小型低功耗通用嵌入式核心(PIM核心)
    • 一組小型固定功能加速器將PIM目標實現爲PIM邏輯(PIM加速器)
  • PIM加速器帶來的效果比PIM核心更好,但是PIM加速器要求針對每個單獨的工作負載實施自定義邏輯
3. 分析和緩解數據移動
  • 工作負載的分析方法
    • 實驗平臺:配備Intel Celeron(N3060雙核)SoC 和2GB DRAM的Chromebook。實驗室關閉WIFI,亮度最低
    • 基於SoC中硬件性能計數器進行性能和存儲系統中的流量分析。利用已有的能耗模型和硬件性能計數器計算整體的能耗。使用具有22nm製程技術的CACTI-P 6.5 來估計L1和L2緩存能耗
    • PIM核心的能耗使用ARM cortex-R8進行估計,PIM加速器的能耗則保守估計爲比CPU核高20倍
  • 識別PIM的目標:
    • 使用硬件性能計數器和能耗模型來識別可能成爲PIM目標的候選函數:(1)首先該函數消耗了工作負載中所有函數中最大的能量;(2)該函數的數據移動消耗了總工作能量的很大一部分;(3)該函數佔用了大量的內存(LLC的MKPI大於10);(4)數據移動是該函數能耗的最大組成部分
    • 對於候選函數利用兩個判斷條件進行檢查:(1)捨棄所有在簡單的PIM邏輯上運行會造成性能損失的候選者;(2)捨棄任何需要比3D-stacked存儲器的邏輯層中可用面積(area)更多的區域的PIM目標
  • 在3D-stacked DRAM中實現PIM目標
    • 兩種實現方案:(1)通用PIM核心,任何PIM目標都可以使用單個PIM內核;(2)固定功能的PIM加速器,爲每個PIM目標設計自定義邏輯
    • 對於PIM核,論文設計了一個定製的64位低功耗單核,類似於ARM Cortex-R8。沒有實現複雜的ILP技術,例如超標量,複雜的轉移預測等。論文發現有一些PIM目標具有高度的數據並行性,因此將多個功能單元合併成了一個SIMD單元,寬度爲4
    • 對於每個PIM目標的PIM加速器,首先設計一個定製的in-memory邏輯單元,只具有固定的功能邏輯,在邏輯層中執行PIM目標的單個線程。同時爲了利用PIM目標的數據並行性,當該單元拷貝多份,以支持多個線程。每個PIM加速器所需的面積取決於所實現的PIM目標
4. Chrome Web Browser
  • 用戶對瀏覽器速度的感知基於三個因素:(1)頁面加載時間,(2)網頁平滑滾動(page scrolling),(3)瀏覽器選項卡之間的快速切換。

  • 論文主要關注影響這三個因素的兩種用戶交互,並控制用戶的瀏覽體驗:(1)頁面滾動和(2)標籤切換。(每次互動都包含頁面加載)

  • 不同網頁上的頁面滾動(Page scrolling)的能耗分解情況

    • 41.9%的能耗花費在兩個數據密集型的組件中:texture tiling(紋理平鋪)和color blitting(顏色傳輸:在柵格化過程中由Skia庫調用的)

    • 紋理平鋪:圖形驅動程序將線性位圖數據重組爲平鋪格式,以用於 GPU

  • 滾動瀏覽Google Docs 網頁時系統中的能源消耗的詳細分解

    • 總能耗的77%是由於數據移動引起的。數據移動能量包括DRAM,片外互連和片上高速緩存消耗的能量

    • 由紋理平鋪和顏色傳輸(blitting)處理產生的數據移動就佔系統總能量的37.7%
      在這裏插入圖片描述

  • 紋理平鋪過程中發生的主要步驟和相關的數據移動:在僅CPU和CPU+PIM的兩種情況下的處理過程

    • 通過將紋理平鋪移動到PIM,我們可以釋放CPU(5)來執行Chrome中其他重要的計算密集型任務,例如處理用戶交互,執行JavaScript代碼或 柵格化其他渲染對象
    • 紋理平鋪僅需要簡單的原語:內存複製,按位運算和簡單的算術運算(例如加法)。這些操作可以在我們的PIM核上以高性能執行,並且可以實現爲固定功能的PIM加速器
    • 紋理平鋪PIM邏輯所需的面積很小,這使得PIM邏輯在具有3D堆棧存儲器的消費類設備中實現可行
      在這裏插入圖片描述
5. TensorFlow Mobile :Google TensorFlow ML庫的一種版本,專門針對移動和嵌入式平臺量身定製
  • TensorFlow Mobile上執行的所有任務都使用在雲服務器上預先訓練的神經網絡在消費類設備上進行推理。

  • 能耗和性能分析:四種神經網絡的具體能耗和性能分析

    • 由於卷積神經網絡(CNN)主要由2-D卷積層和全連接層組成,因此大部分能量都花在這兩層上

    • 打包/拆包和量化消耗了系統能量的39.3%。打包和解包對矩陣的元素進行重新排序,以最大程度地減少矩陣乘法期間的緩存失效。 量化將32位浮點數和整數轉換爲8位整數,以縮短推理的執行時間和能耗

    • 在四個網絡中,數據移動花費了系統總能量的57.3%,並且發現54.4%的數據移動能量來自打包/拆包和量化(大量的數據移動)

    • 執行時間的重要部分(平均27.4%)花費在打包和量化過程
      在這裏插入圖片描述
      在這裏插入圖片描述

  • 量化過程在:僅CPU和CPU+PIM兩種情況下的執行過程

    • 量化開銷的大部分來自數據移動。 由於輸入矩陣量化和結果矩陣重新量化都需要掃描大型矩陣兩次,因此它們的緩存局部性較差,並且會導致大量數據移動。

    • 將量化(5) 和重新量化(6) 到PIM都消除了數據移動。 同時釋放了CPU的時間來專注於GEMM(GEneralized Matrix Multiplication )執行,並允許下一個Conv2D操作與重新量化並行執行(7)
      在這裏插入圖片描述

6. 系統整合
  • 用於高效卸載(將代碼放到PIM中執行)的軟件接口
    • 使用兩個宏來標識PIM目標,這兩個宏標記了應分配給PIM的代碼段的開始和結束
    • 編譯器將這些宏轉換爲新添加到ISA的指令,這些指令觸發並結束PIM核執行
  • CPU和PIM邏輯之間的一致性
    • 爲了充分利用卸載PIM目標到PIM的好處,需要支持高效的CPU和PIM邏輯之間的通信以允許工作負載的不同部分之間進行協調,排序和同步
    • 一致性協議需要支持高效的同步,保留可編程性,保留使用PIM的好處
    • 論文提出了一種簡單的細粒度一致性技術。該技術在邏輯層是哦那個本地的PIM-side目錄來保持PIM核之間的一致性,同時支持低開銷、細粒度的CPU和PIM邏輯之間的一致性。
    • CPU-side目錄作爲爲系統的主要一致性點,和系統中的緩存和PIM-side目錄進行交互,維護整體的一致性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章