Ryotta's Basic

System
🖥️ System 검증완료

title: PIM 응용
date: 2025-06-26
category: system
tags: [PIM, Processing-In-Memory, DNN, Graph Processing, Genomics, UPMEM, Samsung HBM-PIM, SK Hynix AiM, AI Inference, BFS, PageRank]


PIM 응용

개요

PIM(Processing-In-Memory)은 메모리 내부에 연산 유닛을 통합하여 데이터 이동 병목을 해결하는 아키텍처이다. 실제 상용 제품과 연구 플랫폼이 등장하면서 DNN 추론/학습, 그래프 처리, 유전체 분석 등 다양한 응용에서 실용화되고 있다. PIM은 연산보다 데이터 이동 비용이 지배적인 워크로드에서 높은 내부 대역폭과 더 나은 에너지 효율을 제공하므로, 성능보다 데이터 이동이 병목인 문제에서 특히 효과가 크다.

PIM 응용은 크게 세 가지 카테고리로 구분된다. 첫째, 딥러닝 추론/학습에서 GEMV/GEMM 연산을 메모리 근처에서 수행하여 대역폭 병목을 완화한다. 둘째, 그래프 처리에서 BFS, PageRank 등 메모리 접근 패턴이 불규칙한 워크로드를 PIM이 처리한다. 셋째, 유전체 분석에서 대용량 DNA 시퀀스 매칭을 병렬로 수행한다. 이들 응용은 모두 데이터 배치, 호스트-메모리 간 동기화, 부분 결과 집계 방식을 함께 설계해야 성능이 나온다는 공통점을 가진다.

핵심 개념

DNN 추론/학습에서의 PIM

DNN PIM

딥러닝 추론은 주로 행렬-벡터 곱셈(GEMV)과 행렬 곱셈(GEMM) 연산으로 구성된다. 전통적인 GPU 기반 추론은 모델 파라미터를 HBM에서 가져오는 비용이 지배적이며, 특히 대규모 모델(LLM, Recommendation System)에서는 메모리 대역폭이 성능의 핵심 병목이 된다.

PIM 기반 DNN 추론의 핵심 특징:

특징 설명 대표 제품
GEMV 가속 벡터-행렬 곱셈을 메모리 내부에서 병렬 수행 Samsung HBM-PIM, SK Hynix AiM
모델 파라미터 로컬리티 가중치가 저장된 메모리에서 직접 연산 UPMEM PIM-DRAM
에너지 효율 데이터 이동 없이 연산 수행으로 전력 소모 절감 모든 PIM 제품
대역폭 확장 여러 뱅크/스택이 동시에 연산 수행 HBM-PIM, AiM

실제 구현 사례:
- Samsung HBM-PIM: 각 메모리 뱅크에 AI 엔진을 넣어 병렬 연산을 수행하며, 삼성 발표 기준으로 시스템 성능 2배 이상과 에너지 소비 70% 이상 절감을 목표로 한다.
- SK Hynix AiM: HBM 계열 메모리에 연산 기능을 결합해 추천·추론 워크로드를 겨냥한 PIM 방향을 제시한다.
- UPMEM PIM-DRAM: DDR 인터페이스 호환형 범용 PIM으로, 호스트 코드가 DPU를 제어하는 프로그래밍 모델을 제공한다.

그래프 처리에서의 PIM

Graph PIM

그래프 처리는 BFS(Breadth-First Search), PageRank, Connected Components 등 대규모 그래프 데이터를 순회하는 워크로드이다. 그래프는 인접 리스트로 저장되며, 노드 간 연결에 따라 불규칙한 메모리 접근 패턴을 가진다. 이러한 불규칙한 접근은 CPU 캐시 효율을 크게 떨어뜨려 성능 병목이 된다.

PIM 그래프 처리의 핵심 특징:

특징 설명
불규칙 접근 처리 PIM이 로컬 메모리에서 직접 그래프 데이터 접근
병렬 BFS 여러 뱅크가 동시에 인접 노드 방문
PageRank 반복 계산 반복적인 가중치 업데이트를 PIM에서 병렬 수행
데이터 로컬리티 활용 그래프 파티셔닝으로 PIM 뱅크별 데이터 배치

