markplagge / nemo Goto Github PK
View Code? Open in Web Editor NEWNeMo - A hardware agnostic neuromorphic processor simulation model built on ROSS
License: MIT License
NeMo - A hardware agnostic neuromorphic processor simulation model built on ROSS
License: MIT License
We need to add usage information to the Wiki, for basic scenarios.
There are no installation instructions on the wiki as well - A guide would be good.
Using ROSS instrumentation (http://carothersc.github.io/ROSS/feature/instrumentation.html), there are a number of ways to gather info on a model.
This visualization will examine core activity/utilization over the simulation. Based on this, it looks like the simplest way to implement this is using the default event tracing method and filtering the end result to show activity.
Define an API for spikes and for network creation
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
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.
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.
ZenHub adds a series of enhancements directly inside the GitHub UI:
Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @markplagge.
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*.
Create a standard for reading in the network descriptions generated by third-party programs
Create an API that allows neurons to be defined at load time.
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.
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.
There are some insconsistancies in the output from NeMo when running models generated by the TrueNorth system.
Possible issues include:
NeMo should use http://carothersc.github.io/ROSS/feature/instrumentation.html - Built-in ROSS instrumentation for stats collection. Potential viz uses include:
Potentially, these visualizations will provide some detailed information WRT neuromorphic hardware behavior, esp. when dealing with hypothetical hardware.
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 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
Using the python binary hooks, enable a streaming spike input to NeMo that allows for streaming spike inputs.
Currently, there are several CMake options that are leftover from development forks. We need to clean these up.
Create a network using Python that outputs a file or directly creates the network within NeMo
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!
There are some leftover libs in NeMo. We need to remove
C11 Threads Submodule
Other headers in /src/libs
TN Neurons have a delay option (# of TN ticks before sending a value). The TN struct in NeMo has this value, but does not use it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.