论文标题
pycarl:用于硬件软件共同模拟神经网络的pynn界面
PyCARL: A PyNN Interface for Hardware-Software Co-Simulation of Spiking Neural Network
论文作者
论文摘要
我们提出了Pycarl,这是一种基于Pynn的常见Python编程界面,用于硬件软件峰值神经网络(SNN)。通过Pycarl,我们做出以下两个关键贡献。首先,我们为Pynn提供了一个界面,Carlsim是一种计算效率,GPU加速和生物物理详细范围的SNN模拟器的界面。 Pycarl促进了Carlsim和Pynn用户之间的机器学习模型和代码共享的联合开发,从而促进了一个综合且更大的神经形态社区。其次,我们将最先进的神经形态硬件(例如Truenorth,Loihi和dynapse)集成了pycarl中的最新神经形态硬件的模型,以准确地建模硬件潜伏期,以延迟通信神经元和降解性能之间的峰值。 Pycarl允许用户分析和优化仅软件模拟与其机器学习模型的硬件软件共模拟之间的性能差异。我们表明,系统设计师还可以在产品开发阶段早期使用Pycarl进行设计空间探索,从而促进更快的神经形态产品的时间。我们使用功能测试,合成SNN和现实应用评估了Pycarl的内存使用情况和模拟时间。我们的结果表明,对于大型SNN,Pycarl与Carlsim相比不会导致任何明显的开销。我们还使用Pycarl分析这些SNN的最先进的神经形态硬件,并证明了与仅软件模拟的性能偏差。 Pycarl允许在模型开发期间早期评估和最小化此类差异。
We present PyCARL, a PyNN-based common Python programming interface for hardware-software co-simulation of spiking neural network (SNN). Through PyCARL, we make the following two key contributions. First, we provide an interface of PyNN to CARLsim, a computationally-efficient, GPU-accelerated and biophysically-detailed SNN simulator. PyCARL facilitates joint development of machine learning models and code sharing between CARLsim and PyNN users, promoting an integrated and larger neuromorphic community. Second, we integrate cycle-accurate models of state-of-the-art neuromorphic hardware such as TrueNorth, Loihi, and DynapSE in PyCARL, to accurately model hardware latencies that delay spikes between communicating neurons and degrade performance. PyCARL allows users to analyze and optimize the performance difference between software-only simulation and hardware-software co-simulation of their machine learning models. We show that system designers can also use PyCARL to perform design-space exploration early in the product development stage, facilitating faster time-to-deployment of neuromorphic products. We evaluate the memory usage and simulation time of PyCARL using functionality tests, synthetic SNNs, and realistic applications. Our results demonstrate that for large SNNs, PyCARL does not lead to any significant overhead compared to CARLsim. We also use PyCARL to analyze these SNNs for a state-of-the-art neuromorphic hardware and demonstrate a significant performance deviation from software-only simulations. PyCARL allows to evaluate and minimize such differences early during model development.