CARLsim  4.1.0
CARLsim: a GPU-accelerated SNN simulator
TODO
Member SNN::setConnectionMonitor (int grpIdPre, int grpIdPost, FILE *fid)
: distinguish the function call at CONFIG_STATE and SETUP_STATE, where group(connect)Config[] might not be available
"

: assert simulation use GPU first

: rewrite user-define call-back function

; but note connectConfigs[netId][] are NOT complete, lack of exeternal incoming connections

: connId is global connId, use connectConfigs[netId][local connId] instead,

, Noffset is updated after publish group configs

: How does networkConfigs[netId].numGroups be availabe at this time?! Bug?!

: use it when necessary

: redundant??

: redundant??

Member SNN::saveSimulation (FILE *fid, bool saveSynapseInfo=false)
: replace with faster version
Member SNN::setSpikeRate (int grpId, PoissonRate *spikeRate, int refPeriod)
: distinguish the function call at CONFIG_STATE and RUN_STATE, where groupConfigs[0][] might not be available
Member SNN::setSpikeGenerator (int grpId, SpikeGeneratorCore *spikeGenFunc)
: distinguish the function call at CONFIG_STATE and SETUP_STATE, where groupConfigs[0][] might not be available
"
: are these ramping thingies still supported?
Member SNN::setGroupMonitor (int grpId, FILE *fid)
: distinguish the function call at CONFIG_STATE and SETUP_STATE, where groupConfigs[0][] might not be available
Member SNN::setISTDP (int grpId, bool isSet, STDPType type, STDPCurve curve, float ab1, float ab2, float tau1, float tau2)
: separate STDPType to ESTDPType and ISTDPType
Member SNN::createSpikeGeneratorGroup (const std::string &grpName, const Grid3D &grid, int neurType, int preferredPartition, ComputingBackend preferredBackend)
:IS THIS NECESSARY?
Member COMPACTION_ALIGNMENT_PRE
what are the following for? why were they all the way at the bottom of this file?
"

: check WithESTDPtype and WithISTDPtype first and then do weight change update

is this assert supposed to be for pos?

: make sure this is right when separating cpu_module to a standalone class

: currently this function clear nSpikeCnt of manager runtime data

: if endIdx - startIdx > 64 * 128

: if endIdx - startIdx > 64 * 128

: skip this step if all spike gen neuron are possion neuron (generated by rate)

Member STP_BUF_POS (nid, t, maxDelay)
D is the SNN member variable for the max delay in the network, give it a better name dammit!!
Member SNN::updateSpikeMonitor (int grpId=ALL)
: modify this for multi-GPUs
Page Chapter 13: Example Networks

MB

MB

KDC

Page Chapter 7: Monitoring
extend
Class SpikeGeneratorFromVector
change to vector of AER or 2D vector, so that each neuron can have their own spike times.
"

: there should be a standardized SpikeReader++ utility

: this is a hack...to get the size of the header section

Class SpikeMonitor
finish documentation
Class GroupMonitor
finish documentation
"

: measure total execution time, and GPU excution time

: update summary format for multiGPUs

Member SNN::updateNeuronMonitor (int grpId=ALL)
: modify this for multi-GPUs
"

\DEPRECATED this one moved to group-based

this function is a mess

: wrong to use groupConfigs[0]

Member SNN::getWeightMatrix2D (short int connId)
: modify this for multi-GPUs
"

: imlement option of resetting weights

: why 1023?

: unused function

: fail to write external group if the only one external link across GPUs is uni directional (GPU0 -> GPU1, no GPU1 -> GPU0)

: make sure GPU(s) is available first

