KR102515159B1 - 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템 - Google Patents

딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템 Download PDF

Info

Publication number
KR102515159B1
KR102515159B1 KR1020220085533A KR20220085533A KR102515159B1 KR 102515159 B1 KR102515159 B1 KR 102515159B1 KR 1020220085533 A KR1020220085533 A KR 1020220085533A KR 20220085533 A KR20220085533 A KR 20220085533A KR 102515159 B1 KR102515159 B1 KR 102515159B1
Authority
KR
South Korea
Prior art keywords
embedding
hbm
pim
main memory
vector
Prior art date
Application number
KR1020220085533A
Other languages
English (en)
Inventor
이채은
조명근
Original Assignee
인하대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인하대학교 산학협력단 filed Critical 인하대학교 산학협력단
Priority to KR1020220085533A priority Critical patent/KR102515159B1/ko
Application granted granted Critical
Publication of KR102515159B1 publication Critical patent/KR102515159B1/ko
Priority to US18/308,567 priority patent/US11755898B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

하이브리드 니어 메모리 프로세싱 시스템 및 그 동작 방법이 제시된다. 본 발명에서 제안하는 하이브리드 니어 메모리 프로세싱 시스템은 GPU, PIM-HBM, CPU 및 메인 메모리를 포함하고, 상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 상기 메인 메모리와 상기 HBM에 나누어 저장하고, 상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되며, 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되고, 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들은 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출한다.

Description

딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템{Near-memory Processing of Embeddings Method and System for Reducing Memory Size and Energy in Deep Learning-based Recommendation Systems}
본 발명은 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템에 관한 것이다.
최근 여러 분야에서 인공 지능을 이용한 기술에 많은 관심이 기울어지고 있다. 특히 딥러닝 기술을 활용한 추천 시스템의 경우 개인화된 서비스를 선호하는 산업 계의 추세와 함께 더욱 화두가 되고 있다. 추천 시스템은 상업용 비디오 추천[1], SNS(Social Network Service)[2], 어플리케이션 추천[3] 등 많은 분야에서 사용되고 있다. 추천 시스템은 일반적으로 가격, 나이, 연봉과 같은 연속(밀집) 특징(continuous(dense) features)과 성별, 연령대, 장르와 같은 카테고리(희소) 특징(categorical(sparse) features)을 입력 데이터로 활용하고 있으며, 많은 양의 입력 데이터를 활용할수록 각각의 사용자에게 적합한 콘텐츠를 제공할 가능성이 높아진다. 그 중 카테고리 특징의 경우 관계적인 특징들을 입체적으로 파악하고, 딥러닝 모델에 적합한 데이터로 만들기 위해 임베딩을 통해 처리된다.
그러나 임베딩은 두 가지 고유한 문제를 가진다. 첫째, 모델의 정확도를 높이기 위해 수백 기가 바이트(giga bytes) 이상의 임베딩 테이블(embedding table) 1 이 필요하며, 이로 인해 많은 양의 메모리 리소스를 요구한다. 둘째, 임베딩 테이블 룩업(embedding table lookup) 작업은 빈번하고 불규칙적인 메모리 접근으로 기존의 프리페치(prefetch) 기법이나 캐시(cache) 적용이 효과적이지 않다. 추천 시스템의 임베딩(embedding)은 이러한 특성으로 메모리 리소스 부족과 메모리 병목 현상을 일으키는 메모리 집약적인 작업이다. 추천 시스템의 임베딩으로 인한 문제를 해결하기 위해서는 기존 컴퓨팅 구조가 아닌 새로운 컴퓨팅 구조가 필요하다.
근거리 데이터 처리 기술로 알려진 PIM(Processing In Memory)는 데이터 이동량을 획기적으로 줄일 수 있는 가장 유망한 구조적 접근 방식이다. PIM은 일반적으로 HMC(Hybrid Memory Cube)[4] 및 HBM(High Bandwidth Memory)[5]와 같은 3D 적층 메모리의 로직 다이에 탑재되어 사용된다. 또한, PIM은 TSV(Through Silicon Via)를 통하여 메모리에 직접 액세스가 가능하므로, 긴 지연 시간과 메모리 대역폭으로 인한 병목 현상, 에너지 비효율성 등 기존 메모리 구조에서 발생하는 많은 문제를 해결할 것으로 예상된다. 그러나 3D 적층 메모리를 활용한 PIM을 추천 시스템에 적용하기 위해서는 해결해야 될 또 다른 문제가 있다. 3D 적층 메모리의 경우 기존 DIMM(Dual in Line Memory Module) 메모리와 달리 메모리 리소스가 매우 부족하고, 확장성이 떨어지는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는 추천 시스템의 임베딩 문제를 개선하여 추론 성능을 향상시키기 위해 새로운 하이브리드 니어 메모리 프로세싱 구조와 함께 두 가지 오프 로딩(offloading) 방식을 제안한다. 또한, 추론 속도, 에너지 및 전력 소비 등의 이점을 취하기 위해 PIM-HBM을 활용한 구조를 제안하고, PIM-HBM 구조를 효율적으로 사용하여 추론의 성능을 더욱 높이기 위한 데이터 오프로딩(data offloading) 방식과 태스크 오프로딩(task offloading) 방식을 제안한다.
일 측면에 있어서, 본 발명에서 제안하는 하이브리드 니어 메모리 프로세싱 시스템은 GPU, PIM-HBM, CPU 및 메인 메모리를 포함하고, 상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 상기 메인 메모리와 상기 HBM에 나누어 저장하고, 상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되며, 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되고, 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들은 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출한다.
본 발명의 실시예에 따르면, 메모리 대역폭을 증가시키고, 메모리 용량 부족 문제를 해결하기 위해 상기 임베딩 테이블의 접근 횟수에 따라 핫 임베딩 벡터는 상기 HBM에 저장하고, 콜드 임베딩 벡터는 메인 메모리에 저장하는 데이터 오프로딩(data offloading) 저장 방식을 이용한다.
본 발명의 실시예에 따르면, 상기 데이터 오프로딩(data offloading) 저장 방식을 이용하기 위해 컴포셔널 임베딩(compositional embeddings)을 통해 사전 학습(post training)을 수행하고, 상기 사전 학습은 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수를 설정하여 메인 메모리와 HBM에 저장될 임베딩 벡터의 데이터 수를 구분하는 과정 및 불필요한 해시 함수의 계산 과정을 줄이기 위해 원본 임베딩 테이블과 같은 형태로 메인 메모리에 저장될 임베딩 테이블을 통합하는 과정을 포함한다.
본 발명의 실시예에 따르면, 상기 PIM을 이용한 해시 계산을 통해 임베딩 룩업을 처리하는 태스크 오프로딩(task offloading) 방식을 수행하고, 상기 태스크 오프로딩은 입력 인덱스가 입력되면 상기 PIM에서 해시 계산을 통해 Q 테이블과 R 테이블 각각에 대한 인덱스를 구하고, 상기 인덱스를 이용하여 Q 테이블과 R 테이블 각각에서 임베딩 벡터를 불러오고, 상기 불러온 임베딩 벡터에 대한 임베딩 매니퓰레이션 과정을 거쳐 최종 임베딩 벡터를 생성한다.
본 발명의 실시예에 따르면, 상기 임베딩 매니퓰레이션은 임베딩 데이터셋에 따라 원 핫 임베딩(one hot embedding)의 경우 불러온 임베딩 벡터를 병합(concatenate)하여 처리하고, 다중 핫 임베딩(multi hot embedding)의 경우 벡터 간의 연산을 통해 최종 임베딩 벡터를 생성한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 GPU, PIM-HBM, CPU 및 메인 메모리를 포함하는 하이브리드 니어 메모리 프로세싱 시스템의 동작 방법은 상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습 단계, 상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되는 단계, 상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되는 단계 및 상기 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들이 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출한다.
본 발명의 실시예들에 따른 하이브리드 니어-메모리 프로세싱 방법 및 시스템을 통해 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있고, 추천 시스템의 임베딩 문제를 개선하여 추론 성능을 향상시킬 수 있다. 또한, PIM-HBM을 활용한 구조를 제안하고, PIM-HBM 구조를 효율적으로 사용하여 추론의 성능을 더욱 높이기 위한 데이터 오프로딩(data offloading) 방식과 태스크 오프로딩(task offloading) 방식을 제안하여 추론 속도, 에너지 및 전력 소비 등의 이점을 취할 수 있다.
도 1은 본 발명의 일 실시예에 따른 임베딩의 니어-메모리 프로세싱 시스템의 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 임베딩의 니어-메모리 프로세싱 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 임베딩 테이블의 특징을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 오프로딩의 예시를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 해시 충동에 대한 임베딩 벡터의 수를 나타내는 그래프이다.
도 6은 본 발명의 일 실시예에 따른 데이터셋의 데이터 분포를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 전처리 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 PIM-HBM 구조를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 HBM에 위치한 임베딩 테이블 룩업 작업을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 추천 시스템에서의 임베딩 과정을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 임베딩 매니퓰레이션을 설명하기 위한 도면이다.
최근 다양한 분야에서 인공지능 및 딥러닝 기술에 대한 관심이 높아지고 있다. 특히 개인화된 서비스를 선호하는 산업계의 추세에 맞춰 딥러닝 기반의 추천 시스템이 주목을 받고 있다. 추천 시스템은 카테고리 특징들을 밀집 표현(dense representation)으로 변환하여 관계적 특징들을 입체적으로 파악하고, 딥러닝 모델에 적합한 데이터로 만들기 위해 임베딩(embedding) 과정이 필수적이다. 또한, 추천 시스템에서의 임베딩은 모델의 정확도를 높이기 위해 임베딩 테이블(embedding table)의 크기가 매우 크므로 메모리 용량 부족 문제를 일으키고, 임베딩 테이블 룩업(embedding table lookup) 과정에서 빈번하고 불규칙한 메모리 접근이 발생하여 메모리 병목 현상을 일으키는 메모리 집약적인 과정이다.
본 발명에서는 이러한 문제를 해결하여 추론 성능을 높이기 위해 PIM-HBM 구조를 활용한 새로운 하이브리드 니어 메모리 프로세싱(hybrid near memory processing) 구조를 제안한다. 실험은 훈련 과정과 추론 과정 각각에 대해 수행되며, 정확도, 처리 속도 및 에너지 소비량을 측정한다. 평가 결과는 하이브리드 니어 메모리 프로세싱 구조가 추천 시스템의 추론 성능을 향상시키는데 효과적임을 보여준다.
본 발명에서는 추천 시스템의 임베딩 문제를 개선하여 추론 성능을 향상시키기 위해 새로운 하이브리드 니어 메모리 프로세싱 구조와 함께 두 가지 오프 로딩(offloading) 방식을 제안한다.
추론 속도, 에너지 및 전력 소비 등의 이점을 취하기 위해 PIM-HBM을 활용한 구조를 제안한다. 또한, PIM-HBM 구조를 효율적으로 사용하여 추론의 성능을 더욱 높이기 위한 데이터 오프로딩(data offloading) 방식과 태스크 오프로딩(task offloading) 방식을 제안한다. 데이터 오프로딩 방식을 이용한 학습 과정은 더블 해시 트릭(double hash trick)을 이용하여 이루어지고, HBM과 메인 메모리(main memory)에 임베딩 테이블을 나누어 저장하기 위한 포스트 트레이닝(post training) 과정을 거친다. 마지막으로 태스크 오프로딩 방식을 이용한 추론은 PIM에서 해시 연산과 임베딩 매니퓰레이션(embedding manipulation) 작업을 처리하여 보다 향상된 모델의 성능을 확인할 수 있다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 임베딩의 니어-메모리 프로세싱 시스템의 구성을 나타내는 도면이다.
추천 시스템의 가장 큰 문제는 임베딩으로 인한 메모리 병목 현상 및 리소스 부족 문제를 해결하는 것으로, 새로운 구조와 알고리즘 방식을 이용한 다양한 연구가 진행되고 있다. 그러나 새로운 구조와 알고리즘 역시 다양한 문제가 존재하고 있다. 구조적 접근 방법의 경우 대역폭을 위해 불필요한 DRAM 리소스가 낭비되거나 컴퓨팅 시스템을 고려하지 않은 구조를 갖추고 있다. 알고리즘 접근 방법은 임베딩 벡터의 양을 감소시키기 위한 과도한 압축으로 인해 정확도 저하가 불가피하다. 전체적으로 추천 시스템의 임베딩은 정확도 저하가 거의 없고, 확장 가능한 메모리 용량 및 넓은 대역폭을 제공하는 새로운 시스템을 요구한다.
본 발명의 실시예에 따르면, 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 하이브리드 임베딩의 니어-메모리 프로세싱 시스템을 제안한다.
본 발명에서는 두 가지의 서로 다른 메모리인 메인 메모리(예를 들어, DIMM)(140)와 HBM(130)을 모두 활용한 하이브리드 니어-메모리 프로세싱 시스템을 제안한다. 또한, PIM(120)-HBM(130) 구조를 효율적으로 사용하여 추론 성능을 더욱 높이기 위해 데이터 오프로딩(data offloading) 방식과 태스크 오프로딩(task offloading) 방식을 제안한다.
제안하는 임베딩의 하이브리드 니어-메모리 프로세싱 시스템은 GPU(110), PIM(120)-HBM(130), CPU(150) 및 메인 메모리(예를 들어, DIMM)(140)를 포함한다.
본 발명의 실시예에 따르면, GPU(110), PIM(120)-HBM(130)를 통해 넓은 대역폭으로 임베딩 벡터(embedding vector)를 불러온다. 이는 복잡한 컴퓨팅 시스템에 적합한 구조로 추천 시스템에 대한 빠른 추론이 가능하다. 또한, CPU(150)-메인 메모리(140) 구조를 함께 적용함으로써 거대한 임베딩 테이블에 대해 HBM의 부담을 덜어 메모리 용량 부족 문제를 해결할 수 있다.
제안하는 하이브리드 임베딩의 니어-메모리 프로세싱 시스템의 동작 방식은 우선 추천 시스템의 추론을 위해 훈련 과정에서 임베딩 테이블(embedding table)을 메인 메모리(150)와 HBM(130)에 나누어 저장한다. 이때 HBM(130)에 많은 임베딩 벡터가 위치할수록 추론 성능이 더욱 향상될 수 있다.
메인 메모리(150)와 HBM(130)에 임베딩 테이블이 나누어 위치해 있다면 추론 과정에서 임베딩 룩업(embedding lookup) 작업은 필요한 임베딩 벡터의 위치에 따라 메인 메모리(150) 또는 HBM(130)에서 각각 수행된다.
임베딩 룩업이 완료된 임베딩 벡터는 CPU(150)와 PIM(120)에서 추가적인 임베딩 매니퓰레이션(embedding manipulation)(예를 들어, sum, mean, max) 작업이 수행된다.
임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들은 PIM(120)에서 최종적으로 병합(concatenation)되어 임베딩 결과(embedding result)를 생성한다.
생성된 임베딩 결과는 GPU(110)로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출한다.
본 발명의 실시예에 따른 추론 과정에서 PIM(120)은 많은 임베딩 벡터 이동으로 인한 대역폭 문제와 에너지 문제를 해결하기 위해 다양한 작업이 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따른 임베딩의 니어-메모리 프로세싱 방법을 설명하기 위한 흐름도이다.
본 발명의 실시예에 따른 GPU, PIM-HBM, CPU 및 메인 메모리를 포함하는 하이브리드 니어 메모리 프로세싱 시스템의 동작 방법은 상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습 단계(210), 상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되는 단계(220), 상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되는 단계(230) 및 상기 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들이 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출하는 단계(240)를 포함한다.
단계(210)에서, 상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습을 수행한다.
이때, 메모리 대역폭을 증가시키고, 메모리 용량 부족 문제를 해결하기 위해 상기 임베딩 테이블의 접근 횟수에 따라 핫 임베딩 벡터는 상기 HBM에 저장하고, 콜드 임베딩 벡터는 메인 메모리에 저장하는 데이터 오프로딩(data offloading) 저장 방식을 이용한다.
본 발명의 실시예에 따르면, 상기 데이터 오프로딩(data offloading) 저장 방식을 이용하기 위해 컴포셔널 임베딩(compositional embeddings)을 통해 사전 학습(post training)을 수행한다. 상기 사전 학습은 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수를 설정하여 메인 메모리와 HBM에 저장될 임베딩 벡터의 데이터 수를 구분하는 과정 및 불필요한 해시 함수의 계산 과정을 줄이기 위해 원본 임베딩 테이블과 같은 형태로 메인 메모리에 저장될 임베딩 테이블을 통합하는 과정을 포함한다.
단계(220)에서, 상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행된다.
단계(230)에서, 상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행된다.
이때, 상기 PIM을 이용한 해시 계산을 통해 임베딩 룩업을 처리하는 태스크 오프로딩(task offloading) 방식을 수행된다.
본 발명의 실시예에 따른 태스크 오프로딩은 입력 인덱스가 입력되면 상기 PIM에서 해시 계산을 통해 Q 테이블과 R 테이블 각각에 대한 인덱스를 구하고, 상기 인덱스를 이용하여 Q 테이블과 R 테이블 각각에서 임베딩 벡터를 불러오고, 상기 불러온 임베딩 벡터에 대한 임베딩 매니퓰레이션 과정을 거쳐 최종 임베딩 벡터를 생성한다.
본 발명의 실시예에 따른 임베딩 매니퓰레이션은 임베딩 데이터셋에 따라 원 핫 임베딩(one hot embedding)의 경우 불러온 임베딩 벡터를 병합(concatenate)하여 처리하고, 다중 핫 임베딩(multi hot embedding)의 경우 벡터 간의 연산을 통해 최종 임베딩 벡터를 생성한다.
단계(240)에서, 상기 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들이 상기 PIM 에서 최종적으로 병합되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP 과정을 통해 최종 추론 결과를 도출한다.
도 3은 본 발명의 일 실시예에 따른 임베딩 테이블의 특징을 나타내는 도면이다.
제안하는 하이브리드 임베딩의 니어-메모리 프로세싱 구조에서 HBM은 온-칩(on-chip) 컴퓨팅 장치로 가능한 최대의 대역폭을 제공한다. 그러나 HBM은 일반적으로 사용되는 DDR 메모리와 비교했을 때 용량이 작고, 온-칩 형태의 구조로 메모리 확장에 대한 용이성이 떨어져 수십 기가 바이트(giga bytes)의 저장 공간만 사용할 수 있다. 따라서 HBM 은 임베딩에서 발생할 수 있는 메모리 병목 현상을 해결하기 위해 가장 효과 적이지만, 수백 기가 바이트의 임베딩 테이블을 모두 저장하기에는 무리가 있다. 이러한 문제를 해결하기 위해서는 추가적인 메모리 확장이 필요하다. 본 발명에서는 메인 메모리(예를 들어, DIMM)를 같이 사용하는 구조를 제안한다.
도 3과 같이, 임베딩 테이블의 경우 접근 횟수에 따라 접근이 빈번하게 이루어지는 핫 임베딩 벡터(hot embedding vector)(310)와 상대적으로 접근 적은 콜드 임베딩 벡터(cold embedding vector)(320)로 이루어져 있다. 또한, 핫 임베딩 벡터(310)는 콜드 임베딩 벡터(320)에 비해 극히 일부분이지만 추론 과정에서 대부분의 접근이 발생한다. 예를 들어, Criteo Kaggle 데이터셋[23]의 경우 상위 0.0003%의 임베딩 벡터에서 나머지 3200만 개만큼의 접근이 발생한다[16].
도 4는 본 발명의 일 실시예에 따른 데이터 오프로딩의 예시를 나타내는 도면이다.
도 4과 같이, 데이터 특성에 따라 핫 임베딩 벡터는 HBM(420)에 저장함으로써 넓은 메모리 대역폭을 활용하고, 콜드 임베딩 벡터는 메인 메모리(410)에 위치 시킴으로써 메모리 용량 부족 문제를 해결할 수 있다. 본 발명에서는 이러한 저장 방식을 데이터 오프로딩(data offloading)이라고 정의한다.
도 5는 본 발명의 일 실시예에 따른 해시 충동에 대한 임베딩 벡터의 수를 나타내는 그래프이다.
본 발명의 실시예에 따른 추론 과정에서 메인 메모리와 HBM에 각각 저장된 임베딩 테이블을 사용하기 위해서는 훈련 과정에서 데이터 오프로딩 방식이 사전 학습(post training)되어야 한다. 따라서 훈련을 통해 임베딩 테이블을 학습하고, 훈련을 마치기 전에 임베딩 테이블을 나누어 저장하는 사전 학습(post training) 과정이 필요하다. 이때, 훈련은 대역폭이 넓은 HBM에 보다 많은 데이터를 저장하기 위한 목적으로 컴포셔널 임베딩(compositional embeddings)[22] 방법을 사용하여 학습한다. 컴포셔널 임베딩 방식을 이용할 경우 더블 해시(double hash)를 사용하여 임베딩 테이블의 크기를 효과적으로 감소시킬 수 있으므로 HBM에 많은 양의 임베딩 테이블을 저장함으로써 HBM의 효과가 더욱 극대화 된다. 여기서 주의해야 할 점은 컴포셔널 임베딩 방식은 사용자가 지정한 해시 충돌(hash collision)에 따라 메모리 효율성과 모델의 정확도가 결정된다.
컴포셔널 임베딩을 사용할 경우, 도 5와 같이 해시 충돌에 따라 임베딩 벡터의 데이터 수가 결정된다. 예를 들어, 만약 변곡점에 해당하는 해시 충돌을 선택하게 될 경우 임베딩 벡터의 데이터 수를 최대로 줄일 수 있어 많은 양의 임베딩 벡터를 HBM에 저장 할 수 있다. 그러나 과도하게 임베딩 벡터의 데이터 수를 줄이게 된다면 모든 원본 임베딩 벡터에 대한 고유한 표현을 할 수 없으므로 정확도 저하가 발생한다. 따라서 사용자의 환경에 따라 적절한 해시 충돌 값을 선택하는 것이 중요하다.
본 발명의 실시예에 따른 사전 학습 작업은 컴포셔널 임베딩 방법으로 임베딩 테이블의 훈련이 완료되면 이루어진다. 사전 학습은 크게 두 가지 과정으로 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수(top-k)를 설정하여 메인 메모리와 HBM에 저장될 임베딩 벡터의 데이터 수를 구분하는 작업과 메인 메모리에 저장될 임베딩 테이블을 통합하는 과정으로 나누어진다.
도 6은 본 발명의 일 실시예에 따른 데이터셋의 데이터 분포를 나타내는 도면이다.
도 6은 Criteo Ad Kaggle 데이터셋[23]을 사용하여 추론하였을 때 일부 임베딩 테이블의 결과이다. 전체 임베딩 룩업 횟수를 기준으로 정규화된 접근 횟수를 나타내고, 임베딩 룩업 횟수를 기준으로 내림차순으로 정렬하였다. 도 6을 통해 임베딩 벡터는 상위 일부 데이터들 에 대해 접근이 많이 일어난다는 것을 알 수 있다.
본 발명의 실시예에 따른 사전 학습의 첫 번째 과정은 이러한 추천 시스템의 데이터 특성을 이용한 것으로 도 6에서와 같이 사용자가 HBM의 저장 공간을 고려하여 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수(top-k)를 설정한다.
도 7은 본 발명의 일 실시예에 따른 전처리 과정을 설명하기 위한 도면이다.
해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수(top-k)가 결정되고 나면 도 7과 같이 HBM(710)과 메인 메모리(예를 들어, DIMM)(720)에 임베딩 테이블을 나누어 저장한다. 이때 메인 메모리(720)에 저장되는 임베딩 테이블은 컴포셔널 임베딩 결과로부터 나온 Q table과 R table이 아닌 원본 임베딩 테이블과 같은 형태로 다시 통합해주는 사전 학습의 두 번째 과정이 필요하다. 사전 학습의 두 번째 과정이 필요한 이유는 불필요한 해시 함수의 계산 과정을 줄이기 위함이다. 추론 과정에서 Q table과 R table을 사용하기 위해서는 해시 함수를 통해 임베딩 벡터의 인덱스를 구해야 한다. 따라서 HBM의 경우 로직 다이(logic die)에 위치한 PIM을 통해 해시 함수 계산이 유용하지만 메인 메모리의 경우 메모리 확장이 용이하므로 통합 테이블을 저장함으로써 불필요한 해시 함수 계산을 줄일 수 있다.
도 8은 본 발명의 일 실시예에 따른 PIM-HBM 구조를 설명하기 위한 도면이다.
본 발명의 실시예에 따른 추천 시스템의 훈련 과정에서 사전 학습 과정까지 완료되면 하이브리드 니어 메모리 프로세싱 구조에서 효율적인 추론이 가능하게 된다.
본 발명에서는 추론 과정에서 많은 임베딩 벡터의 이동으로 인한 대역폭, 에너지 문제를 효과적으로 해결하기 위해 PIM을 활용한 태스크 오프로딩(task offloading) 방식을 제안한다.
하이브리드 니어 메모리 프로세싱 구조의 경우 HBM의 로직 다이(logic die)에 도 8과 같이 연산 작업에 필요한 PIM이 위치해있다. 도 8(a)는 PIM-HBM 구조를 나타내고, 도 8(b)는 PIM 경로를 나타낸다.
PIM의 경우 플로팅 포인트(floating point)를 연산 할 수 있는 유닛(unit)을 통해 해시 계산을 충분히 수행할 수 있으며, 해시 계산에 PIM을 활용한 다양한 연구도 진행되고 있다[12, 24]. 따라서 본 발명에서는 PIM을 이용한 해시 계산을 통해 임베딩 룩업을 처리하는 태스크 오프로딩(task offloading) 방식을 이용한다.
도 9는 본 발명의 일 실시예에 따른 HBM에 위치한 임베딩 테이블 룩업 작업을 설명하기 위한 도면이다.
하이브리드 니어 메모리 프로세싱 구조에서 많은 양의 임베딩 벡터가 HBM에 위치할 수록 추천 시스템의 추론 성능은 더욱 높아진다. 본 발명에서는 이를 위해 컴포셔널 임베딩 방법을 이용하여 임베딩 테이블을 Q table과 R table 형태로 나누어 HBM에 저장한다. 따라서 추론 과정에서 HBM 에 위치한 임베딩 테이블을 통해 원하는 결과를 얻기 위해서는 도 9와 같이 해시 계산을 통해 Q table과 R table에 대한 인덱스(index)를 각각 구해야 한다.
본 발명의 실시예에 따른 PIM을 이용한 임베딩 룩업 과정은 도 9와 같다. 첫 번째로 입력 인덱스(input index)(910)가 입력되면 PIM에서 해시 계산(920)을 통해 Q table과 R table에 대한 인덱스(index)(930)를 구한다. 두 번째로 앞에서 구한 인덱스(930)를 이용하여 각 임베딩 테이블에서 임베딩 벡터(940)를 불러온다. 마지막으로 불러온 임베딩 벡터(940)는 임베딩 매니퓰레이션(950) 과정을 거쳐 최종 임베딩 벡터(960)를 구한다. 이때, 임베딩 매니퓰레이션(950) 과정은 PIM에서 이루어진다.
도 10은 본 발명의 일 실시예에 따른 추천 시스템에서의 임베딩 과정을 설명하기 위한 도면이다.
추천 시스템의 임베딩 과정은 도 10과 같이 임베딩 룩업을 통해 임베딩 벡터를 읽어온 후 임베딩 매니퓰레이션 과정을 거쳐 최종 임베딩 벡터를 구한다.
입력 데이터인 카테고리 특징(categorical features)이 입력되면 이에 해당하는 정보를 임베딩 테이블에서 찾아 값을 가져 오는 임베딩 룩업 작업과 읽어온 임베딩 벡터를 모델에 맞는 데이터로 바꿔주는 임베딩 매니퓰레이션 작업으로 나눠진다. 이때 임베딩 테이블의 크기가 커질수록 더욱 많은 카테고리 특징을 고유한 임베딩 벡터에 매핑할 수 있다. 따라서 추천 시스템에서 임베딩은 모델의 정확도를 높이기 위해 수백 기가 바이트(GB) 정도의 임베딩 테이블이 필요하며 이로 인해 메모리 리소스 부족 문제를 일으킨다. 또한 임베딩 과정에서 임베딩 테이블 룩업 작업은 불규칙한 메모리 접근을 발생시키며 메모리 병목 현상을 일으킨다.
도 11은 본 발명의 일 실시예에 따른 임베딩 매니퓰레이션을 설명하기 위한 도면이다.
본 발명의 실시예에 따른 임베딩 매니퓰레이션 과정은 도 11과 같이 연산 과정을 거쳐 딥러닝에 적합한 임베딩 벡터로 변형시켜주어야 하며, 임베딩 데이터셋에 따라 다른 연산 과정을 거친다. 원 핫 임베딩 데이터셋(One hot embedding datasets)은 임베딩 테이블로부터 읽어올 임베딩 벡터의 i번째 위치가 1이고, 다른 위치는 0으로 표현하여 가중치를 나타낸 것을 말한다. 다중 핫 임베딩 데이터셋(Multi hot embedding datasets)의 경우 읽어올 i번째 위치가 여러 개인 경우로 다수 항목의 가중치 조합으로 나타낼 수 있다. 따라서 도 11과 같이 원 핫 임베딩(one hot embedding)(도 11(a))의 경우 읽어들인 임베딩 벡터를 병합(concatenate)하여 처리하고, 다중 핫 임베딩(multi hot embedding)(도 11(b))은 벡터 간의 sum, mean, max 연산을 통해 최종 임베딩 벡터를 만들어낸다. 이때 하이브리드 니어 메모리 프로세싱 구조의 경우 임베딩 매니퓰레이션이 PIM 에서 처리 되는데, 다중 핫 데이터셋(multi hot datasets)의 경우 다수의 임베딩 벡터를 하나의 임베딩 벡터로 표현할 수 있으므로 호스트 프로세서(host processor)로 이동하는 데이터 이동량을 효과적으로 줄일 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
<참고문헌>
[1] C. A. Gomez-Uribe and N. Hunt, "The netflix recommender system: Algorithms, business value, and innovation," ACM Transactions on Management Information Systems (TMIS), vol. 6, no. 4, pp. 1-19, 2015.
[2] M. Naumov, D. Mudigere, H.-J. M. Shi, J. Huang, N. Sundaraman, J. Park, X. Wang, U. Gupta, C.-J. Wu, A. G. Azzolini et al., "Deep learning recommendation model for personalization and recommendation systems," arXiv preprint arXiv:1906.00091, 2019.
[3] H.-T. Cheng, L. Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson, G. Corrado, W. Chai, M. Ispir et al., "Wide & deep learning for recommender systems," in Proceedings of the 1st workshop on deep learning for recommender systems, 2016, pp. 7-10.
[4] J. T. Pawlowski, "Hybrid memory cube (hmc)," in 2011 IEEE Hot chips 23 symposium (HCS). IEEE, 2011, pp. 1-24.
[5] J. Kim and Y. Kim, "Hbm: Memory solution for bandwidth-hungry processors," in 2014 IEEE Hot Chips 26 Symposium (HCS). IEEE, 2014, pp. 1-24.
[6] P. Covington, J. Adams, and E. Sargin, "Deep neural networks for youtube recommendations," in Proceedings of the 10th ACM conference on recommender systems, 2016, pp. 191-198.
[7] K. Sohn, W.-J. Yun, R. Oh, C.-S. Oh, S.-Y. Seo, M.-S. Park, D.-H. Shin, W.-C. Jung, S.-H. Shin, J.-M. Ryu, H.-S. Yu, J.-H. Jung, K.-W. Nam, S.-K. Choi, J.-W. Lee, U. Kang, Y.-S. Sohn, J.-H. Choi, C.-W. Kim, S.-J. Jang, and G.-Y. Jin, "18.2 a 1.2v 20nm 307gb/s hbm dram with at-speed wafer-level i/o test scheme and adaptive refresh considering temperature distribution," in 2016 IEEE International Solid-State Circuits Conference (ISSCC), 2016, pp. 316-317.
[8] Samsung, "HBM2E. https://semiconductor.samsung.com/kr/dram/hbm/hbm2eflashbolt/."
[9] A. Dakkak, C. Li, J. Xiong, I. Gelado, and W.-m. Hwu, "Accelerating reduction and scan using tensor core units," in Proceedings of the ACM International Conference on Supercomputing, 2019, pp. 46-57.
[10] Z. Jia, M. Maggioni, B. Staiger, and D. P. Scarpazza, "Dissecting the nvidia volta gpu architecture via microbenchmarking," arXiv preprint arXiv:1804.06826, 2018.
[11] S. Ghose, K. Hsieh, A. Boroumand, R. Ausavarungnirun, and O. Mutlu, "The processing-in-memory paradigm: Mechanisms to enable adoption," in Beyond-CMOS Technologies for Next Generation Computer Design. Springer, 2019, pp. 133-194.
[12] S. Lee, S.-h. Kang, J. Lee, H. Kim, E. Lee, S. Seo, H. Yoon, S. Lee, K. Lim, H. Shin et al., "Hardware architecture and software stack for pim based on commercial dram technology: Industrial product," in 2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2021, pp. 43-56.
[13] S. Kim, S. Kim, K. Cho, T. Shin, H. Park, D. Lho, S. Park, K. Son, G. Park, and J. Kim, "Processing-in-memory in high bandwidth memory (pim-hbm) architecture with energy-efficient and low latency channels for high bandwidth system," in 2019 IEEE 28th Conference on Electrical Performance of Electronic Packaging and Systems (EPEPS), 2019, pp. 1-3.
[14] Y. Kwon, Y. Lee, and M. Rhu, "Tensordimm: A practical near-memory processing architecture for embeddings and tensor operations in deep learning," in Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture, 2019, pp. 740-753.
[15] L. Ke, U. Gupta, B. Y. Cho, D. Brooks, V. Chandra, U. Diril, A. Firoozshahian, K. Hazelwood, B. Jia, H.-H. S. Lee et al., "Recnmp: Accelerating personalized recommendation with near-memory processing," in 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2020, pp. 790-803.
[16] A. Ginart, M. Naumov, D. Mudigere, J. Yang, and J. Zou, "Mixed dimension embeddings with application to memory-efficient recommendation systems," CoRR, vol. abs/1909.11810, 2019. [Online]. Available: https://arxiv.org/abs/1909.11810
[17] X. Wu, H. Xu, H. Zhang, H. Chen, and J. Wang, "Saec: similarity-aware embedding compression in recommendation systems," in Proceedings of the 11th ACM SIGOPS Asia-Pacific Workshop on Systems, 2020, pp. 82-89.
[18] W.-C. Kang, D. Z. Cheng, T. Chen, X. Yi, D. Lin, L. Hong, and E. H. Chi, "Learning multi-granular quantized embeddings for large-vocab categorical features in recommender systems," in Companion Proceedings of the Web Conference 2020, 2020, pp. 562-566.
[19] C. Zhang, Y. Liu, Y. Xie, S. I. Ktena, A. Tejani, A. Gupta, P. K. Myana, D. Dilipkumar, S. Paul, I. Ihara et al., "Model size reduction using frequency based double hashing for recommender systems," in Fourteenth ACM Conference on Recommender Systems, 2020, pp. 521-526.
[20] M. Girault, R. Cohen et al., "A generalized birthday attack," in Workshop on the Theory and Application of of Cryptographic Techniques. Springer, 1988, pp. 129-156.
[21] K. Suzuki, D. Tonien, K. Kurosawa, and K. Toyota, "Birthday paradox for multi-collisions," in International Conference on Information Security and Cryptology. Springer, 2006, pp. 29-40.
[22] H.-J. M. Shi, D. Mudigere, M. Naumov, and J. Yang, "Compositional embeddings using complementary partitions for memory-efficient recommendation systems," in Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, 2020, pp. 165-175.
[23] Criteo Ad Kaggle Datasets, "https://www.kaggle.com/c/criteo display ad challenge."
[24] J. Choi, H.-J. Lee, and C. E. Rhee, "Adc-pim: Accelerating convolution on the gpu via in-memory approximate data comparison," IEEE Journal on Emerging and Selected Topics in Circuits and Systems, vol. 12, no. 2, pp. 458-471, 2022.

