Skip to content
/ evox Public

Distributed GPU-Accelerated Framework for Evolutionary Computation. Comprehensive Library of Evolutionary Algorithms & Benchmark Problems.

License

Notifications You must be signed in to change notification settings

EMI-Group/evox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b4dd5f2 ยท Mar 1, 2025
Jan 8, 2025
Feb 22, 2025
Feb 28, 2025
Feb 28, 2025
Feb 28, 2025
Jan 10, 2025
Jan 8, 2025
Jan 20, 2025
Feb 25, 2025
Aug 29, 2023
Mar 1, 2025
Mar 1, 2025
Jan 21, 2025
Jan 20, 2025
Jan 21, 2025
Jan 21, 2025
Mar 1, 2025

Repository files navigation

EvoX Logo

PSO Result      RVEA Result      HalfCheetah 200

arXiv Documentation PyPI Version Python Version Discord Server QQ Group

English README ไธญๆ–‡ README


๐ŸŒŸDistributed GPU-accelerated Framework for Scalable Evolutionary Computation๐ŸŒŸ


๐Ÿ”ฅ News

  • [2025-03-01] Released EvoX 1.1.0 - now switched to torch.compile (TorchDynamo) [Details]
  • [2025-02-03] Released EvoRL: A GPU-accelerated framework for Evolutionary Reinforcement Learning, powered by JAX ! [Paper] [Code]
  • [2025-01-30] Released EvoGP: A GPU-accelerated framework for Genetic Programming, powered by PyTorch & CUDA! [Paper] [Code]
  • [2025-01-14] Released EvoX 1.0.0 - now fully compatible with PyTorch, with full torch.compile support! Users of the previous JAX-based version can access it on the v0.9.0 branch.

Table of Contents

  1. Overview
  2. Key Features
  3. Main Contents
  4. Quick Installation
  5. Sister Projects
  6. Community & Support

Overview

EvoX is a distributed GPU-accelerated evolutionary computation framework compatible with PyTorch*. With a user-friendly programming model, it offers a comprehensive suite of 50+ Evolutionary Algorithms (EAs) and a wide range of 100+ Benchmark Problems/Environments. For more details, please refer to our Paper and Documentation / ๆ–‡ๆกฃ.

*Users of the previous JAX-based version can access it on the v0.9.0 branch.

Key Features

๐Ÿ’ป High-Performance Computing

๐Ÿš€ Ultra Performance

  • Supports acceleration on heterogeneous hardware, including both CPUs and GPUs, achieving over 100x speedups.
  • Integrates distributed workflows that scale seamlessly across multiple nodes or devices.

๐ŸŒ All-in-One Solution

  • Includes 50+ algorithms for a wide range of use cases, fully supporting single- and multi-objective optimization.
  • Provides a hierarchical architecture for complex tasks such as meta learning, hyperparameter optimization, and neuroevolution.

๐Ÿ› ๏ธ Easy-to-Use Design

  • Fully compatible with PyTorch and its ecosystem, simplifying algorithmic development with a tailored programming model.
  • Ensures effortless setup with one-click installation for Windows users.

๐Ÿ“Š Versatile Benchmarking

๐Ÿ“š Extensive Benchmark Suites

  • Features 100+ benchmark problems spanning single-objective optimization, multi-objective optimization, and real-world engineering challenges.

๐ŸŽฎ Support for Physics Engines

  • Integrates seamlessly with physics engines like Brax and other popular frameworks for reinforcement learning.

โš™๏ธ Customizable Problems

  • Provides an encapsulated module for defining and evaluating custom problems tailored to user needs, with seamless integration into real-world applications and datasets.

๐Ÿ“ˆ Flexible Visualization

๐Ÿ” Ready-to-Use Tools

  • Offers a comprehensive set of visualization tools for analyzing evolutionary processes across various tasks.

๐Ÿ› ๏ธ Customizable Modules

  • Enables users to integrate their own visualization code, allowing for tailored and flexible visualizations.

๐Ÿ“‚ Real-Time Data Streaming

  • Leverages the tailored .exv format to simplify and accelerate real-time data streaming.

Main Contents

Evolutionary Algorithms for Single-objective Optimization

Category Algorithms
Differential Evolution CoDE, JaDE, SaDE, SHADE, IMODE, ...
Evolution Strategy CMA-ES, PGPE, OpenES, CR-FM-NES, xNES, ...
Particle Swarm Optimization FIPS, CSO, CPSO, CLPSO, SL-PSO, ...

Evolutionary Algorithms for Multi-objective Optimization

Category Algorithms
Dominance-based NSGA-II, NSGA-III, SPEA2, BiGE, KnEA, ...
Decomposition-based MOEA/D, RVEA, t-DEA, MOEAD-M2M, EAG-MOEAD, ...
Indicator-based IBEA, HypE, SRA, MaOEA-IGD, AR-MOEA, ...

Benchmark Problems/Environments

Category Problems/Environments
Numerical DTLZ, LSMOP, MaF, ZDT, CEC'22, ...
Neuroevolution/RL Brax, TorchVision Dataset, ...

For a comprehensive list and detailed descriptions of all algorithms, please check the Algorithms API, and for benchmark problems/environments, refer to the Problems API.

Quick Installation

Install evox effortlessly via pip:

pip install evox

Note: Windows users can use the win-install.bat script for installation.

Sister Projects

  • EvoRL:GPU-accelerated framework for Evolutionary Reinforcement Learning. Check out here.
  • EvoGP:GPU-accelerated framework for Genetic Programming. Check out here.
  • TensorNEAT: Tensorized NeuroEvolution of Augmenting Topologies (NEAT) for GPU Acceleration. Check out here.
  • TensorRVEA: Tensorized Reference Vector Guided Evolutionary Algorithm (RVEA) for GPU Acceleration. Check out here.
  • TensorACO: Tensorized Ant Colony Optimization (ACO) for GPU Acceleration. Check out here.
  • EvoXBench: A real-world benchmark platform for solving various optimization problems, such as Neural Architecture Search (NAS). It operates without the need for GPUs/PyTorch/TensorFlow and supports multiple programming environments. Check out here.

Stay tuned - more exciting developments are on the way! โœจ

Community & Support

Citing EvoX

If EvoX contributes to your research, please cite it:

@article{evox,
  title = {{EvoX}: {A} {Distributed} {GPU}-accelerated {Framework} for {Scalable} {Evolutionary} {Computation}},
  author = {Huang, Beichen and Cheng, Ran and Li, Zhuozhao and Jin, Yaochu and Tan, Kay Chen},
  journal = {IEEE Transactions on Evolutionary Computation},
  year = 2024,
  doi = {10.1109/TEVC.2024.3388550}
}

Star History

Star History Chart