March 2017 Theme: 提高能效以及利用存储内处理和近数据处理提高并行性
特邀编辑导言: Kevin Rudd和Richard Murphy

大数据时代肯定会带来显著进步,但同时也带来了很多新挑战。存储和分析这些数据所需的存储和处理能力将很快超过当前基础设施的能力范围。构建大型数据中心的代价昂贵,而且趋势表明,需求和成本的增长速度仍将超过摩尔定律。

对于平衡的百亿亿次平台来说,存储器功耗在总功耗中的占比预计会增长。劳伦斯·利弗莫尔国家实验室的Maya Gokhale曾表示,64位整数运算大约需要消耗1皮焦(PJ),但为了把运算所需数据从DRAM中读取出来(即使不考虑数据传输消耗)却需要16000PJ/bit。斯坦福大学的Bill Dally也曾估计,32位浮点运算需要3.1PJ,而从DRAM读取出来需要640 PJ。

显然,对计算而言,把数据移动到处理器(以及取回来)这种做法不可持续。换个思路,为什么不把处理移入数据呢?今日计算2017年3月号旨在探讨当前关于内存处理(processing in memory, PIM)和近数据处理(near-data processing, NDP)的研究进展,这些方法可能成为解决很多问题的及时雨。除了七篇关于这个主题的近期文章,我们还在边栏给出了反映此领域过去50年发展历程的相关文章和资源。

历史背景

将计算移向数据的想法并不新鲜。大约公元前300年,学者们就到亚历山大图书馆学习,在那里他们立刻获得所有图书,而不是每次索取一本书。同样,PIM把处理移动到存储器,这样就不用每次都去获取一个数据。

在整个信息时代,研究者们已经屡次尝试PIM:

  • 上世纪60年代后期,Harold Stone提出逻辑进缓存,以及处理器和存储器放在同一模块之中。
  • 上世纪80年代后期,Inmos Transputer芯片裸片上就同时配置了处理器和存储器。
  • 上世纪90年代,Peter Kogge的EXECUBE芯片裸片上同时配置了处理器和存储器。
  • 2000年代,Christoforos Kozyrakis的VIRAM矢量处理器就嵌入在DRAM中。
  • 2010年代,AMD公司的TOP-PIM在3D叠装裸片中同时配置了处理器和存储器。

这些以及其他许多实现在实际中取得了一些成功,但一直在高成本和存储器容量有限中挣扎。

一种现代方法

如果处理和存储集成过去没成功,为什么我们还要继续坚持这个想法?答案很简单,现在的技术可以克服过去的问题。现在我们有:

  • 更加密集的存储技术,3D存储器叠层已经成功展示。
  • 非常有效的2.5D装配和异构裸片的3D叠层。
  • 新的架构和制造技术,可以帮助平衡性能和需求。
  • 更好的数据移动性能和协议。

此外,现在我们已经打破了存储和电源墙,打破了曾经托起多代计算系统的摩尔定律和丹纳德定律。我们相信,这种路线出现恰逢其时,而且需求强烈。

文章

在文章面向使用存储内处理的图算法的细粒度任务迁移(Fine-Grained Task Migration for Graph Algorithms using Processing in Memory)中,Paula Aguilera和她的同事们使用图算法中的不规则访问模式来激发对3D立方存储器NDP的需求。该文结合了经典PIM(包括任务移动)的许多核心历史元素对现代异构设计中的图算法提供加速。

丹纳德尺度定律曾导致单线程性能相对平坦化。受到该定律结束的激励,文章面向存储内分析框架的实用近数据处理(Fine-Grained Task Migration for Graph Algorithms using Processing in Memory)针对数据分析提出了一种基于PIM的系统。Mingyu Gao, Grant Ayers和Christos Kozyrakis探索了一致性和同步性问题。相比于同一动机的先前文章,该文采用了更广泛的应用,除了图问题,还调查了MapReduce和深度神经网络。

在标准存储模块中基于单ISA异构处理的近DRAM加速(Near-DRAM Acceleration with Single-ISA Heterogeneous Processing in Standard Memory Modules)研究了加速一种统一架构的潜力,这种架构把执行单元移近标准DRAM,同时还保持单ISA。Hadi Asghari-Moghaddam和他的同事们认为,他们的系统相比于基准系统减少了大约65%的能量消耗,同时性能翻番。这篇文章让人想起Stone的早期工作。

Ping Chi 和她的同事在文章PRIME:面向在基于ReRAM主存中进行神经网络计算的新颖存储内处理结构(PRIME: A Novel Processing-in-Memory Architecture for Neural Network Computation in ReRAM-Based Main Memory)中研究了利用新型存储器件技术实现新兴计算模型的潜力。该文对用面向存储的制造优化技术来实现新计算方法的潜在权衡进行了有趣的讨论。

