Skip to main content
QUICK REVIEW

[논문 리뷰] Accelerating Genetic Programming using GPUs

Vimarsh Sathia, Venkataramana Ganesh|arXiv (Cornell University)|2021. 10. 15.
Evolutionary Algorithms and Applications참고 문헌 12인용 수 4
한 줄 요약

이 논문은 NVIDIA GPU에서 효율적인 평가가 가능한 스택 기반 유전적 프로그래밍(GP) 모델과 접두어 목록 표현을 사용하여 GPU 가속 기반의 기호적 회귀 및 분류 프레임워크를 제안한다. CUDA를 통해 선택 및 적합도 평가를 병렬화하고, 벡터화된 손실 계산을 활용함으로써, 합성 데이터에서는 gplearn 대비 최대 119배의 속도 향상을, 대규모 데이터셋에서는 40배의 속도 향상을 달성하였으며, 정확도와 손실 성능은 유사하게 유지하였다.

ABSTRACT

Genetic Programming (GP), an evolutionary learning technique, has multiple applications in machine learning such as curve fitting, data modelling, feature selection, classification etc. GP has several inherent parallel steps, making it an ideal candidate for GPU based parallelization. This paper describes a GPU accelerated stack-based variant of the generational GP algorithm which can be used for symbolic regression and binary classification. The selection and evaluation steps of the generational GP algorithm are parallelized using CUDA. We introduce representing candidate solution expressions as prefix lists, which enables evaluation using a fixed-length stack in GPU memory. CUDA based matrix vector operations are also used for computation of the fitness of population programs. We evaluate our algorithm on synthetic datasets for the Pagie Polynomial (ranging in size from $4096$ to $16$ million points), profiling training times of our algorithm with other standard symbolic regression libraries viz. gplearn, TensorGP and KarooGP. In addition, using $6$ large-scale regression and classification datasets usually used for comparing gradient boosting algorithms, we run performance benchmarks on our algorithm and gplearn, profiling the training time, test accuracy, and loss. On an NVIDIA DGX-A100 GPU, our algorithm outperforms all the previously listed frameworks, and in particular, achieves average speedups of $119 imes$ and $40 imes$ against gplearn on the synthetic and large scale datasets respectively.

연구 동기 및 목표

  • 유전적 프로그래밍에서 GPU 병렬 처리를 활용하여 기호적 회귀 및 이진 분류를 가속화한다.
  • GP에서 적합도 평가의 성능 저하 문제를 해결하기 위해 GPU에서 효율적이고 대규모 병렬 평가가 가능한 방법을 제공한다.
  • 빠른 스택 기반 평가와 벡터화된 적합도 계산을 지원하는 GPU 우수 프로그램 표현 방식을 설계한다.
  • 합성 및 실제 데이터셋에서 기존의 CPU 및 GPU 기반 GP 프레임워크와의 성능을 평가한다.
  • 훈련 시간을 크게 단축시키면서도 동등한 모델 품질(정확도 및 손실)을 확보한다.

제안 방법

  • GPU 메모리 내에서 고정 길이 스택 평가가 가능한 접두어 목록으로 GP 프로그램을 표현하여 메모리 코alescing 및 캐시 효율성을 향상시킨다.
  • 세대 기반 GP 알고리즘의 병렬 처리를 위해 CUDA 커널을 사용하여 선택 및 변형 단계를 병렬화한다.
  • 표준 손실 함수(MSE, RMSE 등)에 대해 완전히 벡터화된 CUDA 커널을 구현하여 인구 집단 전반의 적합도 평가 속도를 가속화한다.
  • 각 프로그램 표현식을 단일 명령어 다중 데이터(SIMD) 실행 방식으로 병렬 처리하는 스택 기반 평가 엔진을 사용한다.
  • 입력 데이터를 열 우선 순서로 저장하여 GPU에서 메모리 액세스 패턴을 최적화함으로써 메모리 액세스 효율성을 높인다.
  • scikit-learn 유사 API를 제공하는 GPU 가속 기반 머신러닝 라이브러리인 cuML에 통합하여 사용성 향상을 도모한다.

실험 결과

연구 질문

  • RQ1접두어 목록 인코딩을 사용한 스택 기반 GP 표현 방식은 기호적 회귀의 효율적이고 확장 가능한 GPU 병렬 처리를 가능하게 하는가?
  • RQ2합성 및 실제 데이터셋에서 GPU 가속 기반 GP는 gplearn과 같은 CPU 병렬 프레임워크에 비해 훈련 속도에서 어떻게 비교되는가?
  • RQ3벡터화된 손실 계산과 최적화된 메모리 액세스는 GPU에서 적합도 평가 성능 향상에 얼마나 기여하는가?
  • RQ4GPU 가속 기반 GP 프레임워크는 기존 라이브러리와 비교해 경쟁적인 예측 정확도와 손실 성능를 유지하는가?
  • RQ5데이터셋 크기와 인구 집단 크기가 GPU 가속 기반 GP 구현의 성능 스케일링에 미치는 영향은 어떠한가?

주요 결과

  • 4096점에서 1600만 점까지의 합성 Pagie Polynomial 데이터셋에서, GPU 가속 구현은 gplearn 대비 평균 119배의 속도 향상을 달성하였다.
  • 6개의 대규모 회귀 및 분류 데이터셋에서, 프레임워크는 gplearn 대비 평균 40배의 속도 향상을 기록하였으며, Epsilon 데이터셋에서는 최대 713배의 속도 향상을 기록하였다.
  • Epsilon 데이터셋은 GPU 메모리 내에서 입력 데이터를 열 우선 순서로 저장함으로써 메모리 코alescing이 가능해져 놀라운 속도 향상(713배)을 보였다.
  • 1억 건 이상의 행을 가진 Airline 및 Airline Regression 데이터셋에서는 각각 gplearn 대비 평균 42배와 32배의 속도 향상을 달성하였다(8개 CPU 작업 사용).
  • 모든 데이터셋에서 제안된 프레임워크와 gplearn 간의 테스트 정확도와 RMS 오차는 거의 동일하여 동등한 모델 품질을 입증하였다.
  • 제안된 방법은 모든 세대의 진화된 프로그램 전체를 반환하여 진화 과정의 분석이 가능하게 하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.