[ICCAD'22] HECTOR

HECTOR: A Multi-level Intermediate Representation for Hardware Synthesis Methodologies

Ruifan Xu, et.al. on October 29, 2022
doi.org
obsidian에서 수정하기

Abstract

(서론):
하드웨어 합성은 합성 가능한 레지스터 전달 레벨(RTL) 코드를 생성하기 위한 복잡한 과정을 필요로 함.
HLS는 고수준 설명을 자동으로 하드웨어 설계로 변환할 수 있으며, 하드웨어 생성기는 특정 응용 프로그램을 위한 도메인 특화 언어 및 합성 흐름을 채택.

(한계):

  1. HLS 도구의 구현은 일반적으로 RTL의 약한 표현력과 낮은 추상화 수준 때문에 상당한 엔지니어링 노력이 필요
  2. 서로 다른 합성 도구들은 서로 다른 수준의 중간 표현(IR)과 변환을 채택

(방법론): 통합된 IR은 다양한 합성 방법론을 탐구하여 엔지니어링 비용을 낮추고 경쟁력 있는 하드웨어 설계를 신속하게 얻을 수 있는 좋은 방법
하드웨어 합성 방법론을 위한 통합된 중간 표현을 제공하는 두 가지 수준의 IR을 제안:

  1. 고수준 IR은 타이밍 정보가 주석으로 달린 제어 그래프와 함께 계산을 바인딩
  2. 저수준 IR은 하드웨어 모듈과 그들 간의 탄력적인 상호 연결을 간결하게 설명하는 방법을 제공

다중 레벨 컴파일러 인프라스트럭처(MLIR)를 기반으로 구현된 Hector의 IR은 합성 가능한 RTL 설계로 변환될 수 있음

표현력과 유연성을 입증하기 위해 Hector를 기반으로 세 가지 합성 접근 방식을 구현:

  1. 고수준 합성(HLS) 도구
  2. 시스톨릭 배열 생성기
  3. 하드웨어 가속기

(결론): Hector의 HLS 접근 방식으로 생성된 하드웨어는 최첨단 HLS 도구로 생성된 것과 비교할 만하며, 나머지 두 가지 경우는 성능과 생산성 면에서 HLS 구현을 능가합니다.

Figure

Figure 1: - Static and dynamic scheduling in high level synthesis.

Figure 2: - The design of ToR IR. ToR IR consists of topology and functional operations. In (a), topology describes the time graph with supplementary information on edges, where all edges and nodes are set “static” as default. In (e), operations are bound on the graph according to the syntax in (d). The binding situation determines the types of nodes on the time graph, as shown in (b). (c) shows the restrictions the node types set on the graph structure.

Figure 3: - Allocate-assign mechanism and three styles of com-ponents in HEC. (a) shows an example for unit allocation, where hec.primitive allocates a “muli” unit named “m” with three ports, and hec.wire declares a wire, which is commonly used in HDLs. (b) shows the usage of combinational operations and hec.assign for signal delivery among ports and wires. (c)-(e) presents three component styles.

Figure 4: - An overall example for compiling Hector to hardware. The original module with hybrid manners is split into two modules with dynamic and pipeline manners separately, and the connection between them is represented as a function call. Through resource and register sharing, pure ToR modules are transformed to HEC components containing compute units and registers. RTL implementations are generated by mapping ports and constructing controllers with the same functionality.

Figure 5: - A 2×n by n×2 matrix multiplication systolic array described in HEC. The interconnection between PEs is described as hec.assign.

Figure 6: - Cycle count comparison between different implementations of matrix multiplication.

Table

Table 1:- Timing and Resource Comparison between Hector and Vitis HLS (Vitis), Dynamatic (DYN)

Table 2:- Timing and Resource Comparison between Hector’s static scheduling (S), dynamic scheduling (D) and hybrid scheduling (H)

Table 3:- The comparison between Vitis HLS and Hector.