Tensorized NeuroEvolution of Augmenting Topologies for GPU Acceleration
Lishuang Wang, Mengfei Zhao, Enyu Liu, Kebin Sun, Ran Cheng
TL;DR
This work tackles the scalability bottleneck of NeuroEvolution of Augmenting Topologies (NEAT) by introducing a tensorization method that encodes variable-topology networks as uniformly shaped tensors, enabling parallel evaluation across an entire population. Built atop JAX, TensorNEAT vectorizes NEAT operations and leverages hardware acceleration (GPUs/TPUs) to deliver large speedups, reportedly up to 500x over NEAT-Python in robotics benchmarks. The library supports NEAT variants such as CPPN and HyperNEAT and integrates with environments like Gym, Brax, and gymnax, while offering flexible interfaces and problem templates. The results demonstrate substantial practical impact for scalable neuroevolution in complex control tasks, with future work aimed at distributed computation and broader variant support, including DeepNEAT and CoDeepNEAT.
Abstract
The NeuroEvolution of Augmenting Topologies (NEAT) algorithm has received considerable recognition in the field of neuroevolution. Its effectiveness is derived from initiating with simple networks and incrementally evolving both their topologies and weights. Although its capability across various challenges is evident, the algorithm's computational efficiency remains an impediment, limiting its scalability potential. In response, this paper introduces a tensorization method for the NEAT algorithm, enabling the transformation of its diverse network topologies and associated operations into uniformly shaped tensors for computation. This advancement facilitates the execution of the NEAT algorithm in a parallelized manner across the entire population. Furthermore, we develop TensorNEAT, a library that implements the tensorized NEAT algorithm and its variants, such as CPPN and HyperNEAT. Building upon JAX, TensorNEAT promotes efficient parallel computations via automated function vectorization and hardware acceleration. Moreover, the TensorNEAT library supports various benchmark environments including Gym, Brax, and gymnax. Through evaluations across a spectrum of robotics control environments in Brax, TensorNEAT achieves up to 500x speedups compared to the existing implementations such as NEAT-Python. Source codes are available at: https://github.com/EMI-Group/tensorneat.
