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%
      Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks_第1张图片

  • 纹理平铺过程中发生的主要步骤和相关的数据移动:在仅CPU和CPU+PIM的两种情况下的处理过程

    • 通过将纹理平铺移动到PIM,我们可以释放CPU(5)来执行Chrome中其他重要的计算密集型任务,例如处理用户交互,执行JavaScript代码或 栅格化其他渲染对象
    • 纹理平铺仅需要简单的原语:内存复制,按位运算和简单的算术运算(例如加法)。这些操作可以在我们的PIM核上以高性能执行,并且可以实现为固定功能的PIM加速器
    • 纹理平铺PIM逻辑所需的面积很小,这使得PIM逻辑在具有3D堆栈存储器的消费类设备中实现可行
      Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks_第2张图片
5. TensorFlow Mobile :Google TensorFlow ML库的一种版本,专门针对移动和嵌入式平台量身定制
  • TensorFlow Mobile上执行的所有任务都使用在云服务器上预先训练的神经网络在消费类设备上进行推理。

  • 能耗和性能分析:四种神经网络的具体能耗和性能分析

    • 由于卷积神经网络(CNN)主要由2-D卷积层和全连接层组成,因此大部分能量都花在这两层上

    • 打包/拆包和量化消耗了系统能量的39.3%。打包和解包对矩阵的元素进行重新排序,以最大程度地减少矩阵乘法期间的缓存失效。 量化将32位浮点数和整数转换为8位整数,以缩短推理的执行时间和能耗

    • 在四个网络中,数据移动花费了系统总能量的57.3%,并且发现54.4%的数据移动能量来自打包/拆包和量化(大量的数据移动)

    • 执行时间的重要部分(平均27.4%)花费在打包和量化过程
      Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks_第3张图片
      Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks_第4张图片

  • 量化过程在:仅CPU和CPU+PIM两种情况下的执行过程

    • 量化开销的大部分来自数据移动。 由于输入矩阵量化和结果矩阵重新量化都需要扫描大型矩阵两次,因此它们的缓存局部性较差,并且会导致大量数据移动。

    • 将量化(5) 和重新量化(6) 到PIM都消除了数据移动。 同时释放了CPU的时间来专注于GEMM(GEneralized Matrix Multiplication )执行,并允许下一个Conv2D操作与重新量化并行执行(7)
      Google Workloads for Consumer Devices Mitigating Data Movement Bottlenecks_第5张图片

6. 系统整合
  • 用于高效卸载(将代码放到PIM中执行)的软件接口
    • 使用两个宏来标识PIM目标,这两个宏标记了应分配给PIM的代码段的开始和结束
    • 编译器将这些宏转换为新添加到ISA的指令,这些指令触发并结束PIM核执行
  • CPU和PIM逻辑之间的一致性
    • 为了充分利用卸载PIM目标到PIM的好处,需要支持高效的CPU和PIM逻辑之间的通信以允许工作负载的不同部分之间进行协调,排序和同步
    • 一致性协议需要支持高效的同步,保留可编程性,保留使用PIM的好处
    • 论文提出了一种简单的细粒度一致性技术。该技术在逻辑层是哦那个本地的PIM-side目录来保持PIM核之间的一致性,同时支持低开销、细粒度的CPU和PIM逻辑之间的一致性。
    • CPU-side目录作为为系统的主要一致性点,和系统中的缓存和PIM-side目录进行交互,维护整体的一致性

你可能感兴趣的:(computer,architecture)