Simple graph algorithms such as PageRank have 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 nonstraightforward parallelism and complicated memory access patterns. In this work, we address this problem 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 等简单图形算法是许多硬件加速器的目标。 然而,对于集群或最大 clorique 列表等问题,也存在更复杂得多的图形挖掘算法。 这些算法是内存式的,因此可以通过像 PIM (PIM) 等硬件技术加速。 但是,这些算法也具有非直角的平行和复杂的内存访问模式。 在这项工作中,我们用简单但令人惊讶的强大观察来解决这个问题: 套头(如交错或联结)上的操作构成许多复杂图形开采算法的一大部分, 并且可以在多个级别提供丰富和简单的平行的图形挖掘算法。 这种观察推动我们的跨层设计, 其中我们(1) 使用新编程编程范式, (2) 表达和执行这些操作,使用精心设计的定置的定置中心核心 ISA (SISA 扩展) 和 (3) 使用 PIM 加速 SISA 指令。 关键的设计理念是通过将 SISA 指令的带宽需要, 向两种类型的 PIM 设置操作: 用DM 批量化的批量计算, 用于近度的Bitbribbly 和简单平行的算法,, 用于比级- 更近水平级的Slical- slical- slical- liver liveral- sliver liver 的比 级 级 级 级码 级码 的 级 级 的 的 的 级 级 级 的 级 级 级 级码- 级算法 级定算法 的 的 级码- 级 级 级 的 级码- 级 级 级 级 级 级 级 级 级 级 级 级 级码- 级 级 级 级 级 级 级 级 级 级的 级码- 级的 级码- 级程- 级程- 级定的 级 级 级 级 级 级 级 级 级 级 级 级 级 级码- 级码- 级码- 级码- 级码- 级码- 级 级码- 级码-