Skip to main content
QUICK REVIEW

[논문 리뷰] GCC-Plugin for Automated Accelerator Generation and Integration on Hybrid FPGA-SoCs

Markus Vogt, Gerald Hempel|arXiv (Cornell University)|2015. 08. 28.
Embedded Systems Design Techniques참고 문헌 17인용 수 3
한 줄 요약

이 논문은 기존의 수정되지 않은 임베디드 애플리케이션의 성능 핵심 C 코드 섹션을 자동으로 식별하고, 하이브리드 FPGA-SoC용 하드웨어 가속기들을 생성하는 재타겟가능한 GCC 플러그인을 제안한다. 애너테이션이나 언어 제한 없이 투명한 하드웨어/소프트웨어 분할을 가능하게 함으로써, 표준 벤치마크 코드를 사용하여 Xilinx Zynq 플랫폼에서 최대 5.7배의 빠른 성능 향상을 달성한다.

ABSTRACT

In recent years, architectures combining a reconfigurable fabric and a general purpose processor on a single chip became increasingly popular. Such hybrid architectures allow extending embedded software with application specific hardware accelerators to improve performance and/or energy efficiency. Aiding system designers and programmers at handling the complexity of the required process of hardware/software (HW/SW) partitioning is an important issue. Current methods are often restricted, either to bare-metal systems, to subsets of mainstream programming languages, or require special coding guidelines, e.g., via annotations. These restrictions still represent a high entry barrier for the wider community of programmers that new hybrid architectures are intended for. In this paper we revisit HW/SW partitioning and present a seamless programming flow for unrestricted, legacy C code. It consists of a retargetable GCC plugin that automatically identifies code sections for hardware acceleration and generates code accordingly. The proposed workflow was evaluated on the Xilinx Zynq platform using unmodified code from an embedded benchmark suite.

연구 동기 및 목표

  • 복잡한 하드웨어/소프트웨어 분할 및 도구 체인 제약으로 인해 C 프로그래머들이 하이브리드 FPGA-SoC를 채택하는 데 높은 진입 장벽이 존재하는 문제를 해결하기 위해.
  • 기존 방법들이 베어 메탈 환경, 제한된 언어 서브셋, 또는 특수한 프로그래밍 애너테이션을 요구하는 한계를 극복하기 위해.
  • Xilinx Zynq와 같은 하이브리드 FPGA-SoC 플랫폼에서 수정되지 않은 기존 C 코드에 대해 자동으로 투명하게 가속화를 가능하게 하기 위해.
  • 기존 소프트웨어 개발 워크플로우에 자연스럽게 통합되며 소스 코드 변경 없이도 작동하는 원활한 프로그래밍 워크플로우를 제공하기 위해.

제안 방법

  • 컴파일 중인 C 코드의 중간 표현(IR)을 분석하는 재타겟가능한 GCC 플러그인을 개발한다.
  • 정적 분석과 프로파일링 히وري스틱을 사용하여 계산 집약도와 데이터 재사용성을 중심으로 성능 핵심 영역을 식별한다.
  • 고수준 합성(HLS) 백엔드를 사용하여 식별된 C 코드 섹션에서 하드웨어 가속기용 RTL 코드를 자동으로 생성한다.
  • 생성된 하드웨어 모듈을 FPGA 패브릭에 통합하고, 데이터 전송 및 제어를 위한 소프트웨어 스텁을 생성한다.
  • C 의미 체계와 ABI 호환성을 유지함으로써 표준 임베디드 C 도구 체인과 기존 소프트웨어 스택과의 호환성을 확보한다.
  • Zynq 플랫폼에서 생성된 하드웨어 모듈을 시스템 이미지와 런타임 구성에 자동으로 연결할 수 있도록 지원한다.

실험 결과

연구 질문

  • RQ1애너테이션 없이 언어 제한 없이 GCC 플러그인이 성능 핵심 C 코드 섹션을 자동으로 식별하고 가속화할 수 있는가?
  • RQ2수정되지 않은 C 코드에서 자동으로 하드웨어를 생성하는 방법이 하이브리드 FPGA-SoC에서 성능과 에너지 효율성에 얼마나 기여하는가?
  • RQ3개발자 노력과 가속 오버헤드 측면에서 플러그인 기반 워크플로우는 수동 또는 애너테이션 기반 접근 방식과 비교해 어떻게 다른가?
  • RQ4Zynq 플랫폼에서 실제 임베디드 벤치마크에 플러그인을 적용했을 때 달성 가능한 속도 향상과 자원 활용도는 어느 정도인가?
  • RQ5생성된 하드웨어 가속기는 기존 소프트웨어 개발 및 배포 워크플로우에 원활하게 통합될 수 있는가?

주요 결과

  • GCC 플러그인은 소스 코드 변경 없이 수정되지 않은 임베디드 벤치마크의 성능 핵심 코드 섹션을 성공적으로 식별하고 가속화했다.
  • Xilinx Zynq 플랫폼에서 최대 5.7배의 속도 향상을 달성하여 계산 집약적인 커널에 대해 뚜렷한 성능 향상을 입증했다.
  • 생성된 하드웨어 가속기는 시스템에 정확하게 통합되었으며, 데이터 전송 및 인터페이스 프로토콜 처리가 자동으로 처리되었다.
  • 워크플로우는 C 의미 체계와 ABI 호환성을 유지하여 기존 소프트웨어 스택과 도구 체인과의 원활한 통합을 보장했다.
  • 평가 결과, 표준 벤치마크 세트에서 유래한 실제 임베디드 워크로드에 대해서도 플러그인이 실질적인 배포 조건에서 효과적으로 작동함을 입증했다.
  • 이 방법은 특수한 프로그래밍 기법이나 저수준 하드웨어 지식이 필요 없어 C 프로그래머들이 하이브리드 FPGA-SoC를 보다 쉽게 채택할 수 있도록 진입 장벽을 낮춘다.

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

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

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

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