Abstract | ||
---|---|---|
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. |
Year | DOI | Venue |
---|---|---|
2019 | 10.23919/DATE.2019.8714956 | 2019 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE) |
Keywords | Field | DocType |
Compiler, Processing in Memory, Near-data computing, Vector instructions, SIMD, 3D-Stacked memories | Architecture,Programmer,Suite,Computer science,Parallel computing,Compiler,Exploit,Energy consumption,AND gate,Speedup | Conference |
ISSN | Citations | PageRank |
1530-1591 | 0 | 0.34 |
References | Authors | |
0 | 7 |
Name | Order | Citations | PageRank |
---|---|---|---|
Hameeza Ahmed | 1 | 1 | 0.70 |
Paulo C. Santos | 2 | 30 | 5.92 |
Joao P. C. Lima | 3 | 0 | 0.34 |
Rafael Fao de Moura | 4 | 1 | 2.39 |
Marco Antonio Zanata Alves | 5 | 87 | 13.70 |
Antonio C. S. Beck | 6 | 15 | 5.10 |
Luigi Carro | 7 | 1393 | 166.42 |