arXiv paper· evolutionary computation / GPU high-performance computing· method paper

Efficient Constant Optimization for Symbolic Regression with GPU-Accelerated Tree-Based Genetic Programming

Hao Mao, Xu Tony Liu, Shuai Lu, Peng Zhao, Wenzheng Jiang, Yuntian Chen

cs.NE · cs.DC · cs.LG · cs.MS

Quick verdict

GPU-batched LM optimizer for symbolic regression: ~9.9× Operon throughput, 10/18 equations recovered; sound engineering, but evaluation is entirely synthetic.

Summary

The paper presents a GPU-resident, batched Levenberg–Marquardt (LM) solver that fits numerical constants across a structurally heterogeneous population of expression trees in tree-based genetic programming symbolic regression, integrated in-process into the GPU framework EvoGP. The population is encoded in a compact structure-of-arrays layout so each LM iteration costs a fixed number (eight) of population-wide CUDA launches; reverse-mode automatic differentiation builds each tree's Jacobian in one backward sweep, making the dominant cost independent of per-tree constant count; and a double-precision delivery guard re-evaluates losses in fp64, rolling back any tree whose delivered constants are worse than its initial ones. On an A100 the solver sustains up to 5.1×10^5 trees/s on early-generation populations, and at a saturated configuration (M=16,000, N=1,000) delivers ~9.9× the throughput of Operon on a 64-core EPYC 7763 and ~18× SciPy, while 86.6–93.8% of converged trees land within 1.05× of the SciPy fp64 reference loss. Integrated into EvoGP, it recovers 10 of 18 constructed inner-constant equations versus 0 for stock EvoGP (exact McNemar p=2.0×10^-3). Main limitations: all workloads are synthetic (synthetic populations calibrated to real runs; targets with 1% noise); the end-to-end suite is only 18 constructed problems; the headline comparison is hardware-asymmetric (GPU vs 64-core CPU) with no cost normalization; and the related JAX system Kozax is never compared empirically.

Review complete

Assessment at a glance

evolutionary computation / GPU high-performance computing

5

risk flags identified

● high 0

● medium 3

● low 2

Reproducibility readinessmedium
Code & data availableyes
Review confidencehigh
AI text signal0/20 passages flagged
Deep research viableCode-reproducibleNeeds GPU

5 strengths · 5 weaknesses · 5 author questions

AI text signal = Binoculars zero-shot detector score over 20 sampled passages (Fast-DetectGPT co-reported) — absence does not prove human authorship, and a flag does not imply misconduct.

Levels reflect verification complexity — not a quality score. Evolve never rates your paper.

Key claims under review

  • A GPU-resident batched LM solver fits constants for a structurally heterogeneous tree population using a fixed eight population-wide CUDA launches per iteration, independent of population size and per-tree constant counts.
  • Reverse-mode AD builds each tree's Jacobian in one backward sweep, making the dominant per-iteration cost independent of per-tree constant count, and is the fastest mode overall (median 1.51× over FD, 1.11× over forward AD).
  • At the saturated cell M=16,000, N=1,000, the solver reaches 98,154 trees/s on one A100 — about 9.9× Operon on a 64-core EPYC 7763 and 18× SciPy — while 86.6–93.8% of converged trees land within 1.05× of the SciPy fp64 reference loss.
  • The double-precision delivery guard guarantees in fp64 that delivered constants are never worse than initial ones, rolling back any tree whose delivered loss is worse or non-finite.
  • In-process integration into EvoGP recovers 10 of 18 constructed inner-constant equations versus 0 for stock EvoGP (exact McNemar p=2.0×10^-3), with every-fifth-generation cadence statistically indistinguishable from every generation (p=0.73).

Strengths

  • Fixed-launch batched design backed by honest profiling

    Algorithm 1 plus Section IV-D: eight population-wide CUDA launches per LM iteration regardless of M and per-tree constant counts; Nsight Compute speed-of-light profiles (FMA-pipe ≤15%, DRAM <23%) show the loop is instruction-issue/latency-bound, correctly identifying population batching as the latency-hiding mechanism rather than raw FLOPs.

  • Measurement discipline exceeds typical systems papers

    Section IV-A: SM clocks locked at 1410 MHz, CUDA events excluding the one-time ~280 ms startup, 3 seeds × 3 repetitions with medians, throughput quoted only from the ≥145 ms saturation regime (<0.5% variation), and all quality numbers independently re-scored in fp64 on the host rather than trusting solver self-reporting.

  • Double-precision delivery guard gives a hard correctness guarantee

  • Layout ablation cleanly isolates the contribution

  • End-to-end claim is falsifiable and properly tested

