Deep learning-based recommendation models (DLRMs) are widely used for conducting personalized recommendations, which employ learnable vector parameters, known as embeddings, representing individualized characteristics of users and recommended items such as media contents, products, and ads. A unique characteristic of DLRMs is that due to the embedding layer, the size of the recommender model scales proportional to the size of the online service. Consequently, the size of the DLRMs reaches terabyte-scale for massive-scale online services like Facebook, far exceeding the capacity of bandwidth-optimized accelerator memory. The memory capacity and bandwidth demand from these enlarged embedding layers bring new system-level challenges in training and deploying large-scale recommendation models. This dissertation addresses the bottlenecks of the large-scale deep learning recommendation models by proposing novel hardware and software systems.
This dissertation first identifies that enlarged embedding layers cause major performance challenges in DLRMs. The study clarifies the computational characteristics of such layers and proposes a near-memory processing (NMP) based accelerator hardware that efficiently stores and processes these embeddings. The proposed vertically integrated hardware/software co-design encompasses the required microarchitecture, instruction set architecture (ISA), system architecture, software stack, and a workload parallelization algorithm. Furthermore, to expand the research scope of the NMP-based embedding acceleration to the training context, this dissertation presents an algorithm-architecture co-design, which establishes a theoretical foundation for hardware accelerator design for the embedding layer.
Since such specialized hardware-based acceleration systems can fundamentally address the challenges posed by large embedding layers, developing and maintaining these systems require non-trivial costs. As a cost-effective solution, this dissertation also presents software optimization techniques. By utilizing the highly sparse and skewed access patterns of the embedding layers, this dissertation presents a software-managed caching system using high-bandwidth GPU memory to cache frequently accessed embedding entries. The proposed software system leverages a unique characteristic of the recommendation model training to perfectly prefetches soon-to-be-accessed embedding entries in advance to boost training speed. Lastly, the study analyzes challenges in developing software systems for utilizing the locality of the embedding layer during inference and proposes a new type of caching technique for the embedding layer. The proposed caching mechanism leverages massively parallelized address translation hardware in the accelerator to eliminate bottlenecks in the software-managed embedding cache, which is highly effective for recommendation inference acceleration.
딥러닝 기반의 추천시스템의 경우 개인 맞춤형 추천이라는 목적 달성을 위해 상품, 광고 등의 추천 객체와 서비스 사용자 각각의 개인화된 특징을 임베딩이라 불리는 벡터 파라미터로 학습하고, 추론 과정에서는 학습된 임베딩을 활용하여 추천 객체 간 선호도를 예측하는 방법을 사용한다. 고도화된 추천을 위해 임베딩 계층을 활용하는 딥러닝 모델의 크기는 추천을 수행하고자 하는 온라인 서비스의 규모에 비례한다는 특징을 가지며, 이는 전례 없는 크기의 딥러닝 모델에 대한 수요를 발생시켰다. 일례로 국제적으로 서비스되는 페이스북과 같은 대규모 애플리케이션에 사용되는 추천시스템의 경우 사용되는 임베딩 계층의 크기가 수 테라바이트에 이르는 것으로 알려져 있다. 이는 단일 가속기가 지원하는 고대역폭 메모리의 용량을 크게 상회하는 크기로, 임베딩을 저장하고 이를 활용한 연산을 수행하는 것이 대규모 추천시스템에서의 주된 병목을 야기하게 된다. 본 학위 논문에서는 이와 같은 대규모 추천시스템의 병목을 해결하기 위한 하드웨어 및 소프트웨어 시스템을 제안한다.
본 학위 논문에서는 대규모 추천시스템의 근본적인 문제가 대형화된 임베딩 계층으로부터 야기됨을 밝히며, 이러한 임베딩 계층의 연산 특성을 명확히 규명하고, 이를 효과적으로 저장 및 처리할 수 있는 근접-메모리 처리 기반 가속기 하드웨어를 제안한다. 본 학위 논문에서는 상기 가속기 하드웨어를 위해 수반되어야 할 시스템 아키텍처, 명령어집합 아키텍처 및 시스템 소프트웨어를 종합적으로 제안하며, 임베딩 계층을 효과적으로 처리하기 위한 병렬분산 기법에 대해 제안한다. 또한, 이와 같은 근접-메모리 처리 기반 하드웨어 가속을 활용하는 시스템을 추론 과정뿐만 아니라 학습 과정에도 활용하기 위한 알고리즘-아키텍처 상호설계를 제안하며, 이를 통해 임베딩 계층 가속을 위한 하드웨어 설계의 이론적 토대를 마련한다.
위와 같은 맞춤형 하드웨어 설계를 통해 임베딩으로부터 야기되는 문제를 근본적으로 해결할 수 있으나, 맞춤형 하드웨어 개발 및 유지는 막대한 비용 및 인력을 필요로 한다. 본 학위 논문에서는 상기 문제를 해결하기 위한 범용적인 해법으로서 소프트웨어 최적화 기법에 대해 제시한다. 임베딩 계층의 경우 희소하게 접근되며, 동시에 높은 지역성을 갖는다. 본 학위 논문에서는 이러한 임베딩 계층 연산 특성을 활용하여 빈번히 접근되는 임베딩을 가속기의 고대역폭 메모리에 캐싱하는 기법을 통해 학습 속도를 크게 향상시킬 수 있는 기법을 제안한다. 상기 소프트웨어 시스템에서는 추천시스템 학습이라는 특수한 조건을 활용하여 미래에 접근될 임베딩을 사전에 가속기 메모리로 불러오는 기법을 활용하여 학습 속도를 극대화하는 방법을 제안한다. 마지막으로 추천시스템 추론 과정에서 임베딩 계층의 지역성을 활용하기 위한 소프트웨어 시스템 구축의 어려움을 분석하고, 이를 효과적으로 해결할 수 있는 새로운 종류의 임베딩 계층 캐싱 기법을 제안한다. 상기 추천시스템 추론 가속을 위한 캐싱 기법에서는 가속기 하드웨어의 병렬화된 주소 변환 하드웨어를 활용하여 소프트웨어로 관리되는 임베딩 캐시의 병목을 해결할 수 있음을 보인다.