Claims (10)

  1. 하이브리드 니어 메모리 프로세싱 시스템에 있어서,
    GPU, PIM-HBM, CPU 및 메인 메모리를 포함하고,
    상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고,
    추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 상기 메인 메모리와 상기 HBM에 나누어 저장하고,
    상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되며,
    임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되고,
    임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들은 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고,
    상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출하며,
    메모리 대역폭을 증가시키고, 메모리 용량 부족 문제를 해결하기 위해 상기 임베딩 테이블의 접근 횟수에 따라 핫 임베딩 벡터는 상기 HBM에 저장하고, 콜드 임베딩 벡터는 메인 메모리에 저장하는 데이터 오프로딩(data offloading) 저장 방식을 이용하는
    하이브리드 니어 메모리 프로세싱 시스템.
  2. 제1항에 있어서,
    상기 데이터 오프로딩(data offloading) 저장 방식을 이용하기 위해 컴포셔널 임베딩(compositional embeddings)을 통해 사전 학습(post training)을 수행하고,
    상기 사전 학습은 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수를 설정하여 메인 메모리와 HBM에 저장될 임베딩 벡터의 데이터 수를 구분하는 과정 및 불필요한 해시 함수의 계산 과정을 줄이기 위해 원본 임베딩 테이블과 같은 형태로 메인 메모리에 저장될 임베딩 테이블을 통합하는 과정을 포함하는
    하이브리드 니어 메모리 프로세싱 시스템.
  3. 하이브리드 니어 메모리 프로세싱 시스템에 있어서,
    GPU, PIM-HBM, CPU 및 메인 메모리를 포함하고,
    상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고,
    추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 상기 메인 메모리와 상기 HBM에 나누어 저장하고,
    상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되며,
    임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되고,
    임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들은 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고,
    상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출하며, 상기 PIM을 이용한 해시 계산을 통해 임베딩 룩업을 처리하는 태스크 오프로딩(task offloading) 방식을 수행하고,
    상기 태스크 오프로딩은 입력 인덱스가 입력되면 상기 PIM에서 해시 계산을 통해 Q 테이블과 R 테이블 각각에 대한 인덱스를 구하고, 상기 인덱스를 이용하여 Q 테이블과 R 테이블 각각에서 임베딩 벡터를 불러오고, 상기 불러온 임베딩 벡터에 대한 임베딩 매니퓰레이션 과정을 거쳐 최종 임베딩 벡터를 생성하는
    하이브리드 니어 메모리 프로세싱 시스템.
  4. 제3항에 있어서,
    상기 임베딩 매니퓰레이션은 임베딩 데이터셋에 따라 원 핫 임베딩(one hot embedding)의 경우 불러온 임베딩 벡터를 병합(concatenate)하여 처리하고, 다중 핫 임베딩(multi hot embedding)의 경우 벡터 간의 연산을 통해 최종 임베딩 벡터를 생성하는
    하이브리드 니어 메모리 프로세싱 시스템.
  5. GPU, PIM-HBM, CPU 및 메인 메모리를 포함하는 하이브리드 니어 메모리 프로세싱 시스템의 동작 방법에 있어서,
    상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습 단계;
    상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되는 단계;
    상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되는 단계; 및
    상기 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들이 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출하는 단계
    를 포함하고,
    상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습 단계는,
    메모리 대역폭을 증가시키고, 메모리 용량 부족 문제를 해결하기 위해 상기 임베딩 테이블의 접근 횟수에 따라 핫 임베딩 벡터는 상기 HBM에 저장하고, 콜드 임베딩 벡터는 메인 메모리에 저장하는 데이터 오프로딩(data offloading) 저장 방식을 이용하는
    하이브리드 니어 메모리 프로세싱 방법.
  6. 제5항에 있어서,
    상기 데이터 오프로딩(data offloading) 저장 방식을 이용하기 위해 컴포셔널 임베딩(compositional embeddings)을 통해 사전 학습(post training)을 수행하고,
    상기 사전 학습은 해시 충돌에 따른 최적의 임베딩 벡터의 데이터 수를 설정하여 메인 메모리와 HBM에 저장될 임베딩 벡터의 데이터 수를 구분하는 과정 및 불필요한 해시 함수의 계산 과정을 줄이기 위해 원본 임베딩 테이블과 같은 형태로 메인 메모리에 저장될 임베딩 테이블을 통합하는 과정을 포함하는
    하이브리드 니어 메모리 프로세싱 방법.
  7. GPU, PIM-HBM, CPU 및 메인 메모리를 포함하는 하이브리드 니어 메모리 프로세싱 시스템의 동작 방법에 있어서,
    상기 GPU, PIM-HBM 를 통해 임베딩 벡터를 불러오고, 추천 시스템의 추론을 위한 훈련 과정에서 임베딩 테이블을 데이터 특성에 따라 상기 메인 메모리와 상기 HBM에 나누어 저장하는 사전 학습 단계;
    상기 추천 시스템의 추론 과정에서 필요한 임베딩 벡터의 위치에 따라 상기 메인 메모리 또는 상기 HBM에서 임베딩 룩업 작업이 각각 수행되는 단계;
    상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되는 단계; 및
    상기 임베딩 매니퓰레이션을 통해 처리된 임베딩 벡터들이 상기 PIM 에서 최종적으로 병합(concatenation)되어 임베딩 결과를 생성하고, 상기 임베딩 결과는 상기 GPU로 전달되어 상위 MLP(top Multilayer Perceptron) 과정을 통해 최종 추론 결과를 도출하는 단계
    를 포함하고,
    상기 임베딩 룩업 작업이 완료된 임베딩 벡터에 대하여 상기 CPU와 상기 PIM에서 추가적인 임베딩 매니퓰레이션(embedding manipulation) 작업이 수행되는 단계는,
    상기 PIM을 이용한 해시 계산을 통해 임베딩 룩업을 처리하는 태스크 오프로딩(task offloading) 방식을 수행하고,
    상기 태스크 오프로딩은 입력 인덱스가 입력되면 상기 PIM에서 해시 계산을 통해 Q 테이블과 R 테이블 각각에 대한 인덱스를 구하고, 상기 인덱스를 이용하여 Q 테이블과 R 테이블 각각에서 임베딩 벡터를 불러오고, 상기 불러온 임베딩 벡터에 대한 임베딩 매니퓰레이션 과정을 거쳐 최종 임베딩 벡터를 생성하는
    하이브리드 니어 메모리 프로세싱 방법.
  8. 제7항에 있어서,
    상기 임베딩 매니퓰레이션은 임베딩 데이터셋에 따라 원 핫 임베딩(one hot embedding)의 경우 불러온 임베딩 벡터를 병합(concatenate)하여 처리하고, 다중 핫 임베딩(multi hot embedding)의 경우 벡터 간의 연산을 통해 최종 임베딩 벡터를 생성하는
    하이브리드 니어 메모리 프로세싱 방법.
  9. 삭제
  10. 삭제
