처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.29 41

삼성 LPDDR5X-PIM: 메모리 안에서 연산하기, 그리고 소프트웨어의 벽

Hacker News 원문 보기

메모리 안에서 직접 연산을 수행하는 인메모리 컴퓨팅은 오래전부터 매력적인 아이디어였다. DRAM 칩 내부의 대역폭은 외부 인터페이스보다 훨씬 넓고, 데이터를 연산 코어까지 실어 나르는 긴 지연 경로도 피할 수 있기 때문이다. 삼성이 Hot Chips 2026에서 공개한 LPDDR5X-PIM(Processing-in-Memory)은 이 발상을 상용 메모리 규격 위에서 구현하려는 시도다. 표준 메모리 컨트롤러와 그대로 통신하는 능력을 유지하면서, LPDDR5X 칩 안에 곱셈-누산(MAC) 유닛을 심어 넣었다는 점이 핵심이다.

내부 대역폭을 끌어쓰는 구조

DRAM은 내부적으로 여러 뱅크로 나뉘고, 각 뱅크가 자체 읽기·쓰기 로직을 갖는다. 일반적인 접근에서는 컨트롤러가 뱅크를 고르고 행을 활성화한 뒤 CAS 명령으로 데이터를 읽는데, 이때 성능은 칩 외부 인터페이스의 대역폭에 묶인다. 삼성의 LPDDR5X-PIM은 16개 뱅크를 가진 LPDDR5X-9600 칩과 비슷하지만, 각 뱅크마다 PIM 블록을 하나씩 붙였다. 이 블록들은 외부 버스에 구애받지 않고 자기 뱅크에 접근하며, 16개 뱅크를 합치면 614GB/s의 내부 대역폭을 활용한다. 일반 접근이 두 뱅크를 병렬로 써서 최대 76.8GB/s에 그치는 것과 비교하면 큰 차이다.

PIM 블록은 MAC 트리와 그 주변의 레지스터 파일, 제어 로직으로 구성된다. 1024비트 명령 레지스터 파일에는 16비트 명령을 최대 64개 담을 수 있고, 4kbit 소스 레지스터는 활성화 벡터를 담아 MAC 배열의 한쪽 피연산자를 공급한다. 나머지 피연산자인 모델 가중치는 소프트웨어가 미리 DRAM에 적재해 두고, 2kbit 스케일 레지스터의 값으로 연산 전 스케일링도 가능하다. MAC 배열은 INT8·FP8 등 저정밀 포맷을 지원하는데, 삼성이 제시한 수치를 보면 4비트 가중치 입력에서 처리량이 두 배가 되어 패키지 전체로 2.4 TOPS 수준에 이른다.

성능의 절대치와 확장성

2.4 TOPS 자체는 높은 값이 아니다. 다만 여러 칩을 묶으면 총합은 커진다. 삼성 자료에 따르면 LPDDR5X 칩 8개를 쓰면 9.6 INT8 TOPS로, 인텔 메테오레이크의 NPU와 엇비슷한 수준이 된다. 그러나 16GB 칩 8개는 곧 128GB의 시스템 메모리를 의미하므로 비용 부담이 상당하다. 인메모리 컴퓨팅의 가치는 단순 연산 성능보다 메모리 용량에 비례해 연산이 따라오는 구조, 즉 대용량 데이터를 옮기지 않고 처리하는 데 있다는 점을 감안해야 한다.

주목할 부분은 표준 LPDDR5X 프로토콜을 벗어나지 않으면서 규격에 없는 연산 기능을 노출한다는 점이다. 삼성은 특정 행 주소를 MMIO처럼 예약해 이를 해결했다. 채널마다 모드 제어용 행 두 개가 정해져 있어, 하나를 활성화하면 단일 뱅크 모드(일반 동작), 다른 하나는 멀티 뱅크 모드로 전환된다. 또 다른 특수 행을 활성화하면 읽기·쓰기 명령이 DRAM 내용 대신 PIM 레지스터에 접근하는 모드가 된다. 실제 흐름은 이렇다. 단일 뱅크 모드에서 가중치를 적재하고, 멀티 뱅크 모드로 바꿔 활성화 값과 스케일·명령을 16개 뱅크에 브로드캐스트로 써 넣은 뒤, 읽기 명령으로 연산을 촉발하고 그 결과를 벡터 레지스터에 누산한다. 마지막에 쓰기 명령으로 결과를 다시 DRAM에 기록한다. 이때 모든 뱅크에 같은 연산·스케일·소스가 적용되므로 PIM은 극도로 제약된 SIMD 프로세서처럼 동작한다.

