Skip to main content
QUICK REVIEW

[논문 리뷰] TSFC: a structure-preserving form compiler

Miklós Homolya, Lawrence Mitchell|arXiv (Cornell University)|2017. 05. 10.
Parallel Computing and Optimization Techniques참고 문헌 32인용 수 6
한 줄 요약

TSFC는 유한요소법을 위한 구조를 유지하는 형식 컴파일러로, 컴파일 전반에 걸쳐 약한 형식 표현의 구조적 정합성을 유지함으로써 고수준 최적화를 가능하게 한다. 유한요소 구조를 텐서 대수로 내림내리는 단계와 연산을 스케줄링하는 단계로 나누어 두 단계의 프로세스를 적용함으로써, 이전 컴파일러들보다 텐서 구조를 더 오래 유지하여 복잡한 문제와 비아핀형 문제에서 뛰어난 컴파일 타임 성능을 달성한다.

ABSTRACT

A form compiler takes a high-level description of the weak form of partial differential equations and produces low-level code that carries out the finite element assembly. In this paper we present the Two-Stage Form Compiler (TSFC), a new form compiler with the main motivation to maintain the structure of the input expression as long as possible. This facilitates the application of optimizations at the highest possible level of abstraction. TSFC features a novel, structure-preserving method for separating the contributions of a form to the subblocks of the local tensor in discontinuous Galerkin problems. This enables us to preserve the tensor structure of expressions longer through the compilation process than other form compilers. This is also achieved in part by a two-stage approach that cleanly separates the lowering of finite element constructs to tensor algebra in the first stage, from the scheduling of those tensor operations in the second stage. TSFC also efficiently traverses complicated expressions, and experimental evaluation demonstrates good compile-time performance even for highly complex forms.

연구 동기 및 목표

  • 유한요소 코드 생성 과정에서 고수준 표현 구조를 유지함으로써 고도의 최적화를 가능하게 하는 도전 과제를 해결한다.
  • 비아핀형 기하 구조 매핑과 고차원 요소를 포함한 복잡한 유한요소 형식에 대해 컴파일 타임 성능을 향상시킨다.
  • 유한요소 구조를 텐서 대수로 내림내리는 것과 그 연산을 스케줄링하는 것을 분리하여 확장성과 최적화를 위한 명확한 분리를 구현한다.
  • 지역 텐서 내 블록 구조를 유지함으로써 이산 갈레르킨 방법의 효율적 컴파일을 가능하게 한다.
  • 복잡한 형식에 대해서도 컴파일 시간이 1초 이내를 유지함으로써 상호작용 기반 과학 계산 워크플로우를 지원한다.

제안 방법

  • 두 단계 컴파일 파이프라인 도입: 먼저 UFL 표현식을 텐서 대수 중간 표현으로 변환하고, 그 다음에 텐서 연산을 스케줄링한다.
  • 이산 갈레르킨 형식에서 국소 텐서의 부분 블록에 기여하는 요소를 분리하는 구조를 유지하는 방법을 구현한다.
  • 특히 복잡한 형식과 비아핀형 셀에 대해 컴파일 오버헤드를 최소화하기 위해 효율적인 표현 순회 알고리즘을 사용한다.
  • 텐서 대수 내림내리기와 연산 스케줄링을 분리하여 스케줄링 최적화를 독립적으로 수행하거나 후속 도구와 통합할 수 있도록 한다.
  • UFL의 고수준 약한 형식 및 이산 함수 공간 기술을 입력으로 사용하여 컴파일 전반에 걸쳐 수학적 구조를 유지한다.
  • C 및 FFC 호환 표현을 모두 지원하여 존재하는 FEniCS/Firedrake 스택에 최소한의 영향으로 통합할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1유한요소 형식 컴파일러는 어떻게 컴파일 전반에 걸쳐 약한 형식의 구조적 의미를 유지함으로써 고수준 최적화를 가능하게 할 수 있는가?
  • RQ2기존 컴파일러인 FFC가 복잡하거나 비아핀형 유한요소 형식을 처리할 때 발생하는 성능 저하 요인은 무엇이며, 이를 어떻게 완화할 수 있는가?
  • RQ3두 단계 컴파일 접근 방식은 형식 컴파일러의 유지보수성과 최적화 기회에 얼마나 기여하는가?
  • RQ4구조를 유지하는 컴파일링 방식이 고차원 및 이산 갈레르킨 유한요소 문제의 컴파일 시간을 크게 줄일 수 있는가?
  • RQ5형식 복잡도 증가에 따라 TSFC의 성능은 UFLACS 및 FFC 변종 대비 컴파일 타임 확장성 측면에서 어떻게 비교되는가?

주요 결과

  • TSFC는 UFLACS 및 FFC와 유사한 수준의 컴파일 시간을 달성하지만, 복잡한 형식에 대해 훨씬 우수한 스케일링 성능을 보인다.
  • 가장 복잡한 테스트 케이스(3D에서의 Holzapfel-Ogden 모델)의 경우 TSFC는 3.7초 내에 컴파일을 완료하며, 일부 최적화를 비활성화하면 2.2초까지 단축될 수 있다.
  • 수정된 FFC 적분 표현 방식(flat_bendy)은 3D Holzapfel-Ogden 케이스에서 64GB 메모리로 6시간 동안 메모리 부족으로 실패했으며, 이는 확장성 문제를 시사한다.
  • TSFC의 컴파일 타임 성능는 매우 복잡한 형식에 대해서도 여전히 수용 가능한 수준을 유지하며, 표준 CPU에서 모든 테스트 케이스가 4초 이내에 컴파일된다.
  • 두 단계 설계 덕분에 내림내리기와 스케줄링 간의 명확한 분리가 가능해져 향후 최적화 및 COFFEE와 같은 도구와의 통합을 용이하게 한다.
  • 특히 비아핀형 기하 구조 매핑과 고차원 요소를 다룰 경우, 기존 FFC 표현 방식에 비해 TSFC가 컴파일 타임 효율성에서 뛰어난 성능을 보인다.

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

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

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

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