Giter Site home page Giter Site logo

markplagge / nemo Goto Github PK

View Code? Open in Web Editor NEW
13.0 8.0 5.0 456.69 MB

NeMo - A hardware agnostic neuromorphic processor simulation model built on ROSS

License: MIT License

C 81.41% C++ 11.26% CMake 3.04% Python 4.29%
ross spiking-neural-networks neuromorphic-hardware event-driven-simulation simulation-model

nemo's People

Contributors

nwolfey21 avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nemo's Issues

Python API

Define an API for spikes and for network creation

NeMo .conf Integration

  • Integrate NeMo LP information into CODES .conf file to pass LP information to the CODES mapping utility

Error when make

Hi,

I am trying to build NeMo. After I do make -j 4, I got the following error. Any advice will be appreciated!

$ make -j 4
[ 72%] Built target ROSS
Scanning dependencies of target NeMo
[ 74%] Building C object src/CMakeFiles/NeMo.dir/nemo_main.o
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c: In function ‘displayModelSettings’:
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c:137:58: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘size_type {aka long unsigned int}’ [-Wformat=]
printf("* \t %i Neurons per core (cmake defined), %llu cores in sim.\n", NEURONS_IN_CORE, CORES_IN_SIM);
~~~^
%lu
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c:138:45: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘tw_lpid {aka long unsigned int}’ [-Wformat=]
printf("* \t %f cores per PE, giving %llu LPs per pe.\n", cores_per_node, g_tw_nlp);
~~~^
%lu
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c:142:43: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘size_type {aka long unsigned int}’ [-Wformat=]
printf("* \tCalculated sim_size is %llu\n", SIM_SIZE);
~~~^
%lu
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c: In function ‘init_nemo’:
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c:229:29: error: ‘g_tw_npe’ undeclared (first use in this function); did you mean ‘g_tw_pe’?
LPS_PER_PE = g_tw_nlp / g_tw_npe;
^~~~~~~~
g_tw_pe

/home/jyh/neuro_simulators/NeMo/src/nemo_main.c:229:29: note: each undeclared identifier is reported only once for each function it appears in
In file included from /home/jyh/neuro_simulators/NeMo/src/nemo_main.h:15:0,
from /home/jyh/neuro_simulators/NeMo/src/nemo_main.c:6:
/home/jyh/neuro_simulators/NeMo/src/nemo_main.c: At top level:
/home/jyh/neuro_simulators/NeMo/src/./neuro/tn_neuron.h:160:25: warning: inline function ‘TN_convert’ declared but never defined
inline tn_neuron_state *TN_convert(void *lpstate);
^~~~~~~~~~
src/CMakeFiles/NeMo.dir/build.make:62: recipe for target 'src/CMakeFiles/NeMo.dir/nemo_main.o' failed
make[2]: *** [src/CMakeFiles/NeMo.dir/nemo_main.o] Error 1
CMakeFiles/Makefile2:1082: recipe for target 'src/CMakeFiles/NeMo.dir/all' failed
make[1]: *** [src/CMakeFiles/NeMo.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Merge NeMo and CODES LP Registration

  • Follow CODES LP registration functionality of the svr_add_lp_type() function to register NeMo lp types
  • This should replace the use of tw_define_lps() and tw_lp_setup_types() functions in NeMo main.c

Getting more done in GitHub with ZenHub

Hola! @markplagge has created a ZenHub account for the markplagge organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.


How do I use ZenHub?

To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.

What can ZenHub do?

ZenHub adds a series of enhancements directly inside the GitHub UI:

  • Real-time, customizable task boards for GitHub issues;
  • Multi-Repository burndown charts, estimates, and velocity tracking based on GitHub Milestones;
  • Personal to-do lists and task prioritization;
  • Time-saving shortcuts – like a quick repo switcher, a “Move issue” button, and much more.

Add ZenHub to GitHub

Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @markplagge.

ZenHub Board

Need to remove C 11 Generic Macros or fix build system

Currently NeMo uses C11 generic macros for file writes and for debug printing. Due to lack of support of this feature, we should remove these macros and replace them with standard functions or change the build system to handle the lack of _generic support.
The BGQ compiler supports _generic, but it is implemented in a different way than GCC. Clang and GCC differ in their implementation and handling of char*.

Network Desc. API

Create a standard for reading in the network descriptions generated by third-party programs

Seems OK...

So when I run it like this:

mpirun -np 2 ./tnt_benchmark --synch=3 --buddy_size=24

Things seem to work OK? It was looking for an undefined function (neuronReverseState()) so I just commented those calls out.

Write tests for neuron model

We really need to write some basic blackbox tests for neuron models in NeMo.
Given specific inputs, neurons should always output the same outputs, assuming neurons have the same parameters. Stochastic neurons should give the same outputs over enough time (gauss curve style).

Tests need to validate Neuron, core, and multi-core behaviors.

Debug Spike & Network IO

There are some insconsistancies in the output from NeMo when running models generated by the TrueNorth system.
Possible issues include:

  • Incorrect spike file parsing
  • Incorrect network file parsing
  • Errors in SuperSynapse Routing
  • Errors in TN Neuron Model
  • etc...

Full ROSS instrumentation integration

NeMo should use http://carothersc.github.io/ROSS/feature/instrumentation.html - Built-in ROSS instrumentation for stats collection. Potential viz uses include:

  • Power usage analysis: Looking at a chip or series of chips and being able to see the physical location of busy neurosynaptic cores will give an idea as to power usage and optimization.
  • Neuron state analysis: Monitoring individual neurons' behavior could provide interesting insights into interactions inside integrate and fire neurons.
  • Summary views of neurons and their behaviors over time

Potentially, these visualizations will provide some detailed information WRT neuromorphic hardware behavior, esp. when dealing with hypothetical hardware.

Python Binary Hooks

Create a pythonic API for defining Neuromorphic models. Specifically, we want binary hooks for generating neuron LPs within a python framework so that models can be generated via python.

Alternatively, a text based configuration might work as well.

Complete NeMo IO

Complete IO system for NeMo. Needs to have:

Neuron Parameter Input read in at runtime
Neural network input read-in at runtime
spike file read in during run
output of spike file
documentation of input and output file formats

Spike Input

Using the python binary hooks, enable a streaming spike input to NeMo that allows for streaming spike inputs.

NeMo CMake Options Cleanup

Currently, there are several CMake options that are leftover from development forks. We need to clean these up.

Python network creation

Create a network using Python that outputs a file or directly creates the network within NeMo

Release under a free software/open source license

Hello! I was made aware of this project by Dr. Carothers in his parallel computing class. In his lecture notes, he described NeMo as open source software, however I was disapointed to find a lack of a license clearly associated with this project. I (and I presume many others) would love to see this project released under a free/open source license. I personally advocate for the GPLv3, however there are many other licenses approved by the OSI, you can find them here: https://opensource.org/licenses/alphabetical

Additionally, GitHub has created a convenient resource for understanding many popular licenses. That can be found at https://choosealicense.com/.

Thank you again!

Remove unused libs

There are some leftover libs in NeMo. We need to remove
C11 Threads Submodule
Other headers in /src/libs

NeMo and Codes main() Integration

  • Moving the setup process from NeMo's main.c into the model-net-synthetic-fattree.c workload should provide the ability to integrate both NeMo and CODES frameworks into one coherent/mapped ROSS application
  • Tasks/Issues:
    • Issue #29 Make list of tasks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.