Welcome to NHML - 'The Neuromorphic Hardware Markup Language'.
The "neuromorphic hardware description language" aims at generalizing a mapping workflow necessary to automatically generate valid hardware configurations given an abstract neural network description. A distant goal would be to establish some kind of neuromorphic operating system.
Joining our efforts will hopefully lead to:
Save man power (at least in the long run)
shorter from hardware testing to modelling times
higher software quality
Since this is a major task we will first require to establish common ground. Even if you are not planning on contributing it would be great of you to join and explain to us your individual system, requirements and wishes.
Capoc Caccia Proceedings
The project took shape at the CapoCaccia CNE workshop http://capocaccia.ethz.ch/capo/wiki/2012/nhml12. The following were the result of discussions there.
Having a common way of describing neuromorphic systems is nice but rather useless, unless one can provide a tool chain atomizing certain parts of the workflow. We therefore discussed the following questions during the workshop:
What is meant to be the role of NHML ?
The main purpose should be process atomization rather than another barely readable documentation format. Even tough, it would be nice to have facilities for putting extra data in which in turn could be used to query databases for e.g. the best suitable system given a task or visualize the hardware systems specification in some gui to get a glimpse of what is there.
What kind of content should go into such a file ?
We agreed on XML as the basic file format, because there are countless tools out there and for basically any language.
Representations of data have been a big concern. So, for instance things which should definitely included are:
- Available Resources (including Constraints)
- Physical Topology (including Constraints)
- Parameters (including Constraints):
- analog/digital parameters (constraints: precission, range)
- calibration data
- time
Which kinds of hardware should this file attempt to describe
Obviously neuromorphic chips, furthermore it could be very useful to also describe event based sensors like retinas in such a format. The data could then be used to represent such devices as spike sources in abstract neural network description languages (like e.g. pyNN).
Strategy for the Future
We decided to generate XML templates one from each lab to gain a perspective on which kinds of information each group expects to have in the nhml file. There should also be a brief description for each type of entry by the author to state his intentions about what this might be good for in an automated workflow. We will then take these files, find common denominators and merge them to cover the variety of neuromorphic hardware being used in our labs.
Most importantly, we want to join forces and develop tools that can take advantage of NHML to access the hardware in terms of user front-end or tools easing configuration.