A Compiler for Automatic Selection of Suitable Processing-in-Memory Instructions

被引:0
|
作者
Ahmed, Hameeza [1 ]
Santos, Paulo C. [2 ]
Lima, Joao P. C. [2 ]
Moura, Rafael F. [2 ]
Alves, Marco A. Z. [3 ]
Beck, Antonio C. S. [2 ]
Carro, Luigi [2 ]
机构
[1] NED Univ, Dept Comp & Informat Syst Engn, Karachi, Pakistan
[2] Univ Fed Rio Grande do Sul, Inst Informat, Porto Alegre, RS, Brazil
[3] Univ Fed Parana, Dept Informat, Curitiba, Parana, Brazil
关键词
Compiler; Processing in Memory; Near-data computing; Vector instructions; SIMD; 3D-Stacked memories;
D O I
10.23919/date.2019.8714956
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Although not a new technique, due to the advent of 3D-stacked technologies, the integration of large memories and logic circuitry able to compute large amount of data has revived the Processing-in-Memory (PIM) techniques. PIM is a technique to increase performance while reducing energy consumption when dealing with large amounts of data. Despite several designs of PIM are available in the literature, their effective implementation still burdens the programmer. Also, various PIM instances are required to take advantage of the internal 3D-stacked memories, which further increases the challenges faced by the programmers. In this way, this work presents the Processing-In-Memory cOmpiler (PRIMO). Our compiler is able to efficiently exploit large vector units on a PIM architecture, directly from the original code. PRIMO is able to automatically select suitable PIM operations, allowing its automatic offloading. Moreover, PRIMO concerns about several PIM instances, selecting the most suitable instance while reduces internal communication between different PIM units. The compilation results of different benchmarks depict how PRIMO is able to exploit large vectors, while achieving a near-optimal performance when compared to the ideal execution for the case study PIM. PRIMO allows a speedup of 38x for specific kernels, while on average achieves 11.8x for a set of benchmarks from PolyBench Suite.
引用
收藏
页码:564 / 569
页数:6
相关论文
共 50 条
  • [1] PIMFlow: Compiler and Runtime Support for CNN Models on Processing-in-Memory DRAM
    Shin, Yongwon
    Park, Juseong
    Cho, Sungjun
    Sung, Hyojin
    PROCEEDINGS OF THE 21ST ACM/IEEE INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, CGO 2023, 2023, : 249 - 262
  • [2] CAIRO: A Compiler-Assisted Technique for Enabling Instruction-Level Offloading of Processing-In-Memory
    Hadidi, Ramyad
    Nai, Lifeng
    Kim, Hyojong
    Kim, Hyesoon
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2017, 14 (04)
  • [3] Database Processing-in-Memory: A Vision
    Kepe, Tiago R.
    Almeida, Eduardo C.
    Alves, Marco A. Z.
    Meira, Jorge A.
    DATABASE AND EXPERT SYSTEMS APPLICATIONS, PT I, 2019, 11706 : 418 - 428
  • [4] Processing-in-Memory with Temporal Encoding
    Sakib, Mohammad Nazmus
    Sreekumar, Rahul
    Zhu, Xinyuan
    Tracy, Tommy, II
    Stan, Mircea R.
    2022 IEEE COMPUTER SOCIETY ANNUAL SYMPOSIUM ON VLSI (ISVLSI 2022), 2022, : 56 - 61
  • [5] Real Processing-In-Memory with Memristive Memory Processing Unit
    Kvatinsky, Shahar
    SECURITY, PRIVACY, AND APPLIED CRYPTOGRAPHY ENGINEERING, SPACE 2019, 2019, 11947 : 5 - 8
  • [6] Accelerate Binarized Neural Networks with Processing-in-Memory Enabled by RISC-V Custom Instructions
    Lin, Che-Chia
    Lee, Chao-Lin
    Lee, Jenq-Kuen
    Wang, Howard
    Hung, Ming-Yu
    50TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOP PROCEEDINGS - ICPP WORKSHOPS '21, 2021,
  • [7] Real Processing-in-Memory with Memristive Memory Processing Unit (mMPU)
    Kvatinsky, Shahar
    2019 IEEE 30TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP 2019), 2019, : 142 - 148
  • [8] From processing-in-memory to processing-in-storage
    Kaplan R.
    Yavits L.
    Ginosar R.
    Supercomputing Frontiers and Innovations, 2017, 4 (03) : 99 - 116
  • [9] Making Memristive Processing-in-Memory Reliable
    Leitersdorf, Orian
    Ronen, Ronny
    Kvatinsky, Shahar
    2021 28TH IEEE INTERNATIONAL CONFERENCE ON ELECTRONICS, CIRCUITS, AND SYSTEMS (IEEE ICECS 2021), 2021,
  • [10] Exploring the Processing-in-Memory design space
    Scrbak, Marko
    Islam, Mahzabeen
    Kavi, Krishna M.
    Ignatowski, Mike
    Jayasena, Nuwan
    JOURNAL OF SYSTEMS ARCHITECTURE, 2017, 75 : 59 - 67