실제 구현 예:
- UPMEM 기반 그래프 실험: 그래프 파티션을 각 DPU에 배치해 frontier 확장과 집계를 분산 처리한다.
- PIM-based BFS: BFS 깊이별로 여러 뱅크가 동시에 다음 레벨 노드 방문 작업을 수행한다.
- Graphicionado: 메모리 접근이 지배적인 그래프 분석을 가속하기 위해 데이터 레이아웃과 스트리밍 경로를 함께 최적화한 대표 연구다.

유전체 분석에서의 PIM

Genomics PIM

유전체 분석은 대용량 DNA 시퀀스(수 GB~TB)를 참조 유전체와 대조하여 패턴을 찾는 워크로드이다. BWA, Bowtie2 등 정렬 도구는 시퀀스 데이터를 반복적으로 읽어 패턴 매칭을 수행하며, 메모리 대역폭이 처리 속도를 지배한다.

PIM 유전체 분석의 핵심 특징:

특징 설명
패턴 매칭 병렬화 DNA 서브스트링 매칭을 여러 뱅크에서 동시 수행
대용량 데이터 처리 TB 단위 유전체 데이터를 PIM에서 직접 처리
에너지 효율 유전체 분석의 반복적인 메모리 접근 비용 절감
실시간 분석 PIM 기반 실시간 유전체 시퀀싱 분석 가능

실제 구현 예:
- PIM-Genomics 계열 연구: 참조 유전체 파티션과 read 분배를 결합해 패턴 매칭을 병렬화한다.
- GenSMITH: PIM 기반 유전체 어셈블리 가속기 방향을 보여주는 사례다.
- UPMEM 바이오인포매틱스 실험: variant calling, 매핑 같은 메모리 집약 단계를 DPU 쪽으로 오프로드한다.

공통 구현 포인트

세 응용 모두에서 성능을 좌우하는 첫 번째 요소는 데이터 배치 단위이다. DNN은 가중치 행 또는 타일을 뱅크별로 배치하고, 그래프 처리는 frontier가 자주 접근하는 인접 리스트를 같은 파티션에 모으며, 유전체 분석은 참조 시퀀스와 read 배치를 함께 설계해야 한다. 배치가 잘못되면 PIM 내부 병렬성이 살아도 호스트-메모리 간 재전송 비용이 다시 병목이 된다.

두 번째 요소는 호스트 오케스트레이션과 결과 집계이다. CPU 또는 가속기 런타임은 PIM에 작업을 던지는 것만으로 끝나지 않고, 뱅크별 partial sum, frontier merge, alignment score reduction을 다시 모아 다음 단계에 넘겨야 한다. 따라서 응용별 커널 성능뿐 아니라 배치 전처리, 동기화 오버헤드, 예외 경로 처리까지 포함한 end-to-end 설계가 중요하다.

비교/분석

PIM 응용별 특성 비교

응용 워크로드 특성 PIM 유형 성능 향상 경향 에너지 효율 경향
DNN 추론 GEMV/GEMM, 모델 파라미터 반복 Bank-level, Logic-layer 높음 매우 높음
그래프 처리 불규칙 접근, BFS/PageRank Bank-level 중간~높음 중간~높음
유전체 분석 패턴 매칭, 대용량 시퀀스 Bank-level 높음 매우 높음

상용 PIM 제품별 응용 지원

제품 DNN 추론 그래프 처리 유전체 분석 특징
UPMEM PIM-DRAM O O O DDR 인터페이스, 범용 PIM
Samsung HBM-PIM O X X HBM 기반, AI 추론 특화
SK Hynix AiM O X X HBM3 기반, AI 가속

PIM vs GPU vs CPU 응용 비교

항목 PIM GPU CPU
DNN 추론 에너지 효율 가장 높음 중간 낮음
그래프 처리 랜덤 접근 대응 높음 중간 낮음
유전체 분석 대용량 스캔 높음 중간 기준선
프로그래밍 용이성 어려움 중간 쉬움
성숙도 중간 높음 매우 높음

응용별 병목과 집계 방식

응용 병목 자원 PIM 내부 연산 호스트 집계 포인트
DNN 추론 HBM 대역폭, 가중치 이동 GEMV/GEMM partial sum 층별 출력 결합, activation 전달
그래프 처리 랜덤 접근, 캐시 미스 frontier 확장, edge 순회 방문 집합 병합, 중복 제거
유전체 분석 참조 시퀀스 스캔, 점수 계산 패턴 매칭, alignment score 최고 점수 후보 선택, 후처리

동작 원리

