Simple graph algorithms such as PageRank have recently been the target of numerous hardware accelerators. Yet, there also exist much more complex graph mining algorithms for problems such as clustering or maximal clique listing. These algorithms are memory-bound and thus could be accelerated by hardware techniques such as Processing-in-Memory (PIM). However, they also come with non-straightforward parallelism and complicated memory access patterns. In this work, we address this with a simple yet surprisingly powerful observation: operations on sets of vertices, such as intersection or union, form a large part of many complex graph mining algorithms, and can offer rich and simple parallelism at multiple levels. This observation drives our cross-layer design, in which we (1) expose set operations using a novel programming paradigm, (2) express and execute these operations efficiently with carefully designed set-centric ISA extensions called SISA, and (3) use PIM to accelerate SISA instructions. The key design idea is to alleviate the bandwidth needs of SISA instructions by mapping set operations to two types of PIM: in-DRAM bulk bitwise computing for bitvectors representing high-degree vertices, and near-memory logic layers for integer arrays representing low-degree vertices. Set-centric SISA-enhanced algorithms are efficient and outperform hand-tuned baselines, offering more than 10x speedup over the established Bron-Kerbosch algorithm for listing maximal cliques. We deliver more than 10 SISA set-centric algorithm formulations, illustrating SISA's wide applicability.
翻译:PageRank 等简单图形算法最近成为许多硬件加速器的目标。 然而,对于集群或最大分类列表等问题,也存在更复杂的图形挖掘算法。 这些算法具有内存性,因此可以通过诸如Memory(PIM)等硬件技术加速。 但是,它们也具有非直角向前平行和复杂的内存访问模式。 在这项工作中,我们用简单但令人惊讶的强大观察来解决这个问题: 套套头(如交错或联结)的操作构成许多复杂的图形开采算法的一大部分, 并且可以在多个级别提供丰富和简单的平行。 这种观察推动我们的跨层设计, 其中我们(1) 使用新编程编程范式, (2) 表达和执行这些操作, 使用精心设计的、 定心重的ISA 扩展, (3) 使用 PIM 加速 SISA 指令。 关键的设计理念是通过将SISA 指令的带宽度操作定位到两种类型的 PIM : 用DRM 批量、 批量化的批量计算, 提供比高级的、 更高级的、 更高级的Scial- scial-ral-sal-slieval-lial 10cal-ral-lieval-seral-lial-lia-lia-lia-liads 10级的比高级的比高级 级级级级的比高级 级码 级级级级级级级级级级级级级级的比高级的比高级的递算, 级算, 级程级程级程级程级程- 级程级程- 级程。