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
딥러닝 추론은 주로 행렬-벡터 곱셈(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
그래프 처리는 BFS(Breadth-First Search), PageRank, Connected Components 등 대규모 그래프 데이터를 순회하는 워크로드이다. 그래프는 인접 리스트로 저장되며, 노드 간 연결에 따라 불규칙한 메모리 접근 패턴을 가진다. 이러한 불규칙한 접근은 CPU 캐시 효율을 크게 떨어뜨려 성능 병목이 된다.
PIM 그래프 처리의 핵심 특징:
| 특징 | 설명 |
|---|---|
| 불규칙 접근 처리 | PIM이 로컬 메모리에서 직접 그래프 데이터 접근 |
| 병렬 BFS | 여러 뱅크가 동시에 인접 노드 방문 |
| PageRank 반복 계산 | 반복적인 가중치 업데이트를 PIM에서 병렬 수행 |
| 데이터 로컬리티 활용 | 그래프 파티셔닝으로 PIM 뱅크별 데이터 배치 |
실제 구현 예:
- UPMEM 기반 그래프 실험: 그래프 파티션을 각 DPU에 배치해 frontier 확장과 집계를 분산 처리한다.
- PIM-based BFS: BFS 깊이별로 여러 뱅크가 동시에 다음 레벨 노드 방문 작업을 수행한다.
- Graphicionado: 메모리 접근이 지배적인 그래프 분석을 가속하기 위해 데이터 레이아웃과 스트리밍 경로를 함께 최적화한 대표 연구다.
유전체 분석에서의 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 동작 흐름
- 모델 파라미터 로딩: CPU가 모델 가중치를 PIM-DRAM의 여러 뱅크에 배치
- 입력 벡터 전달: 입력 데이터를 PIM 유닛에 전달
- 병렬 GEMV 연산: 각 뱅크의 PIM 유닛이 로컬 가중치와 입력 벡터의 곱셈을 병렬 수행
- 결과 집계: 여러 뱅크의 결과를 합산하여 최종 출력 생성
- 반복 처리: 다층 네트워크의 경우 층별로 반복
그래프 처리 PIM 동작 흐름
- 그래프 파티셔닝: 그래프를 여러 PIM 뱅크에 분산 배치
- 현재 레벨 노드 전달: BFS의 경우 현재 방문할 노드 집합을 PIM에 전달
- 인접 노드 탐색: 각 PIM이 로컬 그래프 데이터에서 인접 노드를 탐색
- 결과 집계: 탐색된 노드들을 중앙에서 집합 연산 수행
- 다음 레벨 생성: 탐색된 노드들의 인접 노드를 다음 레벨로 전달
유전체 분석 PIM 동작 흐름
- 참조 유전체 로딩: 참조 시퀀스를 PIM 뱅크에 분산 저장
- 읽기 시퀀스 분할: 입력 DNA 시퀀스를 여러 뱅크에 분배
- 패턴 매칭: 각 PIM이 로컬 참조 시퀀스와 패턴 매칭 수행
- 정렬 점수 계산: 매칭된 패턴의 정렬 점수를 병렬로 계산
- 최적 매칭 선택: 가장 높은 점수의 매칭을 결과로 반환
장단점
| 장점 | 단점 |
|---|---|
| 대용량 데이터 응용에서 높은 에너지 효율 | 프로그래밍 모델 복잡 |
| 메모리 대역폭 병목 제거 | 기존 소프트웨어 수정 필요 |
| 불규칙 접근 패턴에 유리 | 상용 제품 생태계 미성숙 |
| 데이터 로컬리티 최대 활용 | 디버깅/프로파일링 어려움 |
| 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 응용 범위는 더 넓어질 가능성이 크다.