Skip to main content
QUICK REVIEW

[논문 리뷰] Inferring Program Transformations from Type Transformations for Partitioning of Ordered Sets

Wim Vanderbauwhede|ENLIGHTEN (Jurnal Bimbingan dan Konseling Islam)|2015. 04. 21.
Logic, programming, and type systems참고 문헌 7인용 수 3
한 줄 요약

이 논문은 벡터 유형의 유형 수준 전환으로부터 map, foldl, zip 연산에 대한 변환을 유추하여 FPGA에서 스트리밍 데이터 처리를 위한 정확한 유도 프로그램 변환을 자동으로 유도하는 방법을 제시한다. 총 크기와 순서를 유지함으로써, 유형 재구성, 매핑, 차원 축소를 통해 의미적으로 동일한 최적화된 프로그램 변종을 체계적으로 생성할 수 있으며, 형식적 정확성 조건을 통해 의미 보존을 보장한다.

ABSTRACT

In this paper I introduce a mechanism to derive program transforma- tions from order-preserving transformations of vector types. The purpose of this work is to allow automatic generation of correct-by-construction instances of programs in a streaming data processing paradigm suitable for FPGA processing. We show that for it is possible to automatically derive instances for programs based on combinations of opaque element- processing functions combined using foldl and map, purely from the type transformations.

연구 동기 및 목표

  • FPGA에서 스트리밍 데이터 처리를 위한 최적화된, 정확한 유도 프로그램 변종을 자동으로 생성하는 것.
  • 순서가 지정된 벡터 유형에 대한 유형 전환과 해당 프로그램 전환을 연결하는 형식적 메커니즘을 수립하는 것.
  • 유형 수준의 재구성과 매핑을 통해 플랫폼 특화 최적화를 가능하게 하면서도 계산 의미를 유지하는 변환을 보장하는 것.
  • 비용 모델과 시뮬레이티드 어닐링을 사용하여 최적의 프로그램 인스턴스를 자동으로 선택하는 것.
  • 크기가 주어진 유형 집합 내에서, 유형에 대한 변환(S, M, R)이 가역적이며 닫힘 성질을 유지하는지 보여주는 것.

제안 방법

  • 의존 유형을 사용하는 형식적 유형 체계를 사용하며, 벡터 유형은 총 크기 ∏ki를 갖는 [a]<k1><k2>...<kn>로 표현된다.
  • 세 가지 핵심 유형 전환을 정의한다: S(싱글턴 벡터), M(유형 매개변수에 대한 매핑), R(총 크기를 유지하면서 크기를 재구성)와 각각의 역전환.
  • 프로그램 전환은 프로그램의 유형 서명에 대해 역유형 전환을 적용하여 도출되며, 이는 유형 일관성과 정확성을 보장한다.
  • 각 연산(map, foldl, zip)에 대해, 변환된 유형의 유형 추론과 구조적 분석을 통해 해당 함수 전환을 도출한다.
  • 정확성은 형식적 보조정리에 의해 보장되며, 예를 들어 f가 자체로 fold인 경우, 평탄화된 벡터에 대해 f’을 foldl하는 것은 중첩된 벡터에 대해 f를 foldl하는 것과 동일하다.
  • 비용 모델과 시뮬레이티드 어닐링을 사용하여 FPGA 배포를 위한 가장 효율적인 프로그램 변종을 자동으로 선택하는 데 사용된다.

실험 결과

연구 질문

  • RQ1map, foldl, zip에 대한 프로그램 전환는 벡터 유형의 유형 전환로부터 체계적으로 도출될 수 있는가?
  • RQ2유형 전환이 원래 계산의 의미를 유지하는 조건은 무엇인가?
  • RQ3재구성 및 매핑과 같은 유형 수준 연산을 사용하여 정확한 유도 프로그램 변종을 어떻게 생성할 수 있는가?
  • RQ4변환된 프로그램과 원본 프로그램 간의 동치성에 필요한 충분조건은 무엇인가?
  • RQ5전체 전환 파이프라인은 가역적이며, 유형 연산의 복합에 대해 닫힘 성질을 유지하는가?

주요 결과

  • 크기가 n인 벡터 유형 집합은 S, M, R 전환에 대해 닫혀 있으며, 이러한 전환의 모든 조합은 가역적이다.
  • map 전환의 경우, 유형 전환의 역전환을 함수의 인수에 적용하여 도출된 함수 f’이 의미를 유지한다.
  • foldl의 경우, 전환 f’은 f’ acc x = f acc (toVector k x)로 정의되며, 원래의 f가 fold인 경우 동치성을 보장한다.
  • fold 동치성의 충분조건은 f = fold h인 것으로, 이 경우 평탄화된 벡터에 대해 f’을 foldl하는 것은 중첩된 벡터에 대해 f를 foldl하는 것과 동일한 결과를 낳는다.
  • 이 방법은 비용 모델링을 통해 FPGA 플랫폼에 최적화된 프로그램 변종을 자동으로 도출할 수 있으며, 형식적 기반의 보조정리들을 통해 map, foldl, zip에 대한 전환의 정확성을 보장한다.
  • 이 접근법은 map, foldl, zip에 대한 전환의 정확성을 보장하는 보조정리들을 통해 형식적으로 기반을 다지고 의미 보존을 보장한다.

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

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

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

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