딥러닝은 최근 몇 년 동안 가장 급속도로 발전하고 있는 연구 분야 중 하나입니다. 따라서 최신 하드웨어 타겟을 고려하지 않고 상태의 최첨단 딥 뉴럴 네트워크 모델 설계가 이루어지고, 최신 딥 뉴럴 네트워크 모델의 특징을 거의 고려하지 않고 뉴럴넷 가속기 설계가 진행되는 것이 당연한 일입니다. 그럼에도 불구하고 이 논문에서는 딥 뉴럴 네트워크 모델과 뉴럴넷 가속기를 공조설계하면 상당한 개선이 가능함을 보여줍니다.
This paper addresses the issue of a significant gap between state-of-the-art deep neural network (DNN) model design and neural net accelerator design. Typically, DNNs are designed with an emphasis on achieving high accuracy on benchmarks, while accelerators are often evaluated using outdated models like AlexNet, leading to limited real-world application performance. The authors propose a co-design approach where both the DNN and its hardware accelerator are developed in tandem. By fine-tuning the accelerator architecture for specific DNN characteristics and incorporating hardware considerations into model design, they demonstrate significant improvements in speed (1.9-6.3x) and energy efficiency (2.25x). This method also improves model accuracy compared to previous benchmarks like SqueezeNet. The research underscores the benefits of a holistic approach to designing both software models and their hardware counterparts for optimal performance in real-world embedded vision applications.
**소개**
인공지능(AI) 가속기의 아키텍처 설계와 구현은 매우 인기 있는 주제입니다. 하지만 이 분야의 논문을 자세히 살펴보면, 많은 경우에 가속기들의 아키텍처와 회로 구현이 오래된 모델인 AlexNet으로 평가되고 있다는 것을 알 수 있습니다. 이 모델은 파라미터가 많고 층수가 얕아서 현재의 컴퓨터 비전 분야에서 사용되는 일반적인 DNN 모델과는 큰 차이가 있습니다. 이러한 초기 오류는 결과를 평가하는 데 사용되는 절차에서도 복합적으로 나타납니다. 그 결과, 많은 네트워크 가속기가 실제 어플리케이션 워크로드에서의 유용성이 크게 입증되지 않은 상태입니다.
한편, 현대적인 DNN 설계는 주로 목표 벤치마크에 대한 정확성을 최적화하는데 초점을 맞추고 있으며, 속도나 에너지에 대한 고려사항은 거의 없습니다. 또한 DNN 설계 선택이 하드웨어 실행에 미치는 영향을 항상 이해하지 못하는 경우가 많습니다.
따라서, 최첨단 NN 가속기 설계와 최첨단 DNN 모델 설계 사이에 큰 간극이 존재합니다. 이 문제는 본 논문의 긴 버전에서 자세히 검토될 것입니다. 본 논문에서는 간극을 줄이는 데 사용된 거시적 공조설계(co-design) 접근법의 결과를 단순하게 제시하며, DNN 모델에 맞게 가속기 아키텍처를 세밀하게 조정하면 해당 모델을 실행하는 데 1.9-6.3배 성능이 향상된다는 것을 보여줍니다. 또한 하드웨어 고려사항을 신경망 모델 설계에 통합하면 SqueezeNet과 비교하여 속도가 2.6배 빠르고 에너지 효율성이 2.25배 개선되는 결과를 얻었습니다.
본 논문의 나머지는 다음과 같이 구성됩니다. 섹션 [10]에서는 임베디드 컴퓨터 비전 애플리케이션에 대한 간략한 소개와 그들의 속도, 전력, 에너지 제약 조건을 다룹니다. 섹션 [7]에서는 이러한 임베디드 비전 애플리케이션용 NN 가속기 설계를 논의합니다. 섹션 [8]에서는 DNN과 NN 가속기의 공조설계에 초점을 맞춥니다. 마지막으로 결론을 제시합니다.
임베디드 비전 어플리케이션용 NN 가속기 설계
앞서 언급한 임베디드 비전 애플리케이션의 전력, 에너지 및 속도 제약 조건은 특수화된 가속기가 필요하다는 것을 자연스럽게 동기 부여합니다. 가속기의 미세 아키텍처 설계에 대한 일반적인 접근법은 대표적인 작업 부하를 찾아 그 특성을 추출하고, 이를 기반으로 미세 아키텍처를 조정하는 것입니다. 그러나 DNN 모델이 빠르게 진화함에 따라 딥 네트워크 모델과 NN 가속기의 공조설계가 특히 잘 동기 부여된 상태입니다.
공간 아키텍처
공간 아키텍처는 비교적 간단한 처리 요소(PE) 배열을 사용하여 고도의 계산 병렬성을 활용하고 PE 간 직접 통신을 통해 이를 구현하는 가속기 아키텍처 클래스입니다. SIMD 아키텍처와 비교했을 때, 공간 아키텍처는 각 PE당 칩 내부 메모리 대역폭이 상대적으로 낮지만, 라우팅 자원과 메모리 대역폭 측면에서 확장성이 좋습니다. DNN의 90% 이상은 임베디드 비전을 위한 계산으로 구성되어 있으며, 이는 컨볼루션 신경망(CNN)이라고도 합니다. 컨볼루션의 높은 병렬성과 데이터 재사용성을 고려할 때, 공간 아키텍처는 이러한 CNN/DNN를 가속화하는 데 인기 있는 옵션입니다.
병렬 처리를 활용하기 위해, NN 가속기는 많은 수의 PE를 포함하며 이를 병렬로 실행합니다. 일반적으로 PE에는 MAC 유닛과 로컬 데이터 저장을 위한 작은 버퍼 또는 등록 파일이 있습니다. 대부분의 가속기는 8x8에서 256x256까지 다양한 크기의 2차원 PE 배열을 사용합니다. 그러나 PE 수가 증가함에 따라 메모리 대역폭도 증가해야 합니다. MAC 연산은 세 개의 입력 피치와 하나의 출력 피치를 가지고 있으며, 이러한 피치들을 DRAM을 통해 수백 개의 PE에게 공급하는 것은 대역폭과 에너지 소비 측면에서 제한적입니다. 따라서 NN 가속기는 데이터가 MAC 유닛에 제공될 수 있도록 여러 단계의 메모리 계층을 제공하고, 각 레벨은 컨볼루션 계층의 데이터 재사용성을 최대화하여 상위 레벨의 접근을 최소화하도록 설계됩니다. 이에는 텐스 오브 KB에서 수십 MB까지 다양하게 구성된 전역 버퍼(칩 내부 SRAM)가 포함되며, PE 간 연결 및 PE 내 등록 파일이 있습니다.
NN 가속기는 데이터 재사용 계획과 메모리 계층을 통해 다른 가속기와 구분되는 가장 중요한 특징 중 하나입니다. 일부 가속기는 컨볼루션 계층 외의 NN 계층을 처리하기 위한 전용 블록도 포함하고 있습니다. 이러한 계층은 매우 작은 연산 복잡성을 가지므로 일반적으로 1D SIMD 방식으로 처리됩니다.
NN 가속기 아키텍처의 분류
NN 가속기를 구분하는 몇 가지 특징이 있으며, 다음은 그 중 일부입니다.
- PE: 데이터 포맷(로그, 선형, 부동 소수점), 비트 폭, 산술 유닛 구현 방식(비트 병렬, 비트 직렬 등), 재사용 데이터(입력, 가중치, 부분 합)
- PE 배열: 크기, 상호 연결 토폴로지, 데이터 재사용, 알고리즘 매핑
- 전역 버퍼: 구성(통합, 전용), 메모리 유형(SRAM, eDRAM 등)
Eyeriss는 각 PE가 로컬적으로 재사용하는 데이터 유형에 따라 NN 가속기를 분류한 유용한 분류법을 제안했습니다. 메모리 계층이 내려갈수록 데이터 재사용도가 증가하므로 이러한 종류의 분류는 NN 가속기의 특징적인 재사용 방식을 보여줍니다. 네 가지 데이터 플로우 중 두 가지를 소개합니다.
가중치 정지
가중치 정지(WS) 데이터 플로우는 가중치 읽기 시 필요한 대역폭과 에너지를 최소화하기 위해 PE의 레지스터에서 가중치에 대한 액세스 횟수를 최대한 늘리는 방식입니다. 실행 과정은 다음과 같습니다: PE는 컨볼루션 필터의 가중치를 등록 파일로 미리 로드합니다. 그런 다음 전체 입력 특징 맵에 대해 MAC 연산을 수행하고, 각 주기마다 MAC 결과를 외부로 전송합니다. 이후 다음 요소로 이동하여 계속 진행합니다.
출력 정지
출력 정지(OS) 데이터 플로우는 PE 내에서 부분 합의 접근 횟수를 최대화하도록 설계되었습니다. 각 주기 동안, PE는 하나의 출력 픽셀에 기여하는 컨볼루션의 일부분을 계산하고 결과를 누적합니다. 해당 픽셀에 대한 모든 연산이 완료되면, 최종 결과가 PE로부터 전송되고 PE는 새로운 픽셀 작업으로 이동합니다.
이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다.
저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.