Figure REF  illustrates the key components of NeuroXplorer. At a high-level, NeuroXplorer supports three layers of abstraction – the application layer, the system software layer, and the hardware layer, similar to the abstractions in a classical von-Neumann computing system. Internally, the system software layer is divided into a design-time or compile-time methodology, where a machine learning model is converted into an intermediate form for mapping to a specific neuromorphic hardware, and a run-time methodology, which allocates hardware resources to admit and execute the model on the hardware.
NeuroXplorer can work with both Artificial Neural Networks (ANNs) and biology-inspired Spiking Neural Networks (SNNs).
NeuroXplorer interfaces with ANN workloads that are specified in high-level frameworks such as Keras with TensorFlow backend [1]}, [2]} and PyTorch [3]}. To map an ANN workload to an event-driven neuromorphic hardware, the workload is first converted to an SNN using the SNN Conversion unit and then, the SNN is simulated using the SNN Simulation unit of NeuroXplorer.
