티스토리 뷰

반응형

PIM의 개념에 대해 설명한 이전글(Processing in memory(PIM)이란? (1) -  개념 및 정의)에 이어 PIM의 사용 방법을 개념적으로 제시한 Google 및 Facebook의 논문과 HBM을 활용해 PIM을 구현한 삼성의 사례를 통해 기업들은 PIM을 어떻게 실제로 구현하고 활용하려 하는지 알아보겠습니다.

 

Google - Consumer 기기의 에너지 사용 절감

Google은 2018년 발표한 논문[1]에서 스마트폰, 크롬북 등 컨슈머 기기에 PIM을 도입함으로써 메모리와 프로세서 사이의 데이터 이동을 줄이고 이를 통해 에너지 사용 및 Power를 절감함으로써 베터리 사용 기간 증가와 Thermal throtlling 감소를 이룰 수 있는 방법을 제시했습니다. Google이 말한 PIM 적용이 가능한 Workload로는 Web browser, AI inference (TensorFlow), Video playback 및 Capture 등이 있습니다. gem5 simulator를 통해 확인한 결과, PIM을 적용하면 위 Workload에서 평균적으로 데이터 이동이 55.4% 줄어들고 Processing 시간이 54.2% 절감된다고 나와 있습니다.

 

구체적으로 PIM이 어떻게 Processor(CPU)의 Processing 부담을 나눠 갖고 Energy 절감 및 Processing 시간 단축을 이루는지 Deep Learning Inference 사례로 알아보죠. 아래 그림은 PIM이 적용되기 전과 후의 Processing 차이를 나타냅니다. Deep learning inference는 높은 Precision을 요구하지 않아서 32 or 16bit의 숫자를 8bit으로 압축하는 Quantization을 진행한 후 연산(Multiplication)을 수행합니다. Quantization의 경우, 단순 곱하기 및 더하기 등의 연산이면 되므로 이를 PIM으로 구현하면 그만큼의 에너지와 프로세싱 시간이 단축된다는 것이지요.

Google이 제안한 영상인식 DL 추론에서의 PIM 역할 분담 (source: [1])

 

하지만 Google이 발표한 Concept에는 한계가 존재합니다. Google은 HBM의 Logic die에 연산 장치를 구현한 Near-memory processing을 생각하고 있습니다. Google이 말한 Consumer 기기는 스마트폰, 크롬북 등 Cost sensitive한 응용인데 HBM과 같은 고성능, 고가 메모리를 탑재하기 힘들죠. 대부분 Board나 SoC 위에 Memory component를 직접 부착하는 형태인데, component 형태의 memory는 Near-memory processing 회로를 구현할 공간이 없어 실제 적용하기가 힘듭니다. 따라서 Google의 논문은 다양한 응용에서 PIM 적용시 기대할 수 있는 효과가 크고 정량화 했다는 데에 의의가 있습니다.

 

Facebook - 추천 DL model inference에의 적용

Facebook은 논문[2]에서 보다 구체적인 PIM 적용 방법을 제시하고 있습니다. 이를 이해하기 위해서는 Facebook Deep learnnig 서비스의 특징을 알아야 합니다. Facebook의 Inference 중 70~80%는 추천(Recommendation) 알고리즘이 담당합니다. 크게 Deep learning 응용을 영상, 음성/언어, 추천으로 나눌 수 있는데 News feed 등 추천이 Facebook의 주요 수익원과 관련되어 있기 때문에 추천이 상대적으로 중요할 수 밖에 없죠.

 

Facebook은 DIMM에 Embedding table 관련 단순 연산(Summation) 기능 추가를 제안하고 있는데 이를 이해하기 위해서는 Deep learning 기반 추천에 대한 약간의 지식이 필요합니다. 이와 관련해서는 이전 글(Embedding table이란?)을 참고해주세요. Embedding table에서 불러온 여러 Vector는 합하거나 평균을 내어 Deep learning 연산의 Input으로 들어가게 됩니다. 예를 들어 한 사람이 본 영화라는 Variable이 있다면 그 사람이 봤던 '어벤저스', '베트맨' 등의 Embedding table을 가져와서(Look-up) 각 Vector를 합하는 것이지요.

 

Facebook의 Idea는 각 Vector를 DRAM에서 CPU 혹은 GPU로 가져와서 합하는 대신 DRAM 내에서 합한 다음 그 결과만 가져오면 더 효율적이라는 것입니다. 만약 DRAM에서 연산 후 결과 값만 보낸다고 한다면 DRAM과 프로세서 사이의 데이터 전송량이 줄어들어 DRAM과의 연결 부분에서의 Bottleneck도 해결되고 데이터 전송에 필요한 에너지 소모도 줄일 수 있습니다. 또한 CPU/GPU의 연산 부담을 줄여줘 Bottleneck 완화로 인한 전체적인 처리 속도 향상도 기대할 수 있지요. 아래 그림을 보면 왼쪽 아래 'Data-level parallelism'은 각 Embedding table에서 해당 값을 가져와 더하는 과정인데 이 부분을 DIMM에서 PIM으로 구현하여 시스템 성능을 높이고자 합니다.

