Tiramisu-Compiler/tiramisu

A polyhedral compiler for expressing fast and portable data parallel algorithms

해결하는 문제

Tiramisu는 고속이고 포터블하며 고도로 최적화된 데이터 병렬 계산을 생성하기 위한 컴파일러입니다. 딥러닝, 텐서 대수, 이미지 처리와 같은 계산 집약적인 작업의 알고리즘을 작성하는 과정을 단순화하고, 개발자가 각 플랫폼용으로 코드를 다시 작성하지 않아도 다양한 하드웨어 아키텍처에서 효율적으로 실행되도록 보장합니다.

작동 방식

컴파일러는 C++ API(및 Python 바인딩)를 사용하여 사용자가 알고리즘과 원하는 최적화를 설명하는 "Tiramisu 표현식"을 정의할 수 있게 합니다. 이는 다면체 모델 기반으로, 복잡한 루프 최적화와 데이터 레이아웃 변환을 수행할 수 있습니다. Tiramisu는 멀티코어 X86 CPU, Nvidia GPU, Xilinx FPGA, MPI를 사용한 분산 시스템 등 특정 타겟용 최적화된 기계어 코드를 생성합니다.

대상 사용자

다양한 컴퓨팅 백엔드에서 하드웨어 활용도를 극대화해야 하는 고성능 컴퓨팅(HPC), 머신러닝, 이미지 처리 분야의 개발자 및 연구자에게 적합합니다.

주요 특징

  • 다중 플랫폼 지원: CPU, GPU, FPGA, 분산 시스템을 타겟으로 합니다.
  • 다면체 모델: 루프 및 데이터 레이아웃 최적화를 위한 고도의 수학적 모델을 활용합니다.
  • 확장성 있는 아키텍처: 새로운 하드웨어용 코드 생성기의 간편한 통합을 설계했습니다.
  • 유연한 API: 알고리즘과 최적화를 표현하기 위한 C++ API를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트