EvoGP让树形遗传编程在GPU上实现大规模并行,速度提升超300倍。
Enabling Population-Level Parallelism in Tree-Based Genetic Programming for GPU Acceleration
- 将变长程序树转为固定形状张量,统一内存访问
- 动态融合个体内与个体间并行,峰值性能超10^11 GPops/s
- 嵌入PyTorch运行时,兼容Gym等主流环境
树形遗传编程(TGP)广泛用于符号回归、分类和机器人控制等任务。由于计算密集,GPU加速对可扩展性能至关重要。然而,高效GPU执行仍面临三大挑战:(1) 程序个体结构异构,(2) 多级并行集成复杂,(3) 高性能CUDA与灵活的Python环境不兼容。为此,我们提出EvoGP框架,通过种群级并行实现TGP的高效GPU加速。首先,EvoGP采用张量化表示,将变长树编码为固定形状、内存对齐的数组,实现跨个体的均匀内存访问与并行计算。其次,引入自适应并行策略,根据数据集大小动态结合个体内与个体间并行,确保各类任务下高GPU利用率。第三,将自定义CUDA核函数嵌入PyTorch运行时,无缝集成到Gym、MuJoCo、Brax和Genesis等Python环境。实验表明,EvoGP峰值吞吐量超过10^11 GPops/s,相较现有GPU实现最高提速304倍,比顶尖CPU库快18倍。同时保持相近精度,并在大种群规模下展现更优可扩展性。EvoGP已开源,地址:https://github.com/EMI-Group/evogp。
原文摘要 · Abstract (English)
Tree-based Genetic Programming (TGP) is a widely used evolutionary algorithm for tasks such as symbolic regression, classification, and robotic control. Due to the intensive computational demands of running TGP, GPU acceleration is crucial for achieving scalable performance. However, efficient GPU-based execution of TGP remains challenging, primarily due to three core issues: (1) the structural heterogeneity of program individuals, (2) the complexity of integrating multiple levels of parallelism, and (3) the incompatibility between high-performance CUDA execution and flexible Python-based environments. To address these issues, we propose EvoGP, a high-performance framework tailored for GPU acceleration of TGP via population-level parallel execution. First, EvoGP introduces a tensorized representation that encodes variable-sized trees into fixed-shape, memory-aligned arrays, enabling uniform memory access and parallel computation across diverse individuals. Second, EvoGP adopts an adaptive parallelism strategy that dynamically combines intra- and inter-individual parallelism based on dataset size, ensuring high GPU utilization across a broad spectrum of tasks. Third, EvoGP embeds custom CUDA kernels into the PyTorch runtime, achieving seamless integration with Python-based environments such as Gym, MuJoCo, Brax, and Genesis. Experimental results demonstrate that EvoGP achieves a peak throughput exceeding $10^{11}$ GPops/s. Specifically, this performance represents a speedup of up to $304\times$ over existing GPU-based TGP implementations and $18\times$ over state-of-the-art CPU-based libraries. Furthermore, EvoGP maintains comparable accuracy and exhibits improved scalability across large population sizes. EvoGP is open source and accessible at: https://github.com/EMI-Group/evogp.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。