[논문 리뷰] Snowflake: A Model Agnostic Accelerator for Convolutional Neural Networks
Snowflake는 다양한 CNN 아키텍처에서 변동하는 데이터 액세스 패턴과 계층적 계산 요구사항에 동적으로 대응함으로써, 모든 CNN 아키텍처에서 최대 95%의 계산 효율성을 달성하는 모델에 종속되지 않는 가속기이다. 이는 아키텍처 특화가 필요 없이 현대적인 딥 CNN의 광범위한 벤치마크에서 평균 93%의 높은 효율성을 유지한다.
Deep learning is becoming increasingly popular for a wide variety of applications including object detection, classification, semantic segmentation and natural language processing. Convolutional neural networks (CNNs) are a class of deep learning algorithms that have been shown to achieve high accuracy for these tasks. CNNs are hierarchical mathematical models comprising millions of operations to produce an output. This output can be used to identify what objects the input image contained, the locations of these objects and what actions to take based on this knowledge. The high computational complexity combined with the inherent parallelism in these models makes them an excellent target for custom accelerators. CNNs produce tens of megabytes of intermediate data and have highly varied data access patterns, both among different network architectures and across the hierarchy of a single network. However, when optimizing for different CNN hierarchies and data access patterns, it is difficult for custom accelerators to achieve close to 100% computational efficiency. We present a network architecture agnostic accelerator called Snowflake. Snowflake has been designed to achieve close to peak computational efficiency while processing all parts of the CNN hierarchy. We use a benchmark suite consisting of a variety of recent, deep CNNs with different model hierarchies to evaluate the performance of the accelerator. We demonstrate that Snowflake has an average computational efficiency of 93% with a minimum of 91% and a maximum of 95%.
연구 동기 및 목표
- 다양한 데이터 액세스 패턴과 계층적 구조를 가진 CNN용 맞춤형 가속기에서 높은 계산 효율성을 달성하는 데 도전하는 것.
- 아키텍처 특화가 필요 없이 다양한 CNN 아키텍처에서 효율성을 유지하는 하드웨어 가속기를 설계하는 것.
- 딥 CNN에서 비정규적인 메모리 액세스와 계산 부하 변동으로 인한 성능 저하를 최소화하는 것.
- 단일 가속기가 여러 CNN 계층과 워크로드에서 최고 성능에 가까운 효율성을 달성할 수 있음을 입증하는 것.
제안 방법
- Snowflake는 다양한 CNN 레이어의 계산 및 메모리 액세스 패턴에 동적으로 대응할 수 있도록 재구성 가능한 데이터플로우 인식 아키텍처를 사용한다.
- CNN 계산 그래프 전반에 걸쳐 공간적 및 시간적 병렬 처리를 지원하는 계층적 처리 구조를 채택한다.
- 외부 메모리 대역폭을 줄이기 위해 최적화된 데이터 버퍼링 및 片상 메모리 재사용 전략을 포함한 유연한 메모리 계층을 구현한다.
- 모델 특성과 분리된 설계를 통해 계산 스케줄링을 모델에 종속되지 않게 한다.
- 런타임 스케줄러를 사용하여 레이어 수준의 요구사항을 분석하고 처리 자원을 적절히 구성한다.
- 재구성 오버헤드가 최소한이 되도록 컨볼루션 및 완전 연결 레이어를 모두 지원한다.
실험 결과
연구 질문
- RQ1동일한 가속기가 다양한 데이터 액세스 패턴을 가진 다양한 CNN 아키텍처에서 일관되게 높은 계산 효율성을 달성할 수 있는가?
- RQ2모델에 종속되지 않는 설계는 전문화된 가속기 대비 계산 효율성과 적응 가능성 측면에서 어떻게 비교되는가?
- RQ3모든 CNN 계층, 특히 초기 및 후기 레이어를 포함하여 전체 CNN 계층에서 얼마만큼의 계산 효율성을 유지할 수 있는가?
- RQ4동적 스케줄링과 메모리 최적화가 CNN 가속기에서 외부 메모리 트래픽을 얼마나 줄일 수 있는가?
주요 결과
- Snowflake는 최근의 다양한 딥 CNN 벤치마크에서 평균 계산 효율성이 93%에 이른다.
- 모든 평가된 네트워크에서 최소 계산 효율은 91%이며, 최대는 95%에 달한다.
- 비정규적인 데이터 액세스 패턴을 가진 레이어를 포함하여 CNN 계층의 모든 수준에서 높은 효율성을 유지한다.
- 모델에 종속되지 않는 설계 덕분에 다양한 CNN 유형에 대해 아키텍처 재구성 없이 일관된 성능을 제공한다.
- 지능적인 片상 데이터 재사용 및 버퍼링을 통해 외부 메모리 대역폭 압력을 줄인다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.