Composing Neural Algorithms with Fugu

Composing Neural Algorithms with Fugu

Composing neural algorithms with Fugu James B. Aimone*, William Severa, Craig M. Vineyard Center for Computing Research, Sandia National Laboratories P.O. Box 5800 Albuquerque, New Mexico 87185-1327 *[email protected] ABSTRACT oen powerful, these implicitly require that users orient themselves Neuromorphic hardware architectures represent a growing fam- to a certain perspective of neural computation. ily of potential post-Moore’s Law Era platforms. Largely due to Here, we sought to develop a programming platform to enable event-driving processing inspired by the human brain, these com- the development of neuromorphic applications without substan- puter platforms can oer signicant energy benets compared tial knowledge of neural computing or neuromorphic hardware. 1 to traditional von Neumann processors. Unfortunately there still Our solution, which we refer to as Fugu , is intended to facilitate remains considerable diculty in successfully programming, con- neuromorphic application development in a manner similar to how guring and deploying neuromorphic systems. We present the CUDA facilitates the programming of GPUs. Fugu framework as an answer to this need. Rather than necessi- Fugu is structured so as to separate the task of programming tating a developer aain intricate knowledge of how to program applications that may leverage neuromorphic hardware from the and exploit spiking neural dynamics to utilize the potential benets design of spiking neural algorithms (SNAs) and the specic details of neuromorphic computing, Fugu is designed to provide a higher of neuromorphic hardware platforms. We accordingly foresee three level abstraction as a hardware-independent mechanism for link- categories of users. e primary target population is the general ing a variety of scalable spiking neural algorithms from a variety computer programming community; well-versed in scientic com- of sources. Individual kernels linked together provide sophisti- puting approaches but perhaps only modestly familiar with parallel cated processing through compositionality. Fugu is intended to be computing and likely unfamiliar with neural approaches. For the suitable for a wide-range of neuromorphic applications, including adoption of neuromorphic hardware it is critical that these users machine learning, scientic computing, and more brain-inspired can leverage this technology. To enable this, a second group of neural algorithms. Ultimately, we hope the community adopts this users - those capable of designing SNAs - also need to be able to and other open standardization aempts allowing for free exchange incorporate their algorithms into the Fugu construct. is popula- and easy implementations of the ever-growing list of spiking neural tion of users may be well versed in neural computation generally, algorithms. but also may not be familiar with specic considerations of dif- ferent neural hardware platforms. Finally, the third category of ACM Reference format: users would be those who are deeply familiar with neuromorphic James B. Aimone*, William Severa, Craig M. Vineyard. 2016. Composing hardware, and are capable of optimizing and tailoring generic SNAs neural algorithms with Fugu. In Proceedings of , , , 8 pages. into algorithmic implementations that are optimized to the current DOI: 10.1145/nnnnnnn.nnnnnnn conditions of neuromorphic hardware. 1 INTRODUCTION 2 BACKGROUND e success of neuromorphic computing technologies is dependent Fugu is a high-level programming framework specically designed on its large-scale adoption as a post-Moore’s law, low power solu- for develolping spiking algorithms in terms of computation graphs. tion for multiple applications. e generality of neural computing At the lowest level, SNAs are directed graphs, with nodes corre- approaches is an area of active exploration [1, 2], but there is already sponding to neurons and edges corresponding to synapses. How- ever, by considering how SNAs can be networked together (not arXiv:1905.12130v1 [cs.NE] 28 May 2019 a growing disparity between this value of neuromorphic systems as a general tool and emerging soware stacks for leveraging these unlike how the brain consists of networks of local circuits), Fugu is platforms for specic functions. For individual applications, such able to consider a higher level graphical perspective of the overar- as spiking deep neural networks (DNNs), pre-dened specialized ching computation. solutions are oen sucient. An example of this is the Whetstone A key underpinning of Fugu is that SNAs, if properly constructed, soware, which we recently introduced [11] as a tool to convert should be composable. In the context here, this means that two standard Keras-trained DNNs to a spiking-compatible structure. appropriately constructed SNAs can be combined to form larger Similarly, there are an increasing number of options for neural pro- algorithms in that the outputs of one can be used as the inputs to gramming environments that are premised on established classes of the other. e following sections will highlight how this concept neural computation. Tools such as PyNN [4], Nengo [3], and N2A of compositionality is more than simply matching sizes. For two [8] assume certain intent among user communities, and thus while 1e name Fugu is inspired by the Japanese word for puersh; which, of course, have spikes. Furthermore, Fugu is considered a culinary delicacy due to the presence of low , levels of the neurotoxin tetrodotoxin, or TTX, which has signicant value in studying 2016. 978-x-xxxx-xxxx-x/YY/MM...$15.00 the electrophysiology mechanisms underlying biological action potentials. Only one DOI: 10.1145/nnnnnnn.nnnnnnn author (CMV) has eaten Fugu before. ,, James B. Aimone*, William Severa, Craig M. Vineyard small SNAs to be combined into a larger SNA, the sizes, temporal the operational domain of Fugu, is expressly compatible with the structure, and encoding schemes have to align. is process can standard LIF model. In this sense, component SNAs must present become non-trivial when a number of SNAs are to be composed discrete spike events as outputs and similarly (with some excep- together, the automation of which is the primary contribution of tions) take in spike events as inputs. Fugu. Fugu is designed primarily for spiking algorithms, the core model 3 DESIGN OF FUGU for which is described in section 2.1 below. However, this emphasis on spiking is not meant to preclude its future use for architectures As stated above, a key goal of Fugu is to provide a general scien- which may achieve benets from other features such as analog tic computing user access to emerging neuromorphic hardware arrays. Most neural algorithms, whether spiking or not, can be — specically spiking neuromorphic hardware — by providing an considered through a graphical perspective and thus may be suitable accessible library of functions that Fugu can map into neural hard- for the approach described here. ware. Figure 1 provides an overview of the Fugu framework which we will elaborate upon the subcomponents in the following sec- 2.1 Generic spiking neural algorithm model tions. Fugu accomplishes this by providing the following core capabili- Fugu assumes a fairly simple neural model for SNAs, so as to enable ties: the generic use of spiking neuromorphic hardware. e default neu- ron model of Fugu is that of leaky-integrate and re (LIF) neurons, • An API to conventional programming environments with parameterizable voltage thresholds (Vthresh), time constants (i.e., Python, C++) τi , and reset voltages Vreset. e default synapses are considered • Automated construction of a graphical intermediate point synapses, with a parameterized weight wi; j , where i and j representation of spiking neural algorithms are source and target neurons respectively. At each timestep, each • Outputs to neural hardware compilers or Fugu’s ref- neuron computes the voltage at time t given by Vt in the following erence simulator manner Õ e following sections expand on each of these topics. Vˆj ¹tº = fi ¹tº ∗ wi; j + Vj ¹t − 1º; i ( Vreset if Vˆj > Vthresh 3.1 API Vj = ; ¹1 − τj ºVˆj elsewise: e goal of the API for Fugu is to make the construction of a Fugu algorithm be readily called from C++ or Python. In theory, all of ( ˆ P if Vj > Vthresh the SNA requirements and processing should be transparent to a fj ¹tº = 0 elsewise: user; such that they only have to call a function with standard I/O protocols; not unlike a hardware interface language such as CUDA. where the ring, f ¹tº is determined if the neuron’s voltage j e intent of Fugu is to enable the user to program an application crosses a threshold. To account for probabilistic neural transmis- to neuromorphic hardware with only limited knowledge of the sion, P is a probabilistic Bernoulli draw of either 0 or 1 according underlying architecture or requisite algorithms. us, the API level, to a stochastic ring rate at rate p. If neurons are not stochastic, which is the interface that we expect to be most commonly used, p = 1. simply requires the user to dene a computational graph, which we call a scaold. Each Fugu scaold consists of nodes, known as 2.2 Learning, structural plasticity, and other bricks, which are the component SNAs, and edges between those extensions to core spiking model bricks that dene the ow of information. e design of Fugu allows for capabilities beyond this basic model. During the design of a Fugu application, a user would construct For instance, if a given algorithm requires a learning mechanism a computational graph of an application. Consider

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us