libisl 라이브러리

Dongho Park·2023년 9월 18일
0

Compiler

목록 보기
4/4

Space

Space는 변수들의 집합과 그 차원을 나타냄
Space는 해당 변수들의 관계와 어떤 차원에서 작동하는지를 정의함.
예를 들어, 두 입력 차원과 한 출력 차원이 있는 공간은 2 -> 1 형태를 가집니다.
이는 맵이나 세트를 정의할 때 사용되는 기본 틀입니다.

Example
2 -> 1

isl_space

Set

세트는 다차원 정수 좌표의 집합을 나타냅니다.
예를 들어, 2차원 평면 상의 직사각형 영역을 나타내는 세트는 이러한 좌표의 집합으로 생각할 수 있습니다.
세트는 기본적으로 선형 부등식과 같은 제약 조건에 의해 정의됩니다.
a.k.a Iteration Domain

  • isl_basic_set
  • isl_set
  • isl_union_set

isl_union_set

isl_union_set *domain = isl_union_set_read_from_str(
      ctx, "{ S[i, j] : 0 <= i < 32 and 0 <= j < 3 }"
);

Map

맵은 두 세트 간의 관계를 나타냄.
맵은 입력 세트에서 출력 세트로의 매핑을 나타내므로, 입력 튜플에서 출력 튜플로의 함수로 생각할 수 있음
a.k.a Relation

  • RAR, RAW, WAW, WAR과 같은 Dependency를 표현
  • Excution Schdule을 표현

Example
{ [x, y] -> [x+1, y+2] : x >= 0 and y >= 0 }

  • isl_map
  • isl_basic_map
  • isl_union_map
profile
컴파일러에 관심이 많은 하드웨어 개발자

0개의 댓글