GPU-Accelerated Genetic Programming for Symbolic Regression with Beagle Framework
Organizations: Michigan State University East Lansing, Michigan, USA · Noblis, Inc. Virginia, USA
Abstract
Beagle is a new software framework that enables execution of Genetic Programming tasks on the GPU. Currently available for symbolic regression, it processes individuals of the population and fitness cases for training in a way that maximizes throughput on extant GPU platforms. In this contribution, we report on the benchmarking of Beagle on the Feynman Symbolic Regression dataset and compare its performance with a fast CPU system called StackGP and the widely available PySR system under the same wall clock budget. We also report on the use of two different fitness functions, one a point-to-point error function, the other a correlation fitness function. The results demonstrate that the Beagle's GPU-aided Symbolic Regression significantly outperforms leading CPU-based frameworks.
Figures & tables
| Parameter | Setting |
|---|---|
| Pt-Pt Pop Size | 5 mil. (gen <20) 1 mil. (gen >= 20) |
| Corr Pop Size | 5 mil. (gen < 5) 3 mil (gen < 10) 1 mil (gen < 15) 500k (gen < 20) 250k (gen >=20) |
| Operators | , , , |
| Selection Strategy | Monte-Carlo-Inspired Rank Selection |
| Parameter | Setting |
|---|---|
| Pop Size | 300 |
| Tournament Size | 5 |
| Elitism Rate | 10 |
| Operators | , , , |
| Selection Strategy | Pareto Tournament |
| Parameter | Setting |
|---|---|
| Model Selection | "best" |
| Parallelism | "multithreading" |
| Elitism Rate | 10 |
| Operators | , , , |
| Setup | Beagle (pt-pt) | Beagle (corr) | StackGP | PySR |
|---|---|---|---|---|
| Typical | 66 | 82 | 65 | 64 |
| Best | 77 | 89 | 82 | 78 |
| Setup | Beagle (pt-pt) | Beagle (corr) | StackGP | PySR |
|---|---|---|---|---|
| Typical | 74 | 84 | 70 | 72 |
| Best | 80 | 91 | 83 | 86 |
| EQ # | Beagle (pt-pt) | Beagle (Corr) | StackGP | PySR |
| 1 | 10 | 10 | 9 | 1 |
| 2 | 0 | 10 | 2 | 0 |
| 3 | 0 | 10 | 0 | 0 |
| 4 | 0 | 10 | 4 | 0 |
| 5 | 0 | 0 | 0 | 0 |
| 6 | 10 | 7 | 9 | 7 |
| EQ # | Beagle (pt-pt) | Beagle (Corr) | StackGP | PySR |
| 1 | 10 | 10 | 10 | 3 |
| 2 | 0 | 10 | 2 | 1 |
| 3 | 0 | 10 | 0 | 1 |
| 4 | 1 | 10 | 10 | 1 |
| 5 | 0 | 1 | 0 | 0 |
| 6 | 10 | 7 | 10 | 9 |