Martha Kim | Accelerating Processing’s Family Van
Assistant Professor of Computer Science
This profile is included in the publication Excellentia, which features current research of Columbia Engineering faculty members.
Photo by Eileen Barroso
According to Martha Kim, the typical computer processor is like the family van. It is a good all-around machine, but it achieves its flexibility by sacrificing power and performance. It will get you there, but it’s not made for off-road adventure or hugging the curves at Le Mans.
Modern computers have the potential to act as vans, sport cars, and motorcycles —all on the same chip, Kim said. It is just a matter of getting under the hood and adding accelerators, small chips-within-a-chip designed to process certain types of data very efficiently.
Accelerators are possible because today’s chips are so large. Many contain several separate processors and upwards of two billion transistors. “We have transistors to burn,” she said.
“If we could organize a few hundred thousand of these transistors into a specialized accelerator, we could handle certain types of data 100 times faster and with 100 times less power.”
Those gains are possible because everything needed to process information would reside in the accelerator.
“Instead of reading and decoding software instructions specifying how to manipulate the data, the accelerator could start processing immediately without waiting for software instruction,” said Kim.
“Today’s integrated circuits offer an embarrassment of transistors,” she added.
“The challenge is how to translate efficiently these raw resources into easy-to-use, high performance, low-power processors. Spending some transistors on special purpose data processors, which store and manipulate structured data types, could simultaneously boost performance and conserve power.”
Accelerators are relatively simple to define in hardware but can be very difficult to use in software.
“With accelerators, the programmer not only has to write the code, but has to coordinate what parts of the program should run on which accelerators, and then reassemble the results. Also, if the number and type of accelerators differs from chip to chip, programming becomes even more complex,” Kim explained.
Kim’s goal is to create common interfaces and tool chains to protect the programmer from this complexity. “The programmer would write code normally. A compiler would track the libraries and data structures used by the application as well as the accelerators available on the chip” she said. “It would do the job of matching parts of the computation with the available accelerators.”
In other words, Kim does not want to make her van into a Formula 1 race car. She wants to keep all of the van’s flexibility and still take those turns at ridiculously high speeds.
B.A., Harvard, 2002; M.E., University of Lugano (Switzerland), 2003; Ph.D., University of Washington, 2008