Skip to main content
QUICK REVIEW

[논문 리뷰] FOS: A Modular FPGA Operating System for Dynamic Workloads

Anuj Vaishnav, Khoa Dang Pham|arXiv (Cornell University)|2020. 01. 26.
Embedded Systems Design Techniques참고 문헌 27인용 수 4
한 줄 요약

FOS는 모듈식 FPGA 운영체제로, 모듈식 컴파일 플로우와 자원 탄력성 있는 런타임을 통해 하드웨어와 소프트웨어 구성 요소를 분리함으로써 동적이고 다중 테넌트 가속을 가능하게 한다. FOS는 컴파일 시간을 최대 2.34배 단축시키고 업데이트 지연을 100배 이상 감소시키며, RTL, C, C++, OpenCL와 같은 이종 가속기들을 지원하고 단일 및 다중 테넌트 워크로드에 대해 시간과 공간에서 자동으로 자원을 스케줄링하여 최소한의 오버헤드로 처리한다.

ABSTRACT

With FPGAs now being deployed in the cloud and at the edge, there is a need for scalable design methods which can incorporate the heterogeneity present in the hardware and software components of FPGA systems. Moreover, these FPGA systems need to be maintainable and adaptable to changing workloads while improving accessibility for the application developers. However, current FPGA systems fail to achieve modularity and support for multi-tenancy due to dependencies between system components and lack of standardised abstraction layers. To solve this, we introduce a modular FPGA operating system -- FOS, which adopts a modular FPGA development flow to allow each system component to be changed and be agnostic to the heterogeneity of EDA tool versions, hardware and software layers. Further, to dynamically maximise the utilisation transparently from the users, FOS employs resource-elastic scheduling to arbitrate the FPGA resources in both time and spatial domain for any type of accelerators. Our evaluation on different FPGA boards shows that FOS can provide performance improvements in both single-tenant and multi-tenant environments while substantially reducing the development time and, at the same time, improving flexibility.

연구 동기 및 목표

  • 현재 FPGA 시스템에서 하드웨어, EDA 도구, 소프트웨어 구성 요소 간의 강한 결합으로 인해 발생하는 모듈성, 유지보수성, 다중 테넌시 부족 문제를 해결하기 위해.
  • C, C++, OpenCL, RTL용 고수준의 언어에 관계없는 API를 통해 FPGA 복잡성을 추상화하여 개발자 생산성과 접근성을 향상시키기 위해.
  • 런타임 시스템을 통해 시간 및 공간 도메인의 다중화를 지원함으로써 여러 가속기와 사용자 간에 동적 자원 할당을 가능하게 하기 위해.
  • 쉘과 모듈 컴파일을 분리하고 모듈 이동 기능을 제공함으로써 FPGA 시스템의 컴파일 및 업데이트 오버헤드를 감소시키기 위해.
  • 전체 시스템 재컴파일이 필요 없이 다양한 보드와 EDA 도구 버전 간의 이종 FPGA 환경을 지원하기 위해.

제안 방법

  • FOS는 하드웨어 및 소프트웨어 구성 요소를 독립적으로 컴파일 가능한 모듈로 분리하고 잘 정의된 인터페이스를 제공하는 모듈식 FPGA 개발 플로우를 채택한다.
  • 쉘과 가속기 모듈을 별도로 컴파일할 수 있도록 분리된 컴파일 모델을 도입하여 다양한 FPGA 플랫폼 간 재사용 및 이동성을 가능하게 한다.
  • 런타임 시스템은 자원 탄력성 스케줄링을 구현하여 FPGA 자원을 시간(시간 다중화) 및 공간(공간 분할) 도메인에서 동적으로 할당한다.
  • 통합된 사용자 인터페이스를 통해 C, C++, OpenCL, RTL 등 다양한 언어 간의 가속기 접근을 추상화하여 애플리케이션 중심의 프로그래밍을 가능하게 한다.
  • 런타임 중 가속기 스위칭 및 복제를 지원하여 워크로드 변화에 유연하게 대응할 수 있도록 한다.
  • 고수준 API를 갖춘 오픈소스 소프트웨어 스택을 통해 애플리케이션 개발자가 FOS를 정적, 단일 사용자 동적, 다중 테넌트 동적 가속 모드에서 사용할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1어떻게 하드웨어 플랫폼, EDA 도구, 소프트웨어 스택 간의 이종성에도 불구하고 FPGA 시스템이 모듈성과 유지보수성을 확보할 수 있는가?
  • RQ2모듈식 FPGA OS는 동적 워크로드를 지원하면서도 컴파일 및 업데이트 오버헤드를 줄일 수 있는가?
  • RQ3자원 탄력성 런타임 시스템은 단일 및 다중 테넌트 워크로드에 대해 시간 및 공간 도메인에서 다양한 가속기(RTL, C, C++, OpenCL)를 얼마나 효과적으로 스케줄링할 수 있는가?
  • RQ4FOS는 비FPGA 전문가가 사용하는 CPU-FPGA 이종 환경에서 개발자 생산성과 접근성을 얼마나 향상시키는가?
  • RQ5다중 테넌트 환경에서 동시적으로 발생하는 이종 워크로드를 지원할 때 FOS는 어떤 성능 및 확장성 이점을 제공하는가?

주요 결과

  • FOS는 단일 플로우 기반 FPGA 플로우 대비 컴파일 시간을 최대 2.34배 단축시키고 업데이트 지연을 100배 이상 감소시킨다.
  • Ultra-96 플랫폼에서 FOS는 최대 3개의 동시 부분 재구성 영역을 지원하며 거의 선형적인 성능 스케일링을 달성하지만, 이후 시간 다중화 오버헤드로 인해 성능이 정체된다.
  • Mandelbrot, Black-Scholes, Sobel 애플리케이션의 실행 지연 시간은 물리적 영역 수에 도달할 때까지 요청 수 증가에 따라 거의 선형적으로 향상된다.
  • 다중 테넌트 환경에서 FOS는 충돌하는 메모리 액세스 패턴이 존재하더라도, 자원을 동적으로 재할당함으로써 기준 1-Mandel × 1-Sobel 구성 대비 46%의 성능 향상을 달성한다.
  • 개별 응용 프로그램의 탐욕스러운 자원 요청이 있어도 지능적인 런타임 스케줄링 덕분에 거의 최적의 시스템 성능을 유지할 수 있음을 입증했다.
  • FOS 런타임 및 추상화 계층의 오버헤드는 매우 미미하며, 동적 자원 활용도 향상과 재컴파일 감소로 인한 성능 향상에 비해 지배적이다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.