CARLsim  6.1.0
CARLsim: a GPU-accelerated SNN simulator
snn_datastructures.h File Reference
#include <cuda_version_control.h>
#include <curand.h>
Include dependency graph for snn_datastructures.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ACNE12Config_s
 
struct  compConnectConfig_s
 The configuration of a compartmental connection. More...
 
struct  compConnectionInfo_s
 
struct  ConductanceConfig_s
 
struct  ConnectConfig_s
 The configuration of a connection. More...
 
struct  ConnectConfigMD_s
 the intermediate data of connect config More...
 
struct  ConnectConfigRT_s
 The runtime configuration of a connection. More...
 
struct  ConnectionInfo_s
 
struct  DelayInfo_s
 
struct  GlobalNetworkConfig_s
 
struct  GroupConfig_s
 The configuration of a group. More...
 
struct  GroupConfigMD_s
 
struct  GroupConfigRT_s
 The runtime configuration of a group. More...
 
struct  HomeostasisConfig_s
 
struct  NetworkConfigRT_s
 runtime network configuration More...
 
struct  NeuralDynamicsConfig_s
 
struct  NeuromodulatorConfig_s
 
struct  NM4STPConfig_s
 
struct  NM4wConfig_s
 
struct  RoutingTableEntry_s
 runtime spike routing table entry More...
 
struct  RuntimeData_s
 
struct  STDPConfig_s
 
struct  STPConfig_s
 
struct  SynInfo_s
 
struct  ThreadStruct_s
 CPU multithreading subroutine (that takes single argument) struct argument. More...
 

Macros

#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL
 
#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL
 
#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL
 

Typedefs

typedef struct ACNE12Config_s ACNE12Config
 
typedef struct compConnectConfig_s compConnectConfig
 The configuration of a compartmental connection. More...
 
typedef struct compConnectionInfo_s compConnectionInfo
 
typedef struct ConductanceConfig_s ConductanceConfig
 ACh,NE configurations (ANCK12, K12,K13,..) More...
 
typedef struct ConnectConfig_s ConnectConfig
 The configuration of a connection. More...
 
typedef struct ConnectConfigMD_s ConnectConfigMD
 the intermediate data of connect config More...
 
typedef struct ConnectConfigRT_s ConnectConfigRT
 The runtime configuration of a connection. More...
 
typedef struct ConnectionInfo_s ConnectionInfo
 
typedef struct DelayInfo_s DelayInfo
 
typedef struct GlobalNetworkConfig_s GlobalNetworkConfig
 
typedef struct GroupConfig_s GroupConfig
 The configuration of a group. More...
 
typedef struct GroupConfigMD_s GroupConfigMD
 
typedef struct GroupConfigRT_s GroupConfigRT
 The runtime configuration of a group. More...
 
typedef struct HomeostasisConfig_s HomeostasisConfig
 neuromodulator configurations More...
 
typedef struct NetworkConfigRT_s NetworkConfigRT
 runtime network configuration More...
 
typedef struct NeuralDynamicsConfig_s NeuralDynamicsConfig
 
typedef struct NeuromodulatorConfig_s NeuromodulatorConfig
 conductance configurations More...
 
typedef struct NM4STPConfig_s NM4STPConfig
 
typedef struct NM4wConfig_s NM4wConfig
 
typedef struct RoutingTableEntry_s RoutingTableEntry
 runtime spike routing table entry More...
 
typedef struct RuntimeData_s RuntimeData
 
typedef struct STDPConfig_s STDPConfig
 short-term plasiticity configurations More...
 
typedef struct STPConfig_s STPConfig
 homeostatic plasticity configurations More...
 
typedef struct SynInfo_s SynInfo
 long-term plasiticity configurations More...
 
typedef struct ThreadStruct_s ThreadStruct
 CPU multithreading subroutine (that takes single argument) struct argument. More...
 

Enumerations

