TCIM: Triangle Counting Acceleration With Processing-In-MRAM Architecture

Triangle counting (TC) is a fundamental problem in graph analysis and has found numerous applications, which motivates many TC acceleration solutions in the traditional computing platforms like GPU and FPGA. However, these approaches suffer from the bandwidth bottleneck because TC calculation involves a large amount of data transfers. In this paper, we propose to overcome this challenge by designing a TC accelerator utilizing the emerging processing-in-MRAM (PIM) architecture. The true innovation behind our approach is a novel method to perform TC with bitwise logic operations (such as AND), instead of the traditional approaches such as matrix computations. This enables the efficient in-memory implementations of TC computation, which we demonstrate in this paper with computational Spin-Transfer Torque Magnetic RAM (STT-MRAM) arrays. Furthermore, we develop customized graph slicing and mapping techniques to speed up the computation and reduce the energy consumption. We use a device-to-architecture co-simulation framework to validate our proposed TC accelerator. The results show that our data mapping strategy could reduce 99.99% of the computation and 72% of the memory WRITE operations. Compared with the existing GPU or FPGA accelerators, our in-memory accelerator achieves speedups of 9× and 23.4×, respectively, and a 20.6× energy efficiency improvement over the FPGA accelerator.

[1]  Jure Leskovec,et al.  {SNAP Datasets}: {Stanford} Large Network Dataset Collection , 2014 .

[2]  A. Fert,et al.  Current-induced magnetization switching in atom-thick tungsten engineered perpendicular magnetic tunnel junctions with large tunnel magnetoresistance , 2017, Nature Communications.

[3]  Shaahin Angizi,et al.  GraphS: A Graph Processing Accelerator Leveraging SOT-MRAM , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  Yiran Chen,et al.  GraphR: Accelerating Graph Processing Using ReRAM , 2017, 2018 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[5]  Anand Raghunathan,et al.  Computing in Memory With Spin-Transfer Torque Magnetic RAM , 2017, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[6]  Shaahin Angizi,et al.  AlignS: A Processing-In-Memory Accelerator for DNA Short Read Alignment Leveraging SOT-MRAM , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[7]  Bing Li,et al.  An Overview of In-memory Processing with Emerging Non-volatile Memory for Data-intensive Applications , 2019, ACM Great Lakes Symposium on VLSI.

[8]  Cong Xu,et al.  NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging Nonvolatile Memory , 2012, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Yu Wang,et al.  GraphSAR: a sparsity-aware processing-in-memory architecture for large-scale graph processing on ReRAMs , 2019, ASP-DAC.

[10]  Jinjun Xiong,et al.  Triangle Counting and Truss Decomposition using FPGA , 2018, 2018 IEEE High Performance extreme Computing Conference (HPEC).

[11]  Vachik S. Dave,et al.  Triangle counting in large networks: a review , 2018, WIREs Data Mining Knowl. Discov..

[12]  Yanzhi Wang,et al.  GraphQ: Scalable PIM-Based Graph Processing , 2019, MICRO.

[13]  Onur Mutlu,et al.  In-DRAM Bulk Bitwise Execution Engine , 2019, ArXiv.

[14]  Jinjun Xiong,et al.  Collaborative (CPU + GPU) Algorithms for Triangle Counting and Truss Decomposition , 2018, 2018 IEEE High Performance extreme Computing Conference (HPEC).

[15]  Cong Xu,et al.  Pinatubo: A processing-in-memory architecture for bulk bitwise operations in emerging non-volatile memories , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[16]  Yiran Chen,et al.  Exploiting Spin-Orbit Torque Devices As Reconfigurable Logic for Circuit Obfuscation , 2018, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[17]  Yiran Chen,et al.  Radiation-Induced Soft Error Analysis of STT-MRAM: A Device to Circuit Approach , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.