그레이트타일: 희소 CNN 피처맵을 위한 효율적인 텐서 타일링 기법
초록
그레이트타일은 CNN 가속기에서 희소 피처맵을 불규칙한 크기의 서브텐서로 나누어 압축 저장하고, 최소한의 인덱싱만으로 랜덤 접근이 가능하도록 설계된 저장 방식이다. 이를 통해 평균 55 %의 DRAM 대역폭 절감과 전체 피처맵 대비 0.6 % 수준의 메타데이터 오버헤드만을 달성한다.
상세 분석
본 논문은 현대 CNN 가속기에서 메모리 대역폭이 전력 소모의 주요 병목임을 지적하고, 희소 피처맵을 효과적으로 압축·전송하기 위한 새로운 데이터 저장 구조인 GrateTile을 제안한다. 기존의 균일한 서브텐서 분할 방식은 서브텐서가 너무 크게 설정될 경우 필요 없는 데이터를 과다하게 가져오게 되고(오버‑패치), 반대로 너무 작게 설정하면 메타데이터와 포인터가 폭발적으로 증가해 DRAM 대역폭과 SRAM 용량을 낭비한다는 트레이드오프가 존재한다. GrateTile은 이러한 양극단을 회피하기 위해 “불균등 크기”의 서브텐서를 사용한다. 핵심 아이디어는 CNN 레이어마다 고정된 스트라이드와 커널 크기, 팽창(dilation) 파라미터를 고려해 입력 피처맵의 경계값을 모듈러 연산으로 구하고, 그 경계값들의 합집합을 서브텐서 분할점으로 삼는 것이다. 예를 들어, 8×8 출력 타일, stride = 2, kernel = 3×3인 경우 경계값 집합 G={1, 7}(mod 8)으로부터 2와 6의 두 크기로 공간을 나누어 4개의 서브텐서(6×6, 2×6, 6×2, 2×2)를 만든다. 이렇게 하면 각 출력 타일이 필요로 하는 10×10 입력 윈도우를 최소한의 서브텐서 조합으로 구성할 수 있어, 부분 압축 서브텐서를 읽어야 하는 상황을 원천 차단한다.
압축 방식 자체는 기존의 비트마스크나 제로‑런‑길이 코딩(ZRLC)과 호환되며, GrateTile은 이들 압축 데이터를 서브텐서 단위로 독립적으로 저장한다. 메타데이터는 각 서브텐서의 시작 주소와 압축된 크기(16‑byte 캐시 라인 단위)를 포함하는 48비트(28비트 포인터 + 20비트 크기) 정도로, 전체 피처맵 대비 0.6 %에 불과하다. 메타데이터는 DRAM에 저장되지만, 서브텐서가 거의 균일하게 배치되므로 접근 횟수가 적고, 캐시 라인 정렬을 유지해 메모리 컨트롤러가 연속적인 전송을 수행할 수 있다.
실험에서는 AlexNet, VGG‑16, ResNet‑18/50, VDSR 등 대표적인 네트워크를 대상으로 시뮬레이션을 수행했으며, 다양한 하드웨어 플랫폼(NVIDIA GPU 기반 타일, Eyeriss와 같은 ASIC)에서 기존 균일 분할 방식 대비 평균 55 %의 대역폭 절감(압축 효율에 따라 6 %~27 % 추가 개선)을 달성했다. 특히, GrateTile은 하드웨어 수정이 최소(주소 계산 로직과 메타데이터 로드 회로 추가)하므로 기존 가속기에 손쉽게 통합될 수 있다.
결론적으로 GrateTile은 “희소 텐서 → 불균등 서브텐서 → 압축 + 최소 메타데이터”라는 3단계 흐름을 통해, 메모리 대역폭이 제한적인 차세대 CNN 가속기에서 전력 효율성을 크게 향상시킬 수 있는 실용적인 솔루션을 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기