Core Concepts
CPU 레지스터를 활용하여 결정 트리 노드 및 특성 값을 효과적으로 관리함으로써 결정 트리 앙상블 추론 성능을 크게 향상시킬 수 있다.
Abstract
이 논문은 결정 트리 앙상블의 추론 성능을 향상시키기 위한 새로운 구현 방법을 제안한다. 기존의 결정 트리 구현 방식인 native tree와 if-else tree에 더해, 레지스터를 활용하여 노드 값과 특성 값을 관리하는 방식을 제안한다.
먼저 특성 값 관리 방식으로, 정적 할당(static feature) 방식과 동적 할당(dynamic feature) 방식을 제안한다. 정적 할당 방식은 추론 시작 전에 자주 사용되는 특성 값을 레지스터에 로드하고, 동적 할당 방식은 특성 값을 필요할 때마다 레지스터에 동적으로 로드한다.
다음으로 노드 값 관리 방식으로, native node, hybrid node, hybrid layer, if-else node 방식을 제안한다. native node 방식은 모든 노드를 native tree로 구현하고 레지스터에 저장된 노드 값을 활용한다. hybrid node와 hybrid layer 방식은 일부 노드를 if-else tree로 구현하고 레지스터에 저장한다. if-else node 방식은 전체 트리를 if-else tree로 구현하고 레지스터에 노드 값을 저장한다.
제안한 방식들을 다양한 데이터셋과 트리 구조에 대해 실험한 결과, 적절한 방식을 선택하면 기존 구현 대비 최대 1.6배 성능 향상을 달성할 수 있음을 보였다. 이는 CPU 아키텍처와 트리 구조에 따라 다른 최적의 방식이 존재함을 의미한다.
Stats
결정 트리 앙상블 추론 시간이 최대 1.6배 단축될 수 있다.
Quotes
"CPU 레지스터를 활용하여 결정 트리 노드 및 특성 값을 효과적으로 관리함으로써 결정 트리 앙상블 추론 성능을 크게 향상시킬 수 있다."
"적절한 방식을 선택하면 기존 구현 대비 최대 1.6배 성능 향상을 달성할 수 있다."