Guest post by Peter U. Diehl from ETH Zurich. Peter's research is focused on bringing together the fields of neuromorphic computing, machine learning and computational neuroscience.
At the Telluride Neuromorphic Cognition Engineering Workshop 2015 a team from IBM Research (Rodrigo Alvarez-Icaza, John Arthur, Andrew Cassidy, and Paul Merolla) brought their newly developed low-power neuromorphic TrueNorth chip to introduce this platform to a broader research community. Among the other participants were Guido Zarella, principal research scientist at the MITRE Corporation and an expert in natural language processing (NLP), Bruno Pedroni, PhD student at UCSD and previous intern at IBM Research Almaden, Emre Neftci, professor at UC Irvine and a pioneer on using deep learning with spiking neural networks, and myself. Together we pursued the ambitious goal of bringing deep learning based NLP to neuromorphic systems.
Driven by the ever increasing amounts of natural language text available on the world wide web and by the necessity to make sense of it, the field of NLP showed dramatic progress in recent years. Simultaneously, the field of neuromorphic computing has started to emerge. Neuromorphic systems are modeled after the brain, which leads to hardware that consumes orders of magnitude less power than its conventional counterpart. However, such a new architecture requires new algorithms since most of the existing ones are designed for von-Neumann architectures and usually cannot be mapped directly.
At Telluride, myself and the group mentioned above were eager to fill the existing algorithmic gap of NLP for neuromorphic computing by mapping existing state-of-the-art NLP systems for von-Neumann architectures to TrueNorth. Achieving this goal enables a range of highly attractive technologies like high-quality analysis of user input on mobile devices with negligible battery drain, or data-centers for understanding queries that consume orders of magnitude less power than conventional high-performance computers. During the workshop we focused on two tasks.
Although the designed algorithms are not yet viable for commercial scale applications because we are just getting started, they provide an important first step and a generally applicable framework for the mapping of traditional deep learning systems to neuromorphic platforms and thereby opening up neuromorphic computing and deep learning for entirely new applications. This is also the vision at the IBM TrueNorth Boot Camp at IBM Research in San Jose, where I am at the moment. Together with over 60 other participants we are diving into TrueNorth programming, creating new neuromorphic algorithms and mapping existing von-Neumann architecture algorithms to TrueNorth to advance the state-of-the-art in low-power computing.
Today, we end our first week of a 3-week TrueNorth bootcamp, where we began to unveil and teach the ecosystem for TrueNorth. We take a look behind the scenes and present some of the effort the team has put forth when preparing the hardware for participants to learn on, play with, and eventually call their own.
The goal was simple: Assemble, test, and configure the first batch of 100 single-chip, index card-sized TrueNorth development boards (dubbed NS1e for Neurosynaptic System Evaluation Platform), 48 of which will be used as the playground for the Boot Camp participants. First to learn on, but eventually to take home and continue to develop their own algorithms and apply to their own applications. While seemingly straightforward, several items had to come together to allow us to provide users with an experience that has become expected of a development platform. While there was much to do, boards from the factory were received almost exactly one month to the day (actually less), leaving very little room for errors. Here is a timeline that summarizes our experiences as we worked to deliver the hardware in time for bootcamp:
07/01/15-07/06/15: NS1e boards are in-route from the factory, but there is little time to waste. We begin to create manufacturing and test scripts responsible for exercising board components as well as tracking boards as they execute the test procedures.
07/08/15: Boards are here! Less than one month away from bootcamp, we received NS1e boards in Almaden for assembly, test, and staging.
07/09/15: It was all hands on deck as we began to assemble and test the boards, attaching feet and heat sinks, everyone got involved in the fun! After boards were assembled, they were run through a round of testing which exercised TrueNorth and other discrete components to ensure functionality.
Bryan Jackson assembling and testing NS1e True North development boards.
7/9/15: Due to the hardwork of the team and lab members, all boards were tested and configured by the end of the day!
Assembled NS1e Boards.
07/10/15-07/24/15: With two weeks before we begin infrastructure testing the team still needed to decide how the NS1e boards would be finally configured. One important choice was which operating system would be loaded on the embedded Zynq platform: whether to use the strongly tested Petalinux or to push to provide Ubuntu. The team collectively decided to ensure the boards could run Ubuntu, which enables the NS1e platforms to pick up applications from the Linux community at large and expands the platforms versatility. To enable this, the team worked to resolve a few compatibility issues, but finally managed to get a working and tested image in time for infrastructure testing.
07/24/15-7/30/15: Infrastructure testing week! Due to the number of participants we split our 48 boards across 4 gateway servers. Testing now consists of ensuring each board is accessible by the servers and each has the latest version of the image containing FPGA firmware, OS, and the TrueNorth control software. S ome load testing is also performed to see what happens when many users are requesting to use boards simultaneously. Things mostly worked, and we fixed what didn’t.
Staging area for the 48 NS1e Development Boards the Participants will use while at Boot Camp.
07/31/2015: It is the weekend before bootcamp, so the team builds the final home of the NS1e development boards before they are finally transported to the classroom. Each of the NS1e platforms are placed into individual cases and inserted into a 6×8 array. The final rack contains the same number of neurons as a small mouse (48 Million Neurons and 12 Billion Synapses)! Now off to bootcamp!
Today, August 3, 2015 at 9am PST, we launched a three-week-long Boot Camp. Read my thoughts here. Representing five continents, sixty+ participants from the following institutions are attending including IBMers from IBM Research - Australia, IBM Research - Tokyo Lab, IBM Brazil, and IBM UK:
Here is a rough transcript of my opening remarks.
When history looks back and asks "When did Brain-inspired Computing reach critical mass?", I believe the answer will be 9am PST on August 3, 2015.
Thank you for investing three precious weeks of your life, we will strive to make it worth it. Special welcome to Telluride participants who have come back for another 3 weeks. All of you are a very special group of people -- incredibly talented, excited, and engaged researchers who have the right background. Because of the space limitations, many could not be admitted. Today is the first time that IBM is opening the SyNAPSE Ecosystem. In fact, you are getting access to these boards before our own team. According to the dictionary, to pioneer is the one to "develop or be the first to use or apply (a new method, area of knowledge, or activity)". So all of you are pioneers. It takes two hands to clap and and you are our partner in this quest to bring brain-inspired computers to the society.
Where are we?
With 1 million neurons, 256 million synapses, 4096 cores interconnected via a network-on-chip at less than 100mW of power consumption, TrueNorth is literally a supercomputer the size of a postage stamp consuming the power of a hearing aid battery.
The chip has an entirely novel parallel, distributed, modular, scalable, fault-tolerant, event-driven architecture that breaks path with nearly 70 year dominance of the von Neumann blueprint. Today, the effort is much broader than the chip. It is an end-to-end ecosystem consisting of development boards; a simulator; a programming language; an integrated programming environment; a library of algorithms as well as applications; firmware; deep learning tools; a teaching curriculum; and cloud enablement.
We got here via a 10 year sustained effort with cumulative effort of 250 person years.
Where we are headed is ever more useable and useful ecosystem and what is forthcoming is a sequence of ever-denser and energy-efficient chips with the end goal to literally build a brain-in-a-shoebox.
What is the best possible outcome?
The best possible outcome is to map the entirety of existing cache of neural network algorithms and applications to this energy-efficient substrate. And, to invent entirely new algorithms that were hereto before impossible to imagine. Then, to compose these algorithms to exhibit mind-like behavior on top of the brain-like substrate.
What is the challenge?
You have all heard about deep learning. Deep learning and neuromorphic computing are two sides of the same coin. Deep Learning is about capability in terms of application performance and accuracy. Brain-inspired Computing Is about energy-efficiency, volume-efficiency, speed-efficiency, and scalability. Deep Learning is used to program neuromorphic computing. Neuromorphic computing used to deliver deep learning. The goal is to bring together these two complimentary revolutions.
To exploit the full potential of the substrate, the challenge is to shift the thinking. Energy-efficiency was realized by architecture shift to spiking neurons, limited precision synapses, and connectivity within cores and between cores.
The reason it is possible to shift the thinking is because brain itself is able to achieve its remarkable function with similar constraints and because neural networks are remarkably forgiving structures.
The first thought of nearly everyone is to train a classical network, and as an afterthought map it to hardware. This approach leads to inefficient and inelegant solutions. Thinking has to shift from "train and constraint" to a mindset of "constraint and train". The challenge is to design efficient algorithms from the start. As a motivational example in historical context, let us go back to "sorting algorithms" for today's computers, where quadratic-time algorithms were upturned by Tony Hoare's beautiful and efficient quicksort. Tony Hoare was awarded the Turing Prize for his many contributions and perhaps one of you, someday, might receive the same honor, perhaps for Brain-inspired Computing. Neural networks are remarkably versatile structures -- there are often multiple paths to the solution. Amongst these, the challenge is to seek the most efficient and most elegant and most beautiful algorithms. The opportunity for innovation is huge and unprecedented. Supervised learning, unsupervised learning, reinforcement learning as well as feedforward networks, recurrent networks all are up for grabs. The frontier is open. And, it is yours to capitalize. I predict that by December 2016 there will be at least one major breakthrough -- inventing a fresh new algorithm for neuromorphic computing -- from one of you. My hope is that each of you will be part of at least one such breakthrough.
What are we teaching at the Boot Camp?
We are teaching an overview of the ecosystem. We are teaching end-to-end examples with simple datasets so as to completely and comprehensively touch on the entire tool set. In particular, we are teaching how we are leveraging Caffe (a deep learning tool) to produce native-TrueNorth programs.
In the final week, we will provide clinics and help from both infrastructure and algorithmic perspectives to ensure that you are successful after the bootcamp which is really the whole point of this exercise.
How are we teaching it?
The approach is to teach the building blocks. We are looking forward to seeing what you produce with them. The possibilities are endless because permutations and combinations of the underlying build blocks are limited only by your imagination and creativity, which I know is infinite.
Boot Camp is about teaching the techniques of fishing, and not about catching one big, fat fish right away. it is about bricks, and not about buildings. It is end-to-end integration, and not fragmentation. It is simple, and not complex. It is practical, and not theoretical. It is about breadth across tools and techniques, and not about depth in a particular application. It is about ingredients and recipes and not tasty dishes. It is atomic and not molecular. It is sequential, where each step leads to the next level. It is slow, and not fast. It is flexible, and not a priori cast in stone.
Now, our team has worked very hard but much is to be done. You are experiencing a living and growing set of tools and not something that is polished and dead. We welcome all feedback, and will humbly accept it.
Sixty years ago, IBM released FORTRAN to the world. At that time, there were only a few hundred or at best low thousands of programmers. Today, we a team of 30 people, feel that our ecosystem has tripled in size instantaneously by adding 60 new partners. The hope is that each of you will become an ambassador for the project. A seed carrier. And, together we will draw in ever greater number of collaborators to create a spiral of value co-creation.
On our part, we are committed to continue to provide systems and tools to enable you to build more algorithms and applications.
This is a historic moment. Let us partner and together we can bring brain-inspired computers to society.
In conclusion, I invite the whole Brain-inspired Computing Team to join with me in welcoming our friends.
Finally, for all our guests, please join me in thanking the Brain-inspired Computing Team for countless nights, weekends, and their blood, sweat, and tears in making this event a reality.
Each July for the last 20 years or so, a group of neuroscientists, engineers, and computer scientists come together for a three week neuromorphic engineering workshop in the scenic town of Telluride. Telluride is best known for its ski slopes, but in the summer, it is the perfect place to hunker down and work on collaborative, hands on neuromorphic projects. This year, four of us who are IBM research scientists in the Brain-inspired Computing Group brought IBM's latest generation TrueNorth chip to Telluride with one goal in mind: enable workshop participants to use TrueNorth for their own projects. To our surprise and delight, although many of the participants had never actually seen or used TrueNorth before, they were all up and running in almost no time. Here is a quick run down of what happened.
The bulk of the workshop took place at the Telluride elementary school, and in particular, in one of the classrooms. Shown below are the four of us, arriving to our new home for the next 3 weeks.
Rodrigo Alvarez-Icaza, John Arthur, Paul Merolla, and Andrew Cassidy (left to right) at the Telluride elementary school
Photo Credit: Tobi Delbruck
We brought a bunch of goodies to Telluride, including 10 of our latest mobile development boards, some of which are being unpacked by Rodrigo (top). The board (bottom) has a TrueNorth chip (SyNAPSE), an FPGA, and a host of sensors and connectors. The basic setup is that participants can log into these boards through our local servers, and run their real time spiking neural networks.
Rodrigo Alvarez-Icaza unpacking the boards
Close up of a TrueNorth mobile development board
Hands on projects:
Our IBM group, along with Arindam Basu (NTU), ran a workgroup called Spike-Based Cognitive Computing. In this group, we divided into sub projects. The projects based on TrueNorth included:
You can find more information on these projects on the Neuromorph site. Here, we highlight one of the projects, which culminated with a real time demo!
Real-time digit classification on TrueNorth with a spiking retinal camera front end:
In this project, the goal was to connect a spiking retinal camera (called the ATIS) to a TrueNorth chip to perform pattern classification. Using the ATIS as a front end for TrueNorth opens up the possibility for a fast, low power object recognition system that works only using spikes.
There are two main steps involved in realizing the real-time digit classification system. The first step consists of creating and training the object recognition model to run on TrueNorth. The second step is to connect the ATIS to TrueNorth to achieve real time operation.
We made use of a publicly available spike-based conversion of the MNIST dataset which was taken with the ATIS sensor mounted on a pan-tilt while viewing MNIST digits on a computer monitor. Details of the dataset creation, as well as a download of the dataset itself, are available at: http://www.garrickorchard.com/datasets/n-mnist
The continuous spike stream was converted to static images by accumulating spikes for 10ms at a time to create a static images for training. These static images are used to create a Lightning Memory Mapped Database (LMDB) on which training was performed using the caffe deep learning framework (modified to support TrueNorth). A simple 1 layer Neural Network was used, with 100 neurons trained to respond to each of the 10 digits. The final output of the system is a histogram of the number of spikes output by neurons representing each class. The class with the most spikes is deemed to be the most likely output.
Real time results:
A laptop powers and interfaces to the ATIS sensor which is mounted on a helmet worn by a user. This laptop performs simple noise filtering on ATIS spikes and activity based tracking of the MNIST digit on a screen. Spikes occurring within the 28x28 pixel region of interest being tracked are remapped to target corresponding cores and axons on the TrueNorth (sometimes multiple axons per spike). The laptop accumulates spikes until 130 spikes are available for classification, at which time all 130 spikes are communicated to TrueNorth over UDP.
The trained neural network runs on TrueNorth and output spikes are communicated to a second laptop using UDP. This second laptop performs visualization of the results.
On the spiking MNIST test set, we achieved 76%-80% accuracy at 100 classification/sec. The goal was not really classification accuracy per se, but rather was to learn to create end-to-end demonstrations. The classification rate (100/sec) is limited by the fact that we use 10ms of data for each classification, but TrueNorth is capable of performing 1000 such classifications per second. In the real-time system the classifier on TrueNorth uses only 4 cores (0.1% of the chip). Temporally, utilization on this 0.1% of the physical chip is below 10% (i.e. the 4 cores are idle >90% of the time) when performing 100 classifications per second.