2020/03/21 by Adarsha Balaji, Prathyusha Adiraju, Balaji, Adarsha +11 · 1 citation
Computer Science · Engineering · Neuroscience · #Advanced Memory and Neural Computing #FOS: Computer and information sciences #Neural Networks and Reservoir Computing #Neural and Evolutionary Computing (cs.NE) #Neural dynamics and brain function
paper · pdf · doi:10.48550/arxiv.2003.09696
openalex publication_date 2020/03/21 · openalex created_date 2022/07/26 · openalex updated_date 2026/07/28
We present PyCARL, a PyNN-based common Python programming interface for\nhardware-software co-simulation of spiking neural network (SNN). Through\nPyCARL, we make the following two key contributions. First, we provide an\ninterface of PyNN to CARLsim, a computationally-efficient, GPU-accelerated and\nbiophysically-detailed SNN simulator. PyCARL facilitates joint development of\nmachine learning models and code sharing between CARLsim and PyNN users,\npromoting an integrated and larger neuromorphic community. Second, we integrate\ncycle-accurate models of state-of-the-art neuromorphic hardware such as\nTrueNorth, Loihi, and DynapSE in PyCARL, to accurately model hardware latencies\nthat delay spikes between communicating neurons and degrade performance. PyCARL\nallows users to analyze and optimize the performance difference between\nsoftware-only simulation and hardware-software co-simulation of their machine\nlearning models. We show that system designers can also use PyCARL to perform\ndesign-space exploration early in the product development stage, facilitating\nfaster time-to-deployment of neuromorphic products. We evaluate the memory\nusage and simulation time of PyCARL using functionality tests, synthetic SNNs,\nand realistic applications. Our results demonstrate that for large SNNs, PyCARL\ndoes not lead to any significant overhead compared to CARLsim. We also use\nPyCARL to analyze these SNNs for a state-of-the-art neuromorphic hardware and\ndemonstrate a significant performance deviation from software-only simulations.\nPyCARL allows to evaluate and minimize such differences early during model\ndevelopment.\n