PIM Simulations: ZSim and DRAMSim3

Goals within DEEP-SEA

One of the objectives of the DEEP-SEA project is to explore various architectural proposals for processing in memory (PIM). Our work in the first 18 months of the project focused on the development of the simulation infrastructure that provides all the functionality required for our PIM exploration while introducing an acceptable level of error. The simulation infrastructure is based on the ZSim execution-driven CPU simulator integrated with the DRAMSim3 memory simulator. Our simulation infrastructure is publicly released as an open source and already used to explore various PIM proposals. As the next steps in the DEEP-SEA project, we plan to use this simulation infrastructure to explore various PIM proposals.

To enable adoption of PIM technologies in production systems and applications, the community has to develop programming environment for PIM accelerators. Our objective in the DEEP-SEA project is to enable the programmer to interleave conventional and PIM APIs, being focused on the desired functionality and aware of the characteristics of generic PIM devices, but with the minimum exposure to device implementation details. Selected PIM-related data structures and APIs that will be implemented in the ZSim+DRAMSim3+PIM simulation infrastructure.

Website: https://github.com/bsc-mem/zsim/tree/zsim+DRAMsim3+ACM