enum  conType_t {
  CONN_RANDOM, CONN_ONE_TO_ONE, CONN_FULL, CONN_FULL_NO_DIRECT,
  CONN_GAUSSIAN, CONN_USER_DEFINED, CONN_UNKNOWN
}
 connection types, used internally (externally it's a string) More...
 
enum  MemType { CPU_MEM, GPU_MEM }
 type of memory pointer More...
 
enum  SNNState { CONFIG_SNN, COMPILED_SNN, PARTITIONED_SNN, EXECUTABLE_SNN }
 the state of spiking neural network, used with in kernel. More...
 

Macro Definition Documentation

◆ LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL [1/3]

#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL

Definition at line 891 of file snn_datastructures.h.

◆ LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL [2/3]

#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL

Definition at line 891 of file snn_datastructures.h.

◆ LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL [3/3]

#define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL

Definition at line 891 of file snn_datastructures.h.

Typedef Documentation

◆ ACNE12Config

typedef struct ACNE12Config_s ACNE12Config

NM4w weighted and normalized (LN21) w_i*NM_i, i=1..4; w_5*(Sum_i(w_i)) normalize (boost/damp) Array size = last index + 1 + norm + baseline

◆ compConnectConfig

This structure contains the configurations of compartmental connections that are created during configuration state. The configurations are later processed by compileNetwork() and translated to meta data which are ready to be linked.

See also
CARLsimStateneural dynamics configuration

◆ compConnectionInfo

◆ ConductanceConfig

◆ ConnectConfig

This structure contains the configurations of connections that are created during configuration state. The configurations are later processed by compileNetwork() and translated to meta data which are ready to be linked.

See also
CARLsimState

◆ ConnectConfigMD

Note
for futre use

◆ ConnectConfigRT

This structure contains the configurations of connections that are created by optimizeAndPartiionNetwork(), which is ready to be executed by computing backend.

See also
CARLsimState
SNNState

◆ ConnectionInfo

◆ DelayInfo

typedef struct DelayInfo_s DelayInfo

◆ GlobalNetworkConfig

◆ GroupConfig

typedef struct GroupConfig_s GroupConfig

This structure contains the configuration of groups that are created during configuration state. The configurations are later processed by compileNetwork() and translated to meata data which are ready to be linked.

See also
CARLsimState

◆ GroupConfigMD

◆ GroupConfigRT

This structure contains the configurations of groups that are created by optimizeAndPartiionNetwork(), which is ready to be executed by computing backend.

See also
CARLsimState
SNNState

◆ HomeostasisConfig

◆ NetworkConfigRT

This structure contains the network configuration that is required for GPU simulation. The data in this structure are copied to device memory when running GPU simulation.

See also
SNN

◆ NeuralDynamicsConfig

◆ NeuromodulatorConfig

◆ NM4STPConfig

typedef struct NM4STPConfig_s NM4STPConfig

◆ NM4wConfig

typedef struct NM4wConfig_s NM4wConfig

Array size = last index + 1 + norm + baseline default constuctor by inline initializations for one nm

◆ RoutingTableEntry

This structure contains the spike routing information, including source net id, source global group id, destination net id, destination global group id

◆ RuntimeData

typedef struct RuntimeData_s RuntimeData

◆ STDPConfig

typedef struct STDPConfig_s STDPConfig

◆ STPConfig

typedef struct STPConfig_s STPConfig

◆ SynInfo

typedef struct SynInfo_s SynInfo

◆ ThreadStruct

typedef struct ThreadStruct_s ThreadStruct

This sturcture contains the snn object (because the multithreading routing is a static method and does not recognize this object), netID runtime used by the CPU runtime methods, local group ID, startIdx, endIdx, GtoLOffset

Enumeration Type Documentation

◆ conType_t

enum conType_t
Enumerator
CONN_RANDOM 
CONN_ONE_TO_ONE 
CONN_FULL 
CONN_FULL_NO_DIRECT 
CONN_GAUSSIAN 
CONN_USER_DEFINED 
CONN_UNKNOWN 

Definition at line 81 of file snn_datastructures.h.

◆ MemType

enum MemType

CARLsim supports execution either on standard x86 central processing units (CPUs) or off-the-shelf NVIDIA GPUs. The runtime data for CPU/GPU computing backend needs to be allocated in proper memory space.

CPU_MEM: runtime data is allocated on CPU (main) memory GPU_MEM: runtime data is allocated on GPU memory

Enumerator
CPU_MEM 

runtime data is allocated on CPU (main) memory

GPU_MEM 

runtime data is allocated on GPU memory

Definition at line 75 of file snn_datastructures.h.

◆ SNNState

enum SNNState
Enumerator
CONFIG_SNN 
COMPILED_SNN 
PARTITIONED_SNN 
EXECUTABLE_SNN 

Definition at line 84 of file snn_datastructures.h.