Weaknesses

  • Entirely synthetic evaluation

  • Hardware-asymmetric headline without cost normalization

  • fp32 quality tail not validated in evolutionary context

  • 8/18 end-to-end failures unanalyzed

  • Closest GPU system never compared empirically

Full Review Report

$1.99 · one-time

Unlock the complete preliminary analysis Evolve produced for this paper.

Report preview

Scope & Claims

This is a systems/method paper at the intersection of evolutionary computation and GPU high-performance computing. The authors target one specific bottleneck: constant optimization (CO) — the per-tree nonlinear least-squares refinement of numerical constants — which GPU-accelerated genetic programming frameworks (notably EvoGP [3]) omit because per-tree, CPU-style local optimization does not batch well. The central claims: (1) a GPU-resident batched Levenberg–Marquardt (LM) solver handles a structurally heterogeneous population with a fixed eight population-wide CUDA launches per iteration (Section III-C, Algorithm 1); (2) reverse-mode AD builds each tree's Jacobian in one backward sweep, decoupling the dominant cost from per-tree constant count K_m (Section III-C, Table I); (3) a double-precision delivery guard certifies returned constants never worsen the fp64 loss (Section III-D); (4) throughput up to 5.1×10^5 trees/s on an A100 and roughly 9.9× Operon at the saturated reference cell (Section IV-C); (5) in-process integration into EvoGP recovers 10/18 constructed inner-constant equations versus 0/18 for stock EvoGP (Section IV-E). The priority claim — first batched second-order CO fully on GPU for tree-based SR — is plausible given the cited related work but not exhaustively substantiated.

The remaining sections cover Methodology Assessment, Statistical Evidence, Results & Reproducibility, Limitations & Risks, and Verdict & Recommendations.

  • All 5 strengths & 5 weaknesses, analyzed in detail
  • 5 risk flags with severity, section & reviewer questions
  • Methods & statistical evidence assessment
  • 5 questions a peer reviewer would ask
  • Full six-dimension evaluation report & recommendations

One-time purchase · this paper only

One-time purchase, this paper only. AI-generated preliminary analysis — not peer review.

Frequently asked questions

What does this paper's GPU constant-optimization solver do for symbolic regression?

It fits the numerical constants of an entire population of expression trees at once on the GPU using a batched Levenberg–Marquardt loop with a fixed number of kernel launches per iteration, so constant fitting can run every generation inside GPU-based genetic programming (EvoGP) instead of being omitted for cost, as in prior GPU frameworks.

How much faster is it than existing tools like Operon?

At the reported saturated configuration (16,000 trees × 1,000 data points), the authors measure 98,154 trees/s on an NVIDIA A100 — about 9.9× the throughput of Operon on a 64-core EPYC 7763 CPU socket and about 18× SciPy's least_squares. The advantage narrows to 2.7× when each tree has 10,000 data points, since fixed per-tree overheads amortize.

Can single-precision fast-math make the solver return worse constants?

The authors address this with a double-precision delivery guard: after the fp32 optimization loop, every tree's loss is re-computed in fp64 at both delivered and initial constants, and any tree that ends up worse or non-finite is rolled back to its initial constants, so delivered constants are never worse than the starting point in fp64 terms.

Is the code and data available?

The paper links to https://github.com/TensorConv/CuSR and pins its software stack (CUDA 12.4, pyoperon 0.6.1, EvoGP 0.1.0, PyTorch 2.11). Benchmarks use synthetic populations calibrated to statistics of real EvoGP runs; the end-to-end study uses 18 constructed problems whose equations are not enumerated in the paper text.

About this review

This is an AI-generated preliminary review by Evolve.Pub, produced from the openly available text of the paper. It is not peer review and does not represent the authors' views. The canonical record of the paper is at the publisher link above.

  • The 18 end-to-end problems' equations, function set, and noise settings are not stated anywhere in the extracted text — a content absence, not truncation: the text runs complete through reference [29].
  • Figures 1 and 2 render as interleaved raw-text fragments in the extraction; every numeric value cited in this review was explicitly present in that text.

Go deeper on this paper

Wrote a paper? Stress-test it before reviewers do.

Upload your manuscript for the same structured scrutiny — reasoning, statistics, evidence, figures, and reproducibility.

Scan your paper
Efficient Constant Optimization for Symbolic Regression with GPU-Accelerated Tree-Based Genetic Programming | Evolve.Pub