The SNN partitioning problem is essentially a graph partitioning problem, which is NP-complete.
Therefore, heuristics are typically used to find solutions. NeuroXplorer currently supports two heuristics – Particle Swarm Optimization (PSO) [1]} and Kernighan-Lin Graph Partitioning algorithm [2]}. NeuroXplorer uses these heuristics to minimize 1) the number of clusters (as in [3]}), which reduces the hardware requirement, and 2) the number of inter-cluster spikes (as in [4]}, [5]}), which reduces both energy and latency when the machine learning model is mapped to hardware.
NeuroXplorer can be easily extended to use other heuristics such as Hill Climbing [6]} and Simulated Annealing [7]}, as well as other optimization objectives such as application quality and hardware reliability.
<FIGURE>