From 1be4dfb164393c2fe4d42d1883d1c69ecb1e298c Mon Sep 17 00:00:00 2001 From: Pablo Date: Fri, 25 Nov 2016 15:47:40 +0100 Subject: [PATCH 1/4] Fix some warnings --- src/nemo/ConnectivityMatrix.cpp | 4 ++-- src/nemo/cpu/plugins/HH.cpp | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/nemo/ConnectivityMatrix.cpp b/src/nemo/ConnectivityMatrix.cpp index e76e5f5..a06194c 100644 --- a/src/nemo/ConnectivityMatrix.cpp +++ b/src/nemo/ConnectivityMatrix.cpp @@ -244,7 +244,7 @@ ConnectivityMatrix::accumulateStdp(const std::vector& recentFiring) const RSynapse* rdata_ptr = m_rcm->data(*wi); fix_t* accumulator = m_rcm->accumulator(*wi); - for(unsigned s=0; s < m_rcm->WIDTH && remaining--; s++) { + for(int s=0; s < m_rcm->WIDTH && remaining--; s++) { const RSynapse& rdata = rdata_ptr[s]; uint64_t preFiring = recentFiring[rdata.source] >> rdata.delay; fix_t w_diff = m_stdp->weightChange(preFiring, rdata.source, target); @@ -303,7 +303,7 @@ ConnectivityMatrix::applyStdp(float reward) const uint32_t* forward = m_rcm->forward(*wi); fix_t* accumulator = m_rcm->accumulator(*wi); - for(unsigned s=0; s < m_rcm->WIDTH && remaining--; s++) { + for(int s=0; s < m_rcm->WIDTH && remaining--; s++) { const RSynapse& rsynapse = rdata_ptr[s]; fix_t* w_old = weight(rsynapse, forward[s]); diff --git a/src/nemo/cpu/plugins/HH.cpp b/src/nemo/cpu/plugins/HH.cpp index 6be5a8a..e162fc5 100644 --- a/src/nemo/cpu/plugins/HH.cpp +++ b/src/nemo/cpu/plugins/HH.cpp @@ -42,17 +42,17 @@ cpu_update_neurons( const float* m0 = stateBase + b0 * stateHistoryStride + STATE_M * stateVarStride; const float* h0 = stateBase + b0 * stateHistoryStride + STATE_H * stateVarStride; const float* dir0 = stateBase + b0 * stateHistoryStride + STATE_DIR * stateVarStride; - + /* Next state */ size_t b1 = (cycle+1) % historyLength; float* v1 = stateBase + b1 * stateHistoryStride + STATE_V * stateVarStride; - float* n1 = stateBase + b1 * stateHistoryStride + STATE_N * stateVarStride; - float* m1 = stateBase + b1 * stateHistoryStride + STATE_M * stateVarStride; - float* h1 = stateBase + b1 * stateHistoryStride + STATE_H * stateVarStride; + float* n1 = stateBase + b1 * stateHistoryStride + STATE_N * stateVarStride; + float* m1 = stateBase + b1 * stateHistoryStride + STATE_M * stateVarStride; + float* h1 = stateBase + b1 * stateHistoryStride + STATE_H * stateVarStride; float* dir1 = stateBase + b1 * stateHistoryStride + STATE_DIR * stateVarStride; - + float dt = 0.001f; // Simulation time increment float gNa = 120.0f; float gK = 36.0f; @@ -63,7 +63,7 @@ cpu_update_neurons( float C = 1.0f; float RevE = 0.0f; float RevI = -70.0f; - int inc_max= (int)(1/dt); + unsigned int inc_max= (unsigned int)(1/dt); for(unsigned int nn=start; nn < end; ++nn) { @@ -73,11 +73,11 @@ cpu_update_neurons( float h = h0[nn]; float dir = dir0[nn]; - + float Excit = currentEPSP[nn]; float Inhib = currentIPSP[nn]; float Exter = currentExternal[nn]; - + /* no need to clear current?PSP. */ //! \todo clear this outside kernel @@ -88,7 +88,7 @@ cpu_update_neurons( float I = (Excit*(RevE-v)) + (Inhib*((RevI-v)/-1)) + Exter; - + float alphan = (0.1f-0.01f*(v+65.0f))/(exp(1.0f-0.1f*(v+65.0f))-1.0f); float alpham = (2.5f-0.1f*(v+65.0f))/(exp(2.5f-0.1f*(v+65.0f))-1.0f); float alphah = 0.07f*exp(-(v+65.0f)/20.0f); @@ -108,16 +108,16 @@ cpu_update_neurons( float newv = v + dt*(-Ik+I)/C; float new_dir = (newv-v); - float change = dir<0 | newv<-45 ? 0 : new_dir; + float change = (dir<0 || newv<-45) ? 0 : new_dir; dir = new_dir; - + if(!fired[nn] && cycle >= 10) fired[nn] = change < -0.000000001; - + v=newv; - + } fired[nn] |= fstim[nn]; @@ -132,8 +132,8 @@ cpu_update_neurons( n1[nn] = n; m1[nn] = m; h1[nn] = h; - dir1[nn] = dir; - + dir1[nn] = dir; + } } From 2eca492a73f1335456486263ec23b0911dfb8f12 Mon Sep 17 00:00:00 2001 From: Pablo Date: Mon, 28 Nov 2016 15:03:20 +0100 Subject: [PATCH 2/4] Static library for CPU --- src/nemo/cpu/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/nemo/cpu/CMakeLists.txt b/src/nemo/cpu/CMakeLists.txt index 639a3f2..065e749 100644 --- a/src/nemo/cpu/CMakeLists.txt +++ b/src/nemo/cpu/CMakeLists.txt @@ -24,4 +24,9 @@ SET_TARGET_PROPERTIES(nemo_cpu PROPERTIES DEFINE_SYMBOL NEMO_CPU_EXPORTS) TARGET_LINK_LIBRARIES(nemo_cpu nemo_base ${Boost_LIBRARIES}) INSTALL(TARGETS nemo_cpu DESTINATION ${INSTALL_LIB_DIR}) +ADD_LIBRARY(nemo_cpu_a STATIC Simulation.cpp Neurons.cpp) +SET_TARGET_PROPERTIES(nemo_cpu_a PROPERTIES DEFINE_SYMBOL NEMO_CPU_EXPORTS) +TARGET_LINK_LIBRARIES(nemo_cpu_a) +INSTALL(TARGETS nemo_cpu_a DESTINATION ${INSTALL_LIB_DIR}) + ADD_SUBDIRECTORY(plugins) From ab56c9b5e7f39bbc9610392989f05aa02b744e95 Mon Sep 17 00:00:00 2001 From: Pablo Date: Mon, 28 Nov 2016 19:35:24 +0100 Subject: [PATCH 3/4] Create static libraries --- src/nemo/CMakeLists.txt | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/nemo/CMakeLists.txt b/src/nemo/CMakeLists.txt index a964b99..67c7459 100644 --- a/src/nemo/CMakeLists.txt +++ b/src/nemo/CMakeLists.txt @@ -81,14 +81,45 @@ ADD_LIBRARY(nemo_base TARGET_LINK_LIBRARIES(nemo_base ${LTDL_LIBRARY} ${Boost_LIBRARIES}) SET_TARGET_PROPERTIES(nemo_base PROPERTIES DEFINE_SYMBOL NEMO_BASE_EXPORTS) +ADD_LIBRARY(nemo_base_a STATIC + Axon.cpp + ConfigurationImpl.cpp + ConnectivityMatrix.cpp + FiringBuffer.cpp + fixedpoint.cpp + Network.cpp + NetworkImpl.cpp + Neuron.cpp + Neurons.cpp + NeuronType.cpp + Simulation.cpp + SimulationBackend.cpp + OutgoingDelays.cpp + Plugin.cpp + ReadableNetwork.cpp + RNG.cpp + runtime/RCM.cpp + StdpFunction.cpp + StdpProcess.cpp +) + +TARGET_LINK_LIBRARIES(nemo_base_a ${LTDL_LIBRARY} ${Boost_LIBRARIES}) +SET_TARGET_PROPERTIES(nemo_base_a PROPERTIES DEFINE_SYMBOL NEMO_BASE_EXPORTS) + ADD_LIBRARY(nemo nemo.cpp nemo_c.cpp Configuration.cpp) SET_TARGET_PROPERTIES(nemo PROPERTIES DEFINE_SYMBOL NEMO_EXPORTS) TARGET_LINK_LIBRARIES(nemo nemo_base ${BACKEND_LIBS}) - INSTALL(TARGETS nemo nemo_base DESTINATION ${INSTALL_LIB_DIR}) + +ADD_LIBRARY(nemo_a STATIC nemo.cpp nemo_c.cpp Configuration.cpp) +SET_TARGET_PROPERTIES(nemo_a PROPERTIES DEFINE_SYMBOL NEMO_EXPORTS) +TARGET_LINK_LIBRARIES(nemo_a nemo_base_a ${BACKEND_LIBS}) + +INSTALL(TARGETS nemo_a nemo_base_a DESTINATION ${INSTALL_LIB_DIR}) + INSTALL(FILES exception.hpp types.h From 7b8c1763333e16872f63e827fea177e5f875b279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gonz=C3=A1lez-Nalda?= Date: Fri, 28 Sep 2018 16:57:15 +0200 Subject: [PATCH 4/4] Update torus.cpp Explicit casting --- src/examples/torus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/torus.cpp b/src/examples/torus.cpp index 562dd3a..a70a896 100644 --- a/src/examples/torus.cpp +++ b/src/examples/torus.cpp @@ -151,7 +151,7 @@ targetNeuron( /* Don't connect to self unless we wrap around torus */ assert(!(targetX == int(sourceX) && targetY == int(sourceY) && dist < PATCH_HEIGHT-1)); - return std::make_pair(neuronIndex(targetPatch, targetX, targetY), dist); + return std::make_pair(neuronIndex(targetPatch, targetX, targetY), (double)dist); }