KR1020220085533A 2022-07-12 2022-07-12 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템 KR102515159B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220085533A KR102515159B1 (ko) 2022-07-12 2022-07-12 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템
US18/308,567 US11755898B1 (en) 2022-07-12 2023-04-27 Near-memory processing of embeddings method and system for reducing memory size and energy in deep learning-based recommendation systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220085533A KR102515159B1 (ko) 2022-07-12 2022-07-12 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102515159B1 true KR102515159B1 (ko) 2023-03-29

Family

ID=85799956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220085533A KR102515159B1 (ko) 2022-07-12 2022-07-12 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템

Country Status (2)

Country Link
US (1) US11755898B1 (ko)
KR (1) KR102515159B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242416A1 (en) * 2005-04-21 2006-10-26 Xerox Corporation Systems and methods for embedding messages in look-up tables
EP1913531B1 (en) * 2005-08-04 2019-02-20 Intel Corporation Methods, systems and computer program products for compression of associative memories
EP3800590A1 (en) * 2019-10-02 2021-04-07 Google LLC Accelerated embedding layer computations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242416A1 (en) * 2005-04-21 2006-10-26 Xerox Corporation Systems and methods for embedding messages in look-up tables
EP1913531B1 (en) * 2005-08-04 2019-02-20 Intel Corporation Methods, systems and computer program products for compression of associative memories
EP3800590A1 (en) * 2019-10-02 2021-04-07 Google LLC Accelerated embedding layer computations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KWON.Y. et al"TensorDIMM: A Practical Near-Memory Processing Architecture for Embeddings and Tensor Operations in Deep Learning", arXiv:1908.03072v2, (2019.08.25)* *

