Skip to main content
QUICK REVIEW

[论文解读] StreamBox-HBM: Stream Analytics on High Bandwidth Hybrid Memory

Hongyu Miao, Myeongjae Jeon|arXiv (Cornell University)|Jan 4, 2019
Advanced Database Systems and Queries参考文献 47被引用 16
一句话总结

StreamBox-HBM 是一种流分析引擎,通过在 HBM 中存储的键指针数组(KPAs)上使用顺序访问排序,优化了混合 HBM-DRAM 系统上的性能,动态管理数据放置以利用 HBM 的高带宽,同时最小化容量使用。它在 64 核 Intel Knights Landing 系统上实现了每秒 1.1 亿条记录和 238 GB/s 的内存带宽,性能比现有引擎最高提升 10 倍。

ABSTRACT

Stream analytics have an insatiable demand for memory and performance. Emerging hybrid memories combine commodity DDR4 DRAM with 3D-stacked High Bandwidth Memory (HBM) DRAM to meet such demands. However, achieving this promise is challenging because (1) HBM is capacity-limited and (2) HBM boosts performance best for sequential access and high parallelism workloads. At first glance, stream analytics appear a particularly poor match for HBM because they have high capacity demands and data grouping operations, their most demanding computations, use random access. This paper presents the design and implementation of StreamBox-HBM, a stream analytics engine that exploits hybrid memories to achieve scalable high performance. StreamBox-HBM performs data grouping with sequential access sorting algorithms in HBM, in contrast to random access hashing algorithms commonly used in DRAM. StreamBox-HBM solely uses HBM to store Key Pointer Array (KPA) data structures that contain only partial records (keys and pointers to full records) for grouping operations. It dynamically creates and manages prodigious data and pipeline parallelism, choosing when to allocate KPAs in HBM. It dynamically optimizes for both the high bandwidth and limited capacity of HBM, and the limited bandwidth and high capacity of standard DRAM. StreamBox-HBM achieves 110 million records per second and 238 GB/s memory bandwidth while effectively utilizing all 64 cores of Intel's Knights Landing, a commercial server with hybrid memory. It outperforms stream engines with sequential access algorithms without KPAs by 7x and stream engines with random access algorithms by an order of magnitude in throughput. To the best of our knowledge, StreamBox-HBM is the first stream engine optimized for hybrid memories.

研究动机与目标

  • 解决在 HBM 容量有限但带宽高的混合内存系统中实现高吞吐量和低延迟流分析的挑战。
  • 克服 HBM 的优势(顺序访问、高带宽)与流分析对分组操作中随机访问哈希的依赖之间的不匹配。
  • 设计一个运行时系统,动态管理 HBM 与 DRAM 之间的数据放置,并暴露细粒度并行性以匹配 HBM 的性能特征。
  • 通过最小化 HBM 占用空间并最大化利用 HBM 带宽,实现可扩展的高性能流处理,方法是采用顺序算法。
  • 证明在流分析工作负载中,软件驱动的数据管理比硬件透明的内存管理更有效。

提出的方法

  • 动态提取分组操作所需的键和记录指针,形成键指针数组(KPAs),并将它们仅存储在 HBM 中,以最小化内存占用。
  • 在 KPAs 上使用顺序访问的并行排序、归并和向量化操作,以利用 HBM 的高带宽和低延迟处理分组数据。
  • 通过乱序捆绑处理暴露数据并行性和流水线并行性,动态平衡 Knights Landing 上 64 个核心的工作负载。
  • 根据运行时资源使用情况和工作负载特征,通过将完整记录分配在 DRAM 中、仅将 KPA 元数据分配在 HBM 中,实现混合内存的放置管理。
  • 将流式窗口划分为捆绑块,以支持任务级并行性,并同时优化吞吐量和低输出延迟。
  • 利用宽向量指令和有利于顺序访问的内存访问模式,与传统在 DRAM 中基于哈希的分组方法形成对比。

实验结果

研究问题

  • RQ1在 HBM 上使用顺序访问算法是否能优于在 DRAM 中使用随机访问哈希算法,用于流分析的分组操作?
  • RQ2如何有效管理有限的 HBM 容量,以在高吞吐量流处理中实现最大性能?
  • RQ3哪些运行时机制能够实现 HBM 与 DRAM 之间动态、应用感知的数据放置,以同时优化带宽和容量?
  • RQ4在混合内存系统中,软件驱动的数据管理在流分析中相比硬件透明的内存管理,能多大程度上实现性能超越?
  • RQ5流引擎是否能仅使用 HBM 存储关键的分组数据结构,实现亚秒级输出延迟和每秒数千万条记录的处理性能?

主要发现

  • StreamBox-HBM 在 64 核 Intel Knights Landing 系统的混合 HBM-DRAM 环境下,实现了每秒 1.1 亿条记录和 238 GB/s 的内存带宽。
  • 与不使用 KPAs 的顺序访问算法相比,其吞吐量高出 7 倍。
  • 与在 DRAM 中使用随机访问哈希算法的引擎相比,性能提升了近一个数量级。
  • 该系统根据工作负载和资源使用情况,动态管理 HBM 和 DRAM 中 KPA 的放置,最小化 HBM 占用空间,同时最大化带宽利用率。
  • 在 HBM 中对 KPAs 使用顺序排序,即使在 HBM 容量有限的情况下,也能实现高性能,证明了软件优化数据放置的有效性。
  • StreamBox-HBM 是首个专为混合 HBM-DRAM 内存系统设计并优化的流分析引擎。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。