Take away lessons
Last updated
Last updated
Computational complexity theory: A theoretical framework for classifying and relating computational problems according to their resource usage. Resource usage can be divided into classes and sub classes. Problems that are solvable in polynomial time are in class P. Other problems which may or may not be solved in polynomial time but are verifiable in polynomial time, belong to class NP. Some problems in NP can be classified in the subclass NP- complete. A problem is in NP-complete if any problem in NP can be reduced to it in polynomial time. Another interesting class of complexity is class BQP, the class of problems solvable by a quantum computer in polynomial time, with some bounding error probability
Turing machine: A mathematical formulation of an abstract machine which manipulates symbols on a strip of tape according to a set of rules. A computing system that can simulate any Turing machine is said to be Turing-complete or computationally universal. A SNN is turing complete.
Neuromorphic theory of complexity: the classic complexity classes take into consideration time and space. While time and space are essential resources, neuromorphic architectures consider another essential resource: energy. Unfortunately, energy is not captured by Turing machines as a relevant nor an essential resource for computation. Therefore, we need an extended theory of complexity which will capture energy as a vital resource. Such a theory will enable us to decide what problems can and cannot be solved efficiently on neuromorphic architectures. The development of such a theory is still in progress.
Corelet / Compass software ecosystem: an example of a high-level neuromorphic programming language that allows the algorithm developer to concentrate on his work’s creative parts, such as network design, data curation, and learning rules articulation instead of on low-level technical details, such as spiking rates and time constants. IBM came out with a new eco-system, comprised of a programming language, named Corelet, a Corelet library, and a simulation framework named Compass. A corelet abstracts away the underlying hardware architecture. It encapsulates a TrueNorth core, hiding the underlying network details and connectivity scheme, only exposing input and output ports. Each Corelet is optimized to carry out one specific, relatively simple, function. The same Corelet can be used in different applications; different Corelets can be concatenated together like LEGO bricks in a great variety of ways.