Nengo Conceptual Architecture

Nengo is conceptually divided into two big domains. The “frontend” is the Nengo API (Ensembles, Nodes, Connections, etc.), which is what you use to define the model. The “backend” is the Simulator, which takes that Nengo model and runs it on some hardware platform. The Simulator provides a Python interface for letting the user run a model and view the output data, but under the hood the actual model execution is taking place in whatever the native format is for that hardware platform. The default Nengo simulator (nengo.Simulator) also uses Python for the implementation, so in that case the whole thing is running in Python. But, for example, Nengo DL (nengo_dl.Simulator) is using TensorFlow (which is in turn implemented in native C/CUDA kernels), or Nengo Loihi (nengo_loihi.Simulator) is using NxSDK.