하드웨어는 단순해도 소프트웨어는 험난하다

표준 DRAM 명령을 재활용한 덕에 하드웨어는 단순해지지만, 소프트웨어 쪽 난제는 만만치 않다. PIM 모드가 DRAM 접근 명령의 의미 자체를 바꾸기 때문에, PIM과 일반 메모리 접근을 동시에 할 수 없다. 이는 스레드를 나눠도 마찬가지다. 메모리 컨트롤러와 DRAM은 어느 접근이 어느 스레드의 것인지 알지 못하므로, PIM을 쓰는 도중 다른 스레드가 메모리를 읽으면 의도치 않은 연산이 일어나거나 결과가 엉뚱한 주소에 기록될 수 있다. 삼성은 호스트가 메모리 안에 PIM 전용 영역을 격리하는 방식으로 대응하는데, 일반적인 시스템에서 이를 구현하기가 쉽지 않다. 하드웨어는 보통 주소를 여러 채널에 인터리빙해 대역폭을 자연스럽게 분산시키지만, PIM은 채널별 행으로 모드를 제어하므로 인터리빙을 포기하고 특정 채널을 PIM 전용으로 지정하는 방법밖에 없다. 그러면 일반 애플리케이션은 그 채널의 대역폭을 못 쓰고, PIM 코드는 나머지 채널의 연산·대역폭을 놓친다.

멀티태스킹 운영체제에서는 문제가 더 커진다. 여러 프로세스가 서로 모른 채 PIM을 쓰려 할 수 있어, 결국 PIM 구간을 실행하는 동안 다른 스레드를 모두 막고 인터럽트를 끄는 식의 극단적 처리가 필요해진다. PIM 스레드를 선점하려면 채널을 PIM 모드에서 빼내고 각 뱅크의 명령·소스·스케일·벡터 레지스터를 모두 읽어 저장해야 하니, 문맥 전환 자체가 악몽에 가깝다. 게다가 PIM은 캐시 계층이 모르는 값을 DRAM에 생성하고, 캐시는 PIM을 촉발해야 할 접근을 흡수해 버릴 수 있다. 삼성이 PIM 메모리를 캐시 불가능(uncacheable)으로 매핑하라고 권하는 이유지만, 캐시에 크게 의존하는 현대 CPU·GPU에서 이는 심각한 성능 저하로 이어진다. 더 나아가 PIM 읽기가 MMIO처럼 부작용을 동반하므로, 프리페칭이나 분기 예측에 따른 투기적 로드가 잘못된 연산을 일으킬 수 있어 접근을 비투기적으로도 만들어야 한다. 캐싱·프리페칭·비순차 실행을 모두 끄면 성능은 사실상 무너진다.

결국 인메모리 컴퓨팅을 제대로 쓰려면 메모리 서브시스템 전반의 변화가 필요하다는 결론에 이른다. 원문은 대안으로 세 가지를 제시한다. DRAM 인터페이스에 별도의 연산 명령을 추가해 모드 전환 자체를 없애는 방법, 메모리 컨트롤러가 캐시 일관성 관점에서 하나의 CPU 코어처럼 동작하며 소유권(RFO)을 확보한 뒤 연산하는 방법, 그리고 'rep macb' 같은 새로운 CPU 명령을 두어 DRAM 지원 여부에 따라 인메모리 연산과 내부 연산을 선택하게 하는 방법이다. 삼성의 접근이 표준 컨트롤러와 맞물린다는 점은 인상적이지만, 그것이 곧 기존 하드웨어·소프트웨어 패러다임에 쉽게 얹힌다는 뜻은 아니다. 실무자 입장에서 LPDDR5X-PIM은 당장 범용 시스템에 투입할 기술이라기보다, 메모리 규격과 OS·컴파일러가 함께 진화해야 비로소 열리는 가능성으로 읽는 편이 정확하다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.