DNN 추론 PIM 동작 흐름

  1. 모델 파라미터 로딩: CPU가 모델 가중치를 PIM-DRAM의 여러 뱅크에 배치
  2. 입력 벡터 전달: 입력 데이터를 PIM 유닛에 전달
  3. 병렬 GEMV 연산: 각 뱅크의 PIM 유닛이 로컬 가중치와 입력 벡터의 곱셈을 병렬 수행
  4. 결과 집계: 여러 뱅크의 결과를 합산하여 최종 출력 생성
  5. 반복 처리: 다층 네트워크의 경우 층별로 반복

그래프 처리 PIM 동작 흐름

  1. 그래프 파티셔닝: 그래프를 여러 PIM 뱅크에 분산 배치
  2. 현재 레벨 노드 전달: BFS의 경우 현재 방문할 노드 집합을 PIM에 전달
  3. 인접 노드 탐색: 각 PIM이 로컬 그래프 데이터에서 인접 노드를 탐색
  4. 결과 집계: 탐색된 노드들을 중앙에서 집합 연산 수행
  5. 다음 레벨 생성: 탐색된 노드들의 인접 노드를 다음 레벨로 전달

유전체 분석 PIM 동작 흐름

  1. 참조 유전체 로딩: 참조 시퀀스를 PIM 뱅크에 분산 저장
  2. 읽기 시퀀스 분할: 입력 DNA 시퀀스를 여러 뱅크에 분배
  3. 패턴 매칭: 각 PIM이 로컬 참조 시퀀스와 패턴 매칭 수행
  4. 정렬 점수 계산: 매칭된 패턴의 정렬 점수를 병렬로 계산
  5. 최적 매칭 선택: 가장 높은 점수의 매칭을 결과로 반환

장단점

장점 단점
대용량 데이터 응용에서 높은 에너지 효율 프로그래밍 모델 복잡
메모리 대역폭 병목 제거 기존 소프트웨어 수정 필요
불규칙 접근 패턴에 유리 상용 제품 생태계 미성숙
데이터 로컬리티 최대 활용 디버깅/프로파일링 어려움
CPU/GPU 대비 낮은 지연 시간 온도 관리 문제
기존 메모리 인터페이스 호환 가능 캐시 일관성 관리 복잡

관련 기술

  • PIM/NMP 아키텍처 개요: PIM 기본 아키텍처와 분류
  • Memory Hierarchy: 메모리 계층 구조와 PIM의 위치
  • GPU 메모리 아키텍처 기초: GPU 메모리와 PIM 비교
  • CUDA 메모리 관리: GPU 메모리 관리와 PIM 대응
  • HBM Generation Comparison: HBM 기반 PIM 구현
  • LPDDR Generation Comparison: 저전력 메모리와 PIM 통합
  • UPMEM DPU SDK User Manual (2025.1.0): 호스트 제어, MRAM/WRAM 메모리 모델, 디버깅 도구를 포함한 프로그래밍 문서
  • Samsung Newsroom, "Samsung Develops Industry's First High Bandwidth Memory with AI Processing Power" (2021): HBM-PIM 구조와 성능/전력 발표
  • SK Hynix AiM: SK Hynix HBM3 기반 AI 가속 PIM
  • Ghose et al., IBM JRD 2019: PIM 워크로드 적합성 분석 survey
  • Jouppi et al., TPU 논문: 구글 TPU의 메모리 접근 패턴과 PIM 가능성 분석
  • Graphicionado: PIM 기반 그래프 처리 가속기 연구
  • GenSMITH: PIM 기반 유전체 분석 가속기 연구

핵심 정리

PIM 응용은 DNN 추론/학습, 그래프 처리, 유전체 분석 세 가지 영역에서 실용화되고 있다. DNN 추론에서는 GEMV/GEMM을 메모리 내부에서 수행해 가중치 이동 비용을 줄이고, 그래프 처리에서는 불규칙한 접근 패턴을 로컬 메모리 가까이에서 처리하며, 유전체 분석에서는 대용량 시퀀스 스캔과 점수 계산을 병렬화한다. 세 영역 모두 커널 자체보다 데이터 배치와 결과 집계 방식이 전체 성능을 크게 좌우한다. UPMEM, Samsung, SK Hynix 같은 상용 및 준상용 생태계가 등장했지만, 프로그래밍 모델의 복잡성과 소프트웨어 성숙도는 여전히 핵심 과제다. 향후 CXL 같은 인터커넥트와 런타임 통합이 발전할수록 PIM 응용 범위는 더 넓어질 가능성이 크다.