IBM Research has created a new programming model to support its chips that mimic the workings of the human brain, known as Systems of Neuromorphic Adaptive Plastic Scalable Electronics, or SyNAPSE, chips.
In an effort in which a portion of the project was funded by the Defense Advanced Research Projects Agency (DARPA), IBM on Aug. 8 announced a breakthrough software ecosystem designed for programming silicon chips that have an architecture inspired by the function, low power and compact volume of the brain. The technology could enable a new generation of intelligent sensor networks that mimic the brain's abilities for perception, action and cognition, IBM said.
IBM's long-term goal is to build a chip system with 10 billion neurons and a hundred trillion synapses, while consuming merely 1kilowatt of power and occupying less than two liters of volume, Big Blue said.
To get there, IBM researchers knew they had to deliver not only the new hardware, but a new software paradigm. IBM said the new programming model is dramatically different from traditional software. Indeed, IBM's new programming model breaks the mold of sequential operation underlying today's von Neumann architectures and computers. It is instead tailored for a new class of distributed, highly interconnected, asynchronous, parallel, large-scale cognitive computing architectures.
Cognitive computing, of course, is nothing new to IBM. Its Watson supercomputer is perhaps the best example of cognitive computing the company has to offer. "Cognitive computing systems are not based on programs that predetermine every answer or action needed to perform a function or set of tasks; rather, they are trained using artificial intelligence (AI) and machine learning algorithms to sense, predict, infer and, in some ways, think," IBM says on its Web page defining cognitive computing.
"Architectures and programs are closely intertwined, and a new architecture necessitates a new programming paradigm," said Dr. Dharmendra S. Modha, principal investigator and senior manager for the project in IBM Research. "We are working to create a FORTRAN for synaptic computing chips. While complementing today's computers, this will bring forth a fundamentally new technological capability in terms of programming and applying emerging learning systems."
To advance and enable this new ecosystem, IBM researchers developed the following breakthroughs that support all aspects of the programming cycle from design through development, debugging and deployment:
- Simulator: A multithreaded, massively parallel and highly scalable functional software simulator of a cognitive computing architecture comprising a network of neurosynaptic cores.
- Neuron Model: A simple, digital, highly parameterized spiking neuron model that forms a fundamental information processing unit of brainlike computation and supports a wide range of deterministic and stochastic neural computations, codes and behaviors. A network of such neurons can sense, remember and act upon a variety of spatio-temporal, multimodal environmental stimuli.
- Programming Model: A high-level description of a "program" that is based on composable, reusable building blocks called "corelets." Each corelet represents a complete blueprint of a network of neurosynaptic cores that specifies a based-level function. Inner workings of a corelet are hidden so that only its external inputs and outputs are exposed to other programmers, who can concentrate on what the corelet does rather than how it does it. Corelets can be combined to produce new corelets that are larger, more complex or have added functionality.
- Library: A cognitive system store containing designs and implementations of consistent, parameterized, large-scale algorithms and applications that link massively parallel, multimodal, spatio-temporal sensors and actuators together in real time. In less than a year, the IBM researchers have designed and stored more than 150 corelets in the program library.
- Laboratory: A novel teaching curriculum that spans the architecture, neuron specification, chip simulator, programming language, application library and prototype design models. It also includes an end-to-end software environment that can be used to create corelets, access the library, experiment with a variety of programs on the simulator, connect the simulator inputs/outputs to sensors/actuators, build systems and visualize/debug the results.