The bleeding edge: In-memory processing is a fascinating concept for a new computer architecture that can compute operations within the system’s memory. While hardware accommodating this type of processing is still in early development, researchers have already proposed a software approach that can effectively leverage the hardware.
Israeli researchers have developed a new software “platform” to turn easily readable Python instructions into low-level machine code and execute it in RAM without going through the CPU. This new in-memory processing (PIM) architecture significantly improves code performance and will be instrumental in turning the PIM research efforts into a proper computer architecture.
Professor Shahar Kvatinsky and his team at the Andrew and Erna Viterbi Faculty of Electrical and Computer Engineering have worked on PIM technology for quite some time. They are trying to solve the memory wall problem – the need for two completely separate hardware components (CPU and RAM) to execute computing tasks.
In a traditional PC architecture, the CPU executes programmed instructions stored in RAM. Finding a way to run the instructions at the RAM level would mitigate the “traffic jam” of data transferred between the processor and memory.
Proper PIM computation could accelerate computer work in many fields, including AI, biotech, finance, and more. Hardware components to facilitate PIM operations are in development, with researchers working on new memory architectures and electronics. So far, little research has gone into computer programs that can work on PIM-enabled machines.
Kvatinsky’s team has proposed a concept called PyPIM, a portmanteau of Python and Processing-in-Memory. PyPIM’s new interface and development libraries would convert traditional, high-level Python commands into low-level, PIM-enabled machine code that runs more efficiently on PIM hardware.
The approach proposed by PyPIM could accelerate PIM adoption significantly, as programmers would not have to learn a new language. They would continue to code in Python as usual. The researchers created a hardware development simulator and a performance measurement tool so programmers could assess the performance improvements achieved with PIM. The study also proposed math and algorithmic tasks to show how PyPIM could improve computing performance.