文章面向内存中并行数据重组的HAMLeT架构(HAMLeT Architecture for Parallel Data Reorganization in Memory)中,Berkin Akin,Franz Franchetti 和 James C. Hoe探讨了对主机处理器使用PIM来帮助数据重组同时保持存储器系统服务的潜力。这是PIM研究中的一个经常被忽视的话题,因为存储系统基本上是数据移动引擎。

文章透明卸载和映射(TOM):GPU系统中对程序员透明的近数据处理(Transparent Offloading and Mapping (TOM): Enabling Programmer-Transparent Near-Data Processing in GPU Systems)介绍了一种通过软硬件结合机制,可将处理透明地卸载到3D逻辑层中基于PIM的GPU加速器中。Kevin Hsieh和他的同事认为,相比于基准GPU系统无法将计算卸载到3D叠层存储器,TOM系统显著提高了性能。

文章HRL:面向近数据处理的高效灵活的可重构逻辑(HRL: Efficient and Flexible Reconfigurable Logic for Near-Data Processing)首次研究用DRAM实现可重构逻辑,比传统基于FPGA的方法产生了一个不同操作点。Mingyu Gao和Christos Kozyrakis在文章中描述了他们的方法是如何结合粗粒度和细粒度逻辑块,为了数据和控制信号如何分离路由网,以及使用专门单元有效支持分析工作负载中的分支操作和不规则数据分布。

结论

随着把尺度扩展的注意力从以前的晶体管技术转向体系结构,摩尔定律的终结重新激起了大家对PIM和NDP方法的兴趣。我们希望本期今日计算主题能激发对这些重要的高能效解决方案的进一步研究。

客座编辑

Kevin Rudd是物理学实验室的计算机系统研究员,IEEE Micro和今日计算编委。他的联系方式kevin@lps.umd.edu

Richard Murphy 是美光科技公司先进计算解决方案探索部主任。他的研究组重点关注计算机体系结构、存储系统、超级计算机和各级别数据分析平台的研究开发,以及颠覆性移动/嵌入式技术特别是PIM的研究。他曾经带领多个大型多学科团队部署新技术。他还合伙创建了Graph 500基准,作为一种催化剂,用于辨别大规模分析问题中数据移动的挑战。墨菲曾供职于美国桑迪亚国家实验室、甲骨文公司和高通公司。他是佐治亚技术学院和博伊西州立大学兼职教师,撰写了二十多份论文和专利。他从圣母大学获得计算机科学和工程学博士学位,是IEEE高级会员。他的个人网站是http://richardmurphy.net,联系方式为rcmurphy@micron.com 。

相关资源

  1. Active Memory Cube: A Processing-in-Memory Approach to Power Efficiency in Exascale Systems,” by Ravi Nair, IBM TJ Watson Research Center
    Demonstrates the compelling possibility of using 3D memory devices to support NDP
  2. Near Data Processing: Are we there yet?” by Maya Gokhale, Lawrence Livermore National Laboratory
    Explores the potential of 3D integrated memory stacks to provide PIM-like functionality
  3. Workshops on Near-Data Processing:
    1st, 2013
    2nd, 2014
    3rd, 2015
    Focuses on changes since the first PIM era

相关文章

  1. H.S. Stone, “A Logic-in-Memory Computer,” IEEE Transactions on Computers, vol. 19, no. 1, 1970, pp. 73-78.
    Describes the first cache-based example of a PIM-based processing device
  2. M. Homewood et al., “The IMS T800 Transputer,” IEEE Micro, vol. 7, no. 5, 1987, pp. 10-26.
    Provides an early example of fused memory and processing
  3. P.M. Kogge, “EXECUBE-A New Architecture for Scaleable MPPs,” International Conference on Parallel Processing, vol. 1, 1994.
    Is the first example of a true in-DRAM PIM processor
  4. C. Kozyrakis, “Scalable Vector Media-processors for Embedded Systems,” PhD dissertation, Dept. Computer Science, Univ. of California, Berkeley, 2002.
    Demonstrates the potential for multimedia such as SIMD vector extensions to be coupled to a DRAM bank
  5. D. Zhang et al., “TOP-PIM: throughput-oriented programmable processing in memory,” International symposium on high-performance parallel and distributed computing (HPDC), 2014, pp. 85-98.
    Provides an analysis of moving data-intensive computation to the memory
  6. A.M. Caulfield et al., “A Cloud-Scale Acceleration Architecture,” IEEE/ACM International Symposium on Microarchitecture(MICRO), 2016, pp. 1-13.
    Describes the use of FPGAs as reconfigurable network processors between switches and servers in the hyperscale data center
  7. S. Jun et al., “BlueDBM: Distributed Flash Storage for Big Data Analytics,” ACM Transactions on Computer Systems, vol. 34, no. 3, 2016.
    Demonstrates the potential for flash memory-based storage acceleration using interconnected smart devices