Also Published As

Publication number Publication date
US11755898B1 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
Kal et al. Space: locality-aware processing in heterogeneous memory for personalized recommendations
EP4020209A1 (en) Hardware offload circuitry
US20210027148A1 (en) Compression of neural network activation data
Sun et al. Rm-ssd: In-storage computing for large-scale recommendation inference
Soltaniyeh et al. An accelerator for sparse convolutional neural networks leveraging systolic general matrix-matrix multiplication
Liu et al. ReGNN: a ReRAM-based heterogeneous architecture for general graph neural networks
Chen et al. fgSpMSpV: A fine-grained parallel SpMSpV framework on HPC platforms
Balasubramanian et al. cDLRM: Look ahead caching for scalable training of recommendation models
US8719270B2 (en) Utilizing metadata generated during XML creation to enable parallel XML processing
Lee et al. Anna: Specialized architecture for approximate nearest neighbor search
CN115878824B (zh) 图像检索系统、方法和装置
KR102515159B1 (ko) 딥러닝 기반 추천 시스템에서 메모리 크기와 에너지를 줄일 수 있는 임베딩의 니어-메모리 프로세싱 방법 및 시스템
Hajewski et al. Distributed SmSVM ensemble learning
Wang et al. Revealing top-k dominant individuals in incomplete data based on spark environment
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
Jun et al. In-storage embedded accelerator for sparse pattern processing
Lv et al. A Survey of Graph Pre-processing Methods: From Algorithmic to Hardware Perspectives
Zhao et al. Divide‐and‐conquer approach for solving singular value decomposition based on MapReduce
Ming et al. Scalable k-means for large-scale clustering
Gadiyar et al. Artificial Intelligence Software and Hardware Platforms
Pioli et al. Characterization research on I/O improvements targeting DISC and HPC applications
Yang et al. Fast nearest neighbor search based on approximate k-NN graph
Chiluka et al. The out-of-core KNN awakens: The light side of computation force on large datasets
Moon et al. Multipurpose Deep-Learning Accelerator for Arbitrary Quantization With Reduction of Storage, Logic, and Latency Waste
Shi et al. A dnn inference acceleration algorithm in heterogeneous edge computing: Joint task allocation and model partition

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant