[논문 리뷰] Breadth-first, Depth-next Training of Random Forests
이 논문은 현대 다중 코어 CPU를 고려해 최적화된 하이브리드 너비 우선 탐색 및 깊이 우선 탐색(BFS-DFS) 트리 구축 알고리즘을 제안한다. 런타임 조건에 따라 동적으로 BFS 및 DFS 모드를 전환하고, 캐시 우수한 메모리 레이아웃, 명시적 프리패칭, 최소한의 힙 할당과 같은 저수준 시스템 최적화를 적용함으로써, 최신 RF 솔버들(sci-kit-learn, H2O, xgboost) 대비 평균 7.8배의 성능 향상을 이룩하였으며, 특정 워크로드에서는 최대 100배의 성능 향상을 달성하였다.
In this paper we analyze, evaluate, and improve the performance of training Random Forest (RF) models on modern CPU architectures. An exact, state-of-the-art binary decision tree building algorithm is used as the basis of this study. Firstly, we investigate the trade-offs between using different tree building algorithms, namely breadth-first-search (BFS) and depth-search-first (DFS). We design a novel, dynamic, hybrid BFS-DFS algorithm and demonstrate that it performs better than both BFS and DFS, and is more robust in the presence of workloads with different characteristics. Secondly, we identify CPU performance bottlenecks when generating trees using this approach, and propose optimizations to alleviate them. The proposed hybrid tree building algorithm for RF is implemented in the Snap Machine Learning framework, and speeds up the training of RFs by 7.8x on average when compared to state-of-the-art RF solvers (sklearn, H2O, and xgboost) on a range of datasets, RF configurations, and multi-core CPU architectures.
연구 동기 및 목표
- 현대 다중 코어 CPU 아키텍처에서 Random Forest 학습 성능을 향상시키기 위해 트리 구축 알고리즘을 분석하고 최적화하는 것.
- 메모리 액세스 패턴과 캐시 효율성 측면에서 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS) 트리 구축 간의 상호 상충 관계를 조사하는 것.
- 다양한 워크로드와 하드웨어 특성에 적응하기 위해 동적으로 BFS 및 DFS 모드를 선택할 수 있는 하이브리드 트리 구축 알고리즘을 설계하는 것.
- 메모리 액세스 패턴과 동적 메모리 할당 오버헤드와 같은 시스템 수준의 성능 저하 요인을 규명하고 해결하는 것.
- 실세계 성능 향상을 위해 Snap Machine Learning 프레임워크 내에 제안된 최적화를 구현하고 평가하는 것.
제안 방법
- 런타임 워크로드 특성과 성능 히وري스틱에 기반해 동적으로 너비 우선 및 깊이 우선 탐색을 전환하는 동적 하이브리드 BFS-DFS 알고리즘 설계.
- 모든 트리에 공유되는 읽기 전용 사전 정렬된 행렬을 공유 메모리에 구현하여 정렬 비용을 분산 처리.
- 데이터 구조 재구성 및 공간 국지성 향상으로 CPU 캐시 우수한 메모리 액세스 패턴 최적화.
- 메모리 지연을 숨기고 명령 수준의 병렬성 향상을 위해 명시적 하드웨어 프리패칭 활용.
- 메모리 풀 재사용 및 트리 구축 중 힙 할당 최소화로 동적 메모리 할당 오버헤드 감소.
- 엔드 투 엔드 평가를 위해 최적화된 트리 구축 파이프라인을 Snap Machine Learning 프레임워크에 통합.
실험 결과
연구 질문
- RQ1현대 다중 코어 CPU에서 BFS 및 DFS 트리 구축 전략은 성능과 캐시 효율성 측면에서 어떻게 비교되는가?
- RQ2하이브리드 BFS-DFS 알고리즘이 다양한 워크로드에 동적으로 적응하여 순수 BFS 및 DFS 전략을 초월할 수 있는가?
- RQ3현대 CPU에서 고성능 Random Forest 학습을 저해하는 주요 시스템 수준의 성능 저하 요인은 무엇인가?
- RQ4캐시 인식 메모리 레이아웃 및 프리패칭과 같은 저수준 최적화가 학습 처리량에 얼마나 기여하는가?
- RQ5제안된 하이브리드 알고리즘은 최신 솔버들과 비교해 다양한 데이터셋, RF 설정, CPU 아키텍처에서 어떻게 성능을 발휘하는가?
주요 결과
- 제안된 하이브리드 BFS-DFS 알고리즘은 워크로드 특성에 동적으로 적응함으로써 순수 BFS 및 DFS 전략을 모두 능가하는 성능과 뛰어난 강인성을 확보한다.
- 다양한 데이터셋과 CPU 아키텍처를 대상으로 평균적으로 scikit-learn, H2O, xgboost 대비 7.8배의 성능 향상을 달성한다.
- IBM Power9 시스템에서는 특정 설정에서 최대 100배의 성능 향상을 기록하였으며, 특히 100개의 트리로 구성된 대규모 앙상블에서 두드러졌다.
- 100개의 트리에서 Power9 시스템에서는 H2O 대비 33.3배, x86 시스템에서는 15.2배의 성능 향상을 기록하여 앙상블 크기에 따라 강력한 스케일링 성능을 보였다.
- 시스템 수준 최적화인 캐시 우수한 메모리 레이아웃, 명시적 프리패칭, 최소한의 힙 할당이 성능 향상에 기여하는 데 핵심적인 역할을 하였다.
- 모든 프레임워크 간 테스트 정확도는 일관되며, 성능 향상이 모델 일반화 능력을 손상시키지 않음을 확인하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.