ucb-bar/gemmini

Berkeley's Spatial Array Generator

해결하는 문제

Gemmini는 심층 신경망(DNN) 하드웨어 탐색 및 평가를 위한 전체 시스템, 풀스택 플랫폼을 제공합니다. 아키텍트는 가속기 자체뿐만 아니라 시스템 및 소프트웨어 스택의 다양한 구성 요소가 어떻게 상호 작용하여 전체 DNN 성능에 영향을 미치는지 분석할 수 있습니다.

작동 방식

Gemmini는 Chisel 하드웨어 기술 언어를 사용하여 개발된 RISC-V용 RoCC(Rocket Custom Coprocessor) 가속기로 구현됩니다. 이 아키텍처는 행렬 곱셈을 위한 정맥 어레이를 중심으로 하며, 출력 고정 및 가중치 고정 데이터플로우를 모두 지원합니다.

주요 하드웨어 구성 요소는 다음과 같습니다:

  • 분리된 액세스/실행 아키텍처: 실행, 로드 및 스토어 명령어에 대한 별도의 컨트롤러를 통해 메모리 액세스와 계산이 동시에 이루어질 수 있습니다.
  • 스크래치패드 및 누산기: 입력, 부분 합 및 최종 결과를 저장하는 데 사용되는 개인용 SRAMs입니다.
  • DMA 엔진: 호스트 CPU의 메인 메모리와 가속기의 개인용 SRAMs 간의 데이터 전송을 용이하게 합니다.
  • 주변 회로: 활성화 함수(예: ReLU), 양자화된 워크로드에 대한 스케일링 및 행렬 전치를 지원합니다.

대상 독자

다양한 DNN 가속기를 구축, 구성 및 프로파일링하고 기능 시뮬레이터(Spike) 또는 사이클 정확한 시뮬레이터(Verilator, VCS 및 FireSim)를 사용하여 테스트하려는 하드웨어 아키텍트 및 연구원을 위해 설계되었습니다.

주요 특징

  • 유연한 구성: 정맥 어레이 차원, 데이터플로우, 메모리 용량 및 데이터 유형(예: 8-bit 정수 또는 부동 소수점)에 대해 매개변수를 조정할 수 있습니다.
  • 풀스택 평가: Chipyard 생태계와 통합되어 baremetal, Linux 또는 proxy-kernel 환경에서 소프트웨어 바이너리를 테스트합니다.
  • 하드웨어-소프트웨어 공동 설계: ResNet50과 같은 대규모 DNN 모델을 실행하기 위한 라이브러리(libgemmini) 및 테스트 스위트가 포함되어 있습니다.
  • FPGA 가속: FireSim을 지원하여 엔드 투 엔드 워크로드의 고속 사이클 정확한 시뮬레이션을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트