Researchers from Technion have come up with a software package which allows computers to perform computation operations out of the CPU in the memory.
This is a big step towards creating computers capable of performing memory calculations without having to shuttle data from one component to another. A new and exciting field has emerged in the hardware domain in recent years: in-memory computing. The in-memory computing approach brings a major shift in the approach that computers use.
While in the classic architecture the CPU computes something using data retrieved from the computer memory, the new approach involves certain operations to take place directly in the memory space and save the time and energy required to transfer data between the units of a computer.
As data transfer is a rather lengthy and power-consuming process, such change results in considerable time and energy saving. The two components have witnessed a tremendous evolution in their performances over the past decades, note the speed with which processors are operating, or the storage capacity of memory units.
These have only aggravated the issue with data transfer being one of the most significant constraints to the overall speed of the computer. Dr Shahar Kvatinsky from the Andrew and Erna Viterbi Faculty of Electrical and Computer Engineering has dedicated the past few years working on ‘the memory wall problem’ which is the problem of forcing computations to rely on two different components.
In papers written in recent years, he has proposed technologies at the hardware level that allow a set of operations to be executed in the memory so that the traffic jams that arise between the processor and the memory in conventional computers are reduced.
This switch in the way computer is designed has revolutionary implications in numerous areas to include but not limited to artificial intelligence, bioinformatics, finance, information science and system to mention but a few.
Unsurprisingly, many research groups in academia and industry are working on this issue: investigating the structure of memory, investigating how new memory units are manufactured in the microchip fabrication facilities, and investigating the fundamental arithmetic computations that would occur in a computer designed with an in-memory-computing architecture.
However, one crucial aspect of this approach has been almost entirely unexplored until now: software. Indeed, for decades computer programs have been created for ‘classic’ computers, the architecture of which has hardly evolved since the very first computers of the 1940.s.
These program are sets of read and write operations occurring on the memory of the computer, and calculations that are processed by the processor of the computer. The units of information that are stored within the memory can be accessed by specific addresses whereby the software can transfer them to the CPU for processing.
However, as computations are now partially transferred to the memory, new software is needed, says Professor Kvatinsky. ‘This new software has to be based on new instructions that support in-memory computations.’ This new computation method is so different to the conventional one that it makes some of the component parts of Computer science completely useless.
Hence, we have to write new code from the ground up, this becomes a time consuming and labor intensive process for software developers.” In a new article, Dr. Kvatinsky and his graduate students described a solution to this problem by Orian Leitersdorf together with researcher Ronny Ronen.
Their new platform employs a command set which is mid-way between in-memory computing solutions and programming languages that are familiar to developers, such as Python.
In order to construct this new platform the researchers have proposed a theory regarding the programming interfaces of in-memory computing architecture and have also designed software development libraries that translate the Python orders into the actual computational instructions executed in the working memory of the computer.
They named this new idea PyPIM, which is a shorthand for the language Python, in addition to the acronym for the Processing-in-Memory technology. Hence with this new platform Software developers will be in a position to write the software for PIM computers.
The researchers have also developed a simulation platform for implementing hardware and evaluating performance, so that a developer can gauge the degree of increase in code execution time compared to conventional computer.
As the researchers show at various instances of their paper, using the new platform, a variety of mathematical and algorithmic computations can be carried out with ease using short and simple codes, while achieving impressive gains in performance. The new research was delivered at the IEEE/ACM International Symposium on Microarchitecture held in Austin, Texas. This paper is also published at the arXiv preprint server.
Orian Leitersdorf, 21, is soon to be Technion’s youngest-ever PhD recipient. Ronny Ronen is a senior researcher in the faculty and is a faculty member and head of Architectures And Circuits Research Center (ACRC).