Member SNN::isPoint3DinRF (const RadiusRF &radius, const Point3D &pre, const Point3D &post)
: not sure where this should go... maybe create some helper file?
"
: need to figure out STP buffer for delays > 1
Member SNN::isGroupWithHomeostasis (int grpId)
: distinguish the function call at CONFIG_STATE and SETUP_STATE, where groupConfigs[0][] might not be available
Member CARLsim::setSpikeRate (int grpId, PoissonRate *spikeRate, int refPeriod=1)
finish docu
Member CARLsim::getNumNeurons ()
finish docu
Member CARLsim::getNumGroups ()
finish docu
Member CARLsim::getNumSynapticConnections (short int connectionId)
finish docu
Member CARLsim::getGroupName (int grpId)
finish docu
Member CARLsim::getGroupId (std::string grpName)
finish docu
Member CARLsim::getGroupGrid3D (int grpId)
: This function is called in SNN::connect() at CONFIG_STATE, which violate the restriction
Member CARLsim::getDelays (int gIDpre, int gIDpost, int &Npre, int &Npost)
finish docu
Member CARLsim::getConductanceGABAb (int grpId)
finish docu
Member CARLsim::getConductanceGABAa (int grpId)
finish docu
Member CARLsim::getConductanceNMDA (int grpId)
finish docu
Member CARLsim::getConductanceAMPA (int grpId)
finish docu
Member CARLsim::getCARLsimState ()
finish docu
Member CARLsim::getNumNeuronsReg ()
finish docu
Member CARLsim::setGroupMonitor (int grpId, const std::string &fname)
finish docu
Member CARLsim::setNeuromodulator (int grpId, float tauDP=100.0f, float tau5HT=100.0f, float tauACh=100.0f, float tauNE=100.0f)
: this should be implemented via default arguments as members of the class, so that the user can call setDefaultNeuromodulators()
Member CARLsim::setCompartmentParameters (int grpId, float couplingUp, float couplingDown)
finish docu
Member CARLsim::setNeuronParameters (int grpId, float izh_a, float izh_b, float izh_c, float izh_d)
finish docu
Member CARLsim::setNeuronParameters (int grpId, float izh_a, float izh_a_sd, float izh_b, float izh_b_sd, float izh_c, float izh_c_sd, float izh_d, float izh_d_sd)
finish docu
Member CARLsim::createSpikeGeneratorGroup (const std::string &grpName, const Grid3D &grid, int neurType, int preferredPartition=ANY, ComputingBackend preferredBackend=CPU_CORES)
finish doc
Member CARLsim::createSpikeGeneratorGroup (const std::string &grpName, int nNeur, int neurType, int preferredPartition=ANY, ComputingBackend preferredBackend=CPU_CORES)
finish docu
Member CARLsim::createGroupLIF (const std::string &grpName, int nNeur, int neurType, int preferredPartition=ANY, ComputingBackend preferredBackend=CPU_CORES)
finish doc
Member CARLsim::createGroup (const std::string &grpName, int nNeur, int neurType, int preferredPartition=ANY, ComputingBackend preferredBackend=CPU_CORES)
finish doc
Member CARLsim::connectCompartments (int grpIdLower, int grpIdUpper)
finish docu
Member CARLsim::connect (int grpId1, int grpId2, ConnectionGenerator *conn, float mulSynFast, float mulSynSlow, bool synWtType=SYN_FIXED)
finish docu
Member CARLsim::getSimTimeMsec ()
finish docu
Member SNN::getSTPx ()
replace with NeuronMonitor or ConnectionMonitor
Member SNN::getSTPu ()
replace with NeuronMonitor or ConnectionMonitor
Member SNN::getCurrent ()
replace with NeuronMonitor
Member norm (const Point3D &p)
maybe move to carlsim_helper.h or something...
Member CARLsim::Impl::setSpikeRate (int grpId, PoissonRate *spikeRate, int refPeriod)
: make sure spikeRate->isOnGPU() consistent with simulation mode
"
maybe move to carlsim_helper.h or something...
Member norm (const Point3D &p)
maybe move to carlsim_helper.h or something...
Member CARLsim::setDefaultSaveOptions (std::string fileName, bool saveSynapseInfo)
finish docu
Member CARLsim::setDefaultHomeostasisParams (float homeoScale, float avgTimeScale)
finish docu
Member CARLsim::isPoissonGroup (int grpId)
finish docu
Member CARLsim::isInhibitoryGroup (int grpId)
finish docu
Member CARLsim::isExcitatoryGroup (int grpId)
finish docu
Member CARLsim::connect (int grpId1, int grpId2, ConnectionGenerator *conn, bool synWtType=SYN_FIXED)
finish docu
Member CARLsim::getSimTimeSec ()
finish docu
Member CARLsim::getSimTime ()
finish docu
Member CARLsim::getGroupNumNeurons (int grpId)
finish docu
Member CARLsim::getGroupEndNeuronId (int grpId)
finish docu
Member CARLsim::getGroupStartNeuronId (int grpId)
finish docu
Member CARLsim::getNumSynapses ()
finish docu
Member CARLsim::getNumNeuronsGenInh ()
finish docu
Member CARLsim::getNumNeuronsGenExc ()
finish docu
Member CARLsim::getNumNeuronsGen ()
finish docu
Member CARLsim::getNumNeuronsRegInh ()
finish docu
Member CARLsim::getNumNeuronsRegExc ()
finish docu