PIM(Processing-in-Memory): 데이터를 옮기지 않고 메모리 안에서 계산한다
메모리 내부·근접 영역에 연산 로직을 배치해 데이터 이동을 줄이는 PIM 아키텍처를 In-memory/Near-memory 구분, 활용 사례, 도입 절차 중심으로 정리한다.
2026-08-12 · 최초 발행 2025-12-09
메모리 중심 시대의 진짜 병목은 연산 속도가 아니라 데이터 이동 비용이다. Processing-In-Memory(PIM)는 이 전제를 뒤집어, 연산을 메모리 가까이 혹은 메모리 내부로 옮겨 데이터 이동을 줄이고 메모리 대역폭을 직접 활용하는 아키텍처다. 대규모 그래프, 분석, AI의 메모리 바운드 워크로드에서 지연과 전력 소모를 구조적으로 절감하려는 접근이며, DRAM·3D 적층 메모리 내부 또는 근접 영역에 벡터·스칼라·비트직렬·전용 가속기 형태의 연산 로직을 배치해 호스트-메모리 간 데이터 이동을 최소화하는 것이 목적이다. 궁극적으로는 메모리 벽(memory wall)을 완화하고 에너지·대역폭 효율을 개선하는 데 있다.
In-memory와 Near-memory, 어디에 로직을 심을 것인가
PIM은 로직을 어디에 배치하느냐로 두 갈래로 나뉜다. In-memory는 DRAM 매트 내부 또는 뱅크 단에 간단한 연산 유닛을 배치하는 방식으로, 초저비트·비트직렬 혹은 제한적 ISA를 적용한다. Near-memory는 3D 적층(HBM/HMC) 로직 다이에 범용·벡터 유닛을 배치해 더 풍부한 ISA와 스레드 병렬성을 제공한다. 연결·일관성 측면에서는 독립 주소 공간(DMA 기반)이 기본이라 호스트 캐시 플러시·무효화가 필요하고, CXL.cache 같은 공유 일관성을 지원하는 제품은 아직 제한적이다(최신 정보 확인 필요). 프로그래밍은 호스트가 데이터를 파티셔닝하고 PIM 커널을 로드·실행한 뒤 결과를 리듀스하는 오프로딩 모델이 기본이다. 시스템 콜 미지원, 뱅크·채널 단위의 제한된 메모리, 축소된 원자 연산·락 기능이 제약으로 따라오고, 도구·SDK는 UPMEM DPU·HBM-PIM 라이브러리 같은 벤더 SDK와 일부 OpenMP·OpenCL 어댑터가 쓰인다(최신 정보 확인 필요).
데이터 이동을 줄인다는 것의 의미
메모리 내부·근접 로직에서 필터링·집계·스캔을 수행하면 호스트로 왕복하는 데이터량 자체가 줄어들고, DRAM 내부의 뱅크·채널 레벨 병렬성을 활용해 높은 유효 대역폭을 확보할 수 있다. 에너지·지연 측면에서는 바이트당 이동 에너지가 줄고, 수십 pJ/bit 수준의 메모리 접근 에너지를 활용해 평균 지연이 낮아지며 tail latency도 함께 축소된다. 메모리 바운드 커널에서는 처리량이 210배 향상되고 p50p99 지연이 3080% 감소하며, 그래프·스캔 워크로드에서는 호스트 메모리 트래픽이 5090% 줄어드는 사례가 있다. 데이터 이동 에너지는 310배, 랙 전력은 1030% 절감될 수 있다. 구조적 병렬성도 이점이다. 뱅크·채널 단위로 독립 실행되고 데이터 파티셔닝 기반으로 수평 확장이 쉬우며, 전송-연산-리듀스로 이어지는 파이프라이닝이 자원 활용을 극대화한다. 반대로 일관성·신뢰성은 별도로 챙겨야 한다. 호스트 캐시 일관성은 플러시·무효화, 바운스 버퍼, 핀 메모리로 관리하고, 오류 처리는 타임아웃·온도 스로틀·뱅크 충돌 재시도 같은 런타임 정책이 필요하다. 운영·개발 도구로는 뱅크 활성/충돌·열/전력을 보는 성능 카운터, 프로파일러, 커널 검증 프레임워크가 필요하고, 배포·롤백을 위한 버전 관리와 A/B 테스트 파이프라인이 권장된다.
메모리 바운드 워크로드가 있는 곳이면 어디든
데이터베이스·분석에서는 컬럼 스캔, 필터, 프로젝션, 비트맵 인덱스, 블룸 필터 평가를 PIM으로 오프로드하고, 파티션드 해시 조인의 빌드 단계를 프리필터링해 셔플 데이터량을 줄인다. AI/ML에서는 임베딩 룩업·갱신, 희소 행렬-벡터 곱(SpMV), 일부 정렬·탐색 전처리에 적용하며 트레이닝 데이터의 셔플·샘플링, 미니배치 수준의 주기적 통계 집계도 PIM 후보다. 그래프·HPC에서는 BFS/SSSP, PageRank, 커뮤니티 감지 같은 메모리 바운드 그래프 커널과 스트림 압축·디컴프, 포맷 변환(ROW↔CSR) 오프로드가 대표적이다. 시스템·스토리지 영역에서는 In-memory 키-값 저장소의 TTL 스캔·가비지 수집·카운터 집계, 스토리지 NDP와 결합한 계층형 프리프로세싱 파이프라인에 쓰인다.
입력부터 검증까지의 실행 경로
핵심 절차는 입력 분할→일관성 보장→커널 실행→오류 처리→리듀스/검증→출력 반환 순이다. 타임아웃·온도·뱅크 충돌이 발생하면 호스트가 롤백·리트라이 정책을 적용하고, 실행 전에는 캐시를 플러시·무효화하며 실행 후에는 검증 해시·샘플링으로 결과 무결성을 확인한다.
전통 CPU/GPU 중심 vs PIM 중심
| 지표 | 전통 CPU/GPU 중심 | PIM 중심 |
|---|---|---|
| 성능 | 메모리 바운드 시 스톨 빈발, 대역폭 병목 | 데이터 이동 감소, 뱅크 병렬성으로 2~10배 가속 가능(워크로드 의존) |
| 확장성 | 노드 증가 시 네트워크/NUMA 비용 증가 | 메모리 모듈 단위 스케일아웃, 데이터 근접성 유지 |
| 일관성 | 하드웨어 캐시 일관성에 의존 | 소프트웨어 주도 플러시/무효화, 단순 모델 선호 |
| 안정성 | 성숙한 디버깅/관측 가능성 | 열/전력 한계, 커널 검증·관측 도구 필요 |
| 운영 편의 | 범용 툴체인·스케줄러 성숙 | 벤더 SDK 의존, 배포/롤백 자동화 필요 |
최신 수치·제품별 지표는 벤더 문서 기준으로 다시 확인해야 한다.
도입은 후보 워크로드 선정에서 시작한다
메모리 바운드 비율이 높은 커널(SpMV, 스캔/필터, 임베딩)을 우선 후보로 삼고, 데이터 재사용이 낮고 스트리밍 패턴이 명확한 경로를 선호한다. PoC·성능 모델링 단계에서는 Amdahl·Gustafson 관점에서 오프로딩 가능 비율과 데이터 이동 비용을 계량하고, 뱅크 충돌·행 충돌·온도 스로틀을 포함한 마이크로벤치를 돌린다. 데이터 배치·일관성 전략에서는 파티션 크기를 뱅크·채널에 맞춰 정렬하고 핫셋은 로컬에 유지하며, 실행 전 캐시 플러시와 실행 후 결과 샘플 검증·체크섬을 적용한다. 운영·보안에서는 스로틀·타임아웃 정책과 온도·전력 모니터링 대시보드를 구축하고, 멀티테넌시 상황에서는 자원 격리와 커널 서명·무결성 검증을 적용한다. 장점은 데이터 이동 감소에 따른 전력·지연 절감과 비용 대비 성능 개선이지만, 단점으로는 프로그래밍 제약, 디버깅 난이도, 벤더 종속성이 따른다.
도입은 메모리 바운드 커널 식별→PoC→데이터 배치·일관성 전략 확립→모니터링·오류 처리 체계 구축 순으로 진행하고, 벤더 SDK·하드웨어 가용성과 운영 성숙도, 일관성 모델을 함께 고려한 점진적 채택이 안전하다.