Improving a Parallel C++ Intel AVX-512 SIMD Linear Genetic Programming Interpreter
William B. Langdon

TL;DR
This paper enhances a C++ linear genetic programming interpreter with AVX-512 SIMD instructions, achieving a fourfold speedup and further optimizing performance using MAGPIE, a machine learning-based code improvement tool.
Contribution
It extends SIMD vectorization from SSE to AVX-512 and applies MAGPIE for automated local search optimization of the interpreter.
Findings
AVX-512 extension yields fourfold speedup.
MAGPIE improves performance by 2% on manually optimized code.
Automated local search reliably enhances SIMD code performance.
Abstract
We extend recent 256 SSE vector work to 512 AVX giving a four fold speedup. We use MAGPIE (Machine Automated General Performance Improvement via Evolution of software) to speedup a C++ linear genetic programming interpreter. Local search is provided with three alternative hand optimised codes, revision history and the Intel 512 bit AVX512VL documentation as C++ XML. Magpie is applied to the new Single Instruction Multiple Data (SIMD) parallel interpreter for Peter Nordin's linear genetic programming GPengine. Linux mprotect sandboxes whilst performance is given by perf instruction count. In both cases, in a matter of hours local search reliably sped up 114 or 310 lines of manually written parallel SIMD code for the Intel Advanced Vector Extensions (AVX) by 2 percent.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEvolutionary Algorithms and Applications · Software Testing and Debugging Techniques · RNA and protein synthesis mechanisms
