삼성 LPDDR5X-PIM, 패키지 내부 614GB/s로 Llama 3.1 8B 추론 81.3tok/s 측정
- 삼성은 16GB LPDDR5X-PIM 패키지에 16개 연산 블록을 넣어 내부 대역폭 614GB/s를 내며, 외부 핀 대역폭 76.8GB/s의 8배라고 발표함
- 배치 1 자기회귀 디코딩은 토큰마다 모든 가중치를 DRAM에서 읽어야 하는 GEMV 작업이라, 초당 토큰 수의 1차 근사는 메모리 대역폭 GB/s를 모델 크기 GB로 나눈 값임
- PIM은 호스트가 FP8 활성값과 명령만 보내고 가중치는 패키지 안에 둠.
PIMX_RD가 DRAM 셀의 32바이트 가중치를 MAC 트리로 읽고,PIMX_WR가 부분합을 뱅크에 저장함 - 삼성의 Address Align Mode는 DRAM 주소를 MAC 명령으로 매핑해 기존 DRAM 컨트롤러에서도 쓰도록 설계됨. 단일 뱅크 일반 DRAM 모드와 멀티 뱅크 PIM 모드는 미리 정한 행과 PIM 레지스터로 전환함
- 삼성은 엣지 AI 가속기 SoC에서 Llama 3.1 8B를 SINT8 활성값, SINT4 가중치, 320토큰 문맥으로 시험해 일반 LPDDR5X의 27tok/s와 12.3초 대비 PIM의 81.3tok/s와 5.4초를 기록함. 단일 모델·짧은 문맥·정수 양자화 조건의 공급사 벤치마크임
Hacker News 의견들
메모리에 연산기를 넣을 거면 사용자용 DIP 스위치로 PIM을 꺼서 일반 RAM처럼 쓰게 해야 한다고 봄. 디버그 포트, 프록시, 단일 단계 실행도 필요함. SIMDRAM은 ML, DB, 이미지 처리 7개 커널에서 Ambit보다 최대 2.5배 빨랐다는 연구도 있음.
PIM이 일반 소비자 DIMM을 대체한다고 보는 건 과함. 연산 기능을 넣으면 비싸지니, 가치가 입증되는 틈새 용도에서만 채택될 것임.
AI 추론 말고 범용 코어를 RAM에 넣는 방향도 보고 싶음.
20년 전 고객사를 위해 이걸 검토했는데, 결국 소프트웨어 지원이 문제였음. 오픈소스가 많아진 지금도 저절로 해결되진 않음.
AI 추론은 모델 가중치마다 사실상 같은 연산을 반복하니 메모리 연산에 맞음. 범용 작업은 더 큰 실리콘 면적이 필요하고 대개 대역폭 요구도 낮아서, GPU에 맞지 않는 CPU 작업보다도 PIM에 맞지 않는 작업이 많을 것임.
올해 전자공학 연구 쪽에서 Compute in Memory 이야기가 대부분임. 시장에서 살아남는 방식이 무엇일지 궁금하고, RAM 설계자 채용도 지금 많더라.
PIM은 1998년 Duncan Elliott의 'Computational RAM: A Memory-SIMD Hybrid' 같은 오래된 아이디어임. DRAM 공정은 고속 디지털 로직 공정과 달라서 진짜 PIM의 로직 성능이 나쁘고, HBM5의 로직 다이와 15년 전 Intel·Micron의 Hybrid Memory Cube도 같은 문제의 연장선으로 보임.
대학원 컴퓨터 구조 수업에서 Elliott가 그 논문을 쓰는 동안 C-RAM을 배웠음. 당시에도 더 오래된 논의의 재탕처럼 느껴졌음.
NAND, 로직, DRAM 다이를 적층해 TSV나 본딩으로 연결하는 방식은 가능성이 있어 보임. 각 다이를 맞는 공정으로 만들 수 있으니 한 웨이퍼에 전부 넣는 것보다 현실적이고, 무게치 저장소와 작업 메모리, 연산기의 비율만 맞으면 됨.
기사에서 KV 캐시를 인-DRAM 처리와 어떻게 다루는지 설명하지 않은 점이 걸림. 이게 자명한 문제인지 모르겠음.
DRAM 가까이에 ALU를 많이 두면 열이 문제임. DRAM은 열에 매우 민감하고, 제조 공정 차이도 해결해야 할 문제임.
RAM에 특정 연산 하나를 박아 넣은 셈이라 AI 외에는 트랜지스터가 놀 가능성이 큼. AI에 더 적합한 연산이 나와도 바꾸기 어렵고, 결국 작은 메모리별 마이크로컨트롤러를 잔뜩 둔 Transputer 같은 구조가 될 수 있음.