처리-메모리(Processing-in-memory, PIM)는 특히 메모리 집약적인 DNN 애플리케이션의 연산을 위해 메모리 대역폭 한계를 극복하기 위한 방안으로 주목받고 있다. 대부분의 PIM 접근법은 CPU의 메모리 요청을 활용하여 PIM 엔진에 명령과 피연산자를 전달하며, 그 결과 핵심 처리부가 바쁘게 점유되어 불필요한 데이터 전송이 발생하고, 이에 따라 상당한 오프로딩 오버헤드가 유발된다. DMA는 CPU의 개입 없이 메모리 계층을 오염시키지 않으면서 연속된 대량의 데이터를 전송함으로써 이러한 문제를 해결할 수 있으며, 이는 PIM 개념에 정확히 부합한다. 그러나 DRAM 기반 PIM 장치의 제한된 연산 자원 때문에 단일 DMA 트랜잭션에서 전송 가능한 데이터 양이 작고, 많은 수의 디스크립터(descriptor)가 필요하므로 여전히 상당한 오프로딩 오버헤드가 발생한다. 본 논문에서는 PIM 오퍼레이션 코드(opcode)와 피연산자를 단일 디스크립터로 표현하기 위해 PISA-DMA(PIM ISA using DMA descriptor called PISA-DMA)라는 DMA 디스크립터를 활용한 PIM 명령어 세트 아키텍처(ISA)를 제안한다. 제안한 ISA는 하나의 PIM 명령을 하나의 DMA 트랜잭션 완료로 간주하고, DMA 디스크립터 리스트를 사용하여 일련의 PIM 명령을 표현함으로써 PIM 프로그래밍을 직관적으로 만든다. 또한 PISA-DMA는 오프로딩 오버헤드를 최소화하면서 상용 플랫폼과의 호환성을 보장한다. PISA-DMA는 오퍼레이션 코드 오프로딩 오버헤드를 제거하고, ONNX runtime에서 실제 기계를 사용했을 때 시퀀스 길이 128에서 각각 BERT, RoBERTa, GPT-2 모델에 대해 기본 PIM 대비 1.25배, 1.31배, 1.29배의 속도 향상을 달성한다. 아울러 본 논문은 제안한 PISA가 컴파일러 최적화에서 성능에 미치는 영향을 연구하고, 행렬-행렬 곱(matrix-matrix multiplication)과 원소별 덧셈(element-wise addition)의 연산자 융합(operator fusion)을 통해 1.04배의 속도 향상을 보이며, 이는 기존 ISA에서도 유사한 성능 이득을 보여준다는 점을 확인한다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.