Facebook의 PIM 제안(왼쪽 아래 회색 영역) (source: [2])

 

새로운 Architecture의 적용과 최적화를 위해서 하드웨어 및 소프트웨어 수준에서의 적절한 변경이 있어야 하겠지만 위의 PIM 개념을 적용한다면 시뮬레이션 결과상으로 Memory latency는 9.8배 개선되며 4.2배의 Throughput (단위 시간당 처리할 수 있는 System 성능) 향상 및 45.8%의 메모리 에너지 절감이 가능하다고 밝히고 있습니다. 물론 대부분 논문상의 결과는 이상적인 Setting을 바탕으로 하여 실제와 어느 정도 차이가 있지만 그러한 점을 감안하더라도 Facebook의 PIM은 추천 DL inference 응용에서 매우 매력적인 대안입니다.

 

삼성 - PIM 적용한 HBM 발표

삼성은 2021년 ISSCC 학회에서 PIM을 적용한 HBM을 발표했습니다. 아직 ISSCC에 발표한 논문을 구할 수 없어 관련 블로그(Tom's hardware[3])에 개제된 제한된 정보를 바탕으로 우선 정리하였습니다. 삼성이 발표한 HBM PIM의 의의는 개념상으로만 제안하고 시뮬레이션으로 효과를 예상했던 위의 두 논문과 달리, 실제 효용이 높을 AI 응용에 적합한 HBM에 PIM을 실제로 적용하고 그 효과를 측정했다는 데에 있습니다. Idea가 실제 물리적 수준으로 구현된 것이지요.

 

삼성 HBM PIM은 아래 그림과 같이 간단한 8개의 명령을 수행할 수 있는 PCU(programmable computing unit)이 Die당 32개 포함되어 실제 연산을 수행합니다. 삼성이 제안한 PCU의 장점은 메모리 컨트롤러를 변경할 필요가 없기 때문에 현재 시스템 구조를 유지하면서 PIM을 구현할 수 있다는 데에 있습니다. 8개의 명령 중 실제 연산 관련은 Add, Mac, Madd, Mul 4개인데, Vector 혹은 Matrix 수준의 간단한  곱셈, 덧셈, 이들의 복합 연산이 가능합니다. 이러한 연산을 통해 아래 그림과 같이 Data 이동 길이가 짧아져서 데이터 이동 시간 단축에 따른 시스템 성능 향상 및 데이터 이동에 따른 에너지 사용 절감이 가능하지요. 아래 그림에서 위의 경우, 빨간색으로 표시된 선을 따라 데이터가 DRAM에서 Processor로 이동하며 긴 구간 이동 중 신호 noise가 발생합니다. 또한 Memory controller가 한 번에 특정 Rank의 1 개의 Bank만 접근 가능한 Bottleneck으로 작용하기 때문에 Parallelism을 구현하지 못하는 단점이 있습니다. 하지만, 아래의 PIM 경우는 DRAM 내의 PCU에서 연산을 하기 때문에 데이터 이동 거리도 짧고, 모든 Bank에서 동시에 연산을 수행할 수 있으므로 Bank parallelism을 통해 연산 Unit의 수가 확장되는 효과를 갖습니다.

기존 DRAM(위)와 PIM 적용 DRAM(아래)의 데이터 움직임 비교 (source: Tom's hardware)

 

위의 PIM을 적용하면 아래 오른쪽 그림과 같이 2.1배의 성능 향상(Inference 시간 단축) 및 71%의 에너지 절감 효과가 있다고 합니다. 아래 결과는 DeepSpeech2를 구현했을 때의 결과이며 적용하는 AI model에 따라 PIM의 효과는 달라질 수 있습니다. 하지만 아래의 결과를 본다면 AI 서비스를 제공하는 데이터센터 업체 입장에서는 매우 매력적인 솔루션임에는 틀림 없습니다. PIM 적용을 위한 하드웨어 및 소프트웨어 변화가 있어야 하겠지만 실제로 PIM이 적용된 HBM이 데이터센터에 장착되는 날이 얼마 남지 않은 것 같습니다.

PIM의 효과 (source: Tom's hardware)

 

[1] Boroumand, A. et al., 2018, Google workloads for consumer devides: mitigating data movement bottlenecks

[2] Ke, L. et al., 2018, RecNMP: Accelerating personalized recommendation with near-memory processing

[3] https://www.tomshardware.com/news/samsung-hbm2-hbm-pim-memory-tflops

반응형
댓글
글 보관함