[논문 리뷰] A Systematic Approach to Blocking Convolutional Neural Networks
이 논문은 다수의 메모리 계층 구조를 통해 복소 신경망(CNNs)의 메모리 액세스를 최적화하기 위한 분석 모델을 제시한다. 복소 연산을 직접 차단함으로써 다중 수준 메모리 계층 구조를 통한 계산을 최적화한다. 루프 차단과 메모리 계층 설계를 공동으로 최적화함으로써, CPU에서는 메모리 트래픽과 에너지 소비를 최대 90% 감소시키며, 맞춤형 하드웨어에서는 최대 13배의 에너지 효율 향상을 달성한다. 이는 데이터 복제로 인해 국소성을 잃는 GEMM 기반 방법보다 뛰어난 성능을 발휘한다.
Convolutional Neural Networks (CNNs) are the state of the art solution for many computer vision problems, and many researchers have explored optimized implementations. Most implementations heuristically block the computation to deal with the large data sizes and high data reuse of CNNs. This paper explores how to block CNN computations for memory locality by creating an analytical model for CNN-like loop nests. Using this model we automatically derive optimized blockings for common networks that improve the energy efficiency of custom hardware implementations by up to an order of magnitude. Compared to traditional CNN CPU implementations based on highly-tuned, hand-optimized BLAS libraries,our x86 programs implementing the optimal blocking reduce the number of memory accesses by up to 90%.
연구 동기 및 목표
- 기존 구현에서 큰 워킹 세트와 열악한 데이터 국소성으로 인해 발생하는 CNN 추론의 높은 메모리 에너지 비용을 해결하기 위해.
- GEMM 기반 CNN 구현의 한계를 극복하기 위해, 데이터 복제로 인해 메모리 트래픽이 증가하는 문제를 해결하기 위해.
- 최대한의 에너지 효율성을 확보하기 위해 루프 차단과 메모리 계층을 공동으로 최적화하는 분석 모델을 개발하기 위해.
- CPU 및 맞춤형 하드웨어 전반에서 CNN의 광범위한 블로킹 파라미터 공간을 systematic하게 탐색할 수 있도록 하기 위해.
- 직접적인 CNN 블로킹이 GEMM 기반 접근 방식보다 더 뛰어난 국소성과 에너지 효율성을 제공함을 입증하기 위해.
제안 방법
- 저자는 다수 수준의 메모리 계층 구조에서 메모리 에너지와 트래픽을 정량화하는 CNN 유사 루프 네스트를 위한 분석 모델을 개발한다.
- 이 모델을 통해 주어진 메모리 계층에 대해 가능한 블로킹 구성에 대한 체계적 또는 히우리스틱 검색을 가능하게 하여 최적의 스케줄을 찾을 수 있다.
- 에너지 소비를 최소화하기 위해 루프 차단과 메모리 계층 설계를 공동 최적화하는 방법을 적용한다.
- 이 프레임워크는 CPU 소프트웨어 구현과 맞춤형 하드웨어 설계(예: FPGA 및 ASIC 시스템)에 모두 적용된다.
- 실제 하드웨어 파arameter와 에너지 모델을 사용하여 표준 CNN 레이어(예: Conv1, Conv2)를 대상으로 방법을 검증한다.
- 단일 코어 및 다중 코어 시스템을 모두 지원하며, 공유 메모리 아키텍처에서 브로드캐스트 에너지를 최소화하는 데 중점을 둔다.
실험 결과
연구 질문
- RQ1CNN에 대한 블로킹을 체계적으로 최적화하여 메모리 국소성 향상과 에너지 소비 감소를 달성할 수 있는 방법은 무엇인가?
- RQ2GEMM 기반 vs. 직접 복소 블로킹이 메모리 트래픽과 에너지 효율성에 미치는 영향은 무엇인가?
- RQ3루프 블로킹을 메모리 계층 설계와 공동으로 설계할 경우 CNN 하드웨어의 에너지 효율성에 어떤 영향을 미치는가?
- RQ4최적화된 CNN 시스템에서 메모리 크기, 칩 면적, 에너지 효율성 간의 상호 교환 관계는 무엇인가?
- RQ5큰 片상 메모리 버퍼를 다수의 코어가 공유할 경우, 병렬 처리가 에너지 효율성에 미치는 영향은 어떻게 되는가?
주요 결과
- 직접적인 CNN 블로킹은 GEMM 기반 CPU 구현 대비 최대 90%까지 메모리 액세스 횟수를 감소시켜 에너지 효율성을 크게 향상시킨다.
- 8MB의 片상 SRAM을 갖춘 최적의 메모리 계층은 기준 DianNao 시스템 대비 에너지 효율성을 최소 13배 향상시킨다.
- 단지 1MB의 片상 메모리만으로도 에너지 효율성이 10배 향상되며, DianNao 대비 칩 면적은 단지 6배 더 필요로 한다.
- 메모리 액세스 에너지 대 계산 에너지 비율은 DianNao의 20배에서 최적 시스템에서는 1배 이하로 감소하여 계산이 주요 에너지 비용 요소가 된다.
- 다수의 코어가 큰 片상 버퍼를 공유함으로써 브로드캐스트 에너지를 줄이고, 코어 수 증가에 따라 스케일러블한 에너지 효율성 향상을 달성할 수 있다.
- 프레임워크는 GPU가 저정밀도 CNN 워크로드에서 높은 에너지 효율성을 달성하기 위해 더 깊은 메모리 계층과 더 작은 레지스터 파일이 필요하다는 점을 규명했다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.