devitocodes/devito

DSL and compiler framework for automated finite-differences and stencil computation

해결하는 문제

Devito는 유한 차분 및 이미지 처리와 같은 스텐실 계산을 위한 고도로 최적화된 계산 커널을 쉽게 생성할 수 있도록 설계되었습니다. CPU, GPU, 멀티노드 클러스터에서 높은 성능을 달성하기 위해 수동으로 저수준의 플랫폼 전용 코드를 작성할 필요가 없습니다.

작동 방식

Devito는 SymPy 기반의 함수형 언어를 사용하여 사용자가 문제의 사양을 기호적으로 정의할 수 있도록 합니다. 이후 자동 코드 생성과 Just-in-Time (JIT) 컴파일을 활용하여 이러한 고수준 정의를 최적화된 저수준 코드로 변환합니다. 컴파일러는 입력을 자동으로 분석하여 SIMD 벡터화, OpenMP/OpenACC 병렬화, 멀티노드 분산을 위한 MPI와 같은 최적화를 적용합니다.

대상 사용자

편미분 방정식, 이미지 처리, 기계학습을 다루며 다양한 하드웨어 플랫폼에서 복잡한 스텐실 연산을 효율적으로 실행해야 하는 연구자 및 엔지니어.

주요 특징

  • 자동 최적화: SIMD, OpenMP, OpenACC, MPI를 사용하여 병렬 코드를 자동 생성.
  • 기호적 사양: 함수형 언어를 사용하여 유한 차분 연산자와 텐서 결합을 표현.
  • 하드웨어 유연성: CPU, GPU, 클러스터에서 원활하게 실행 가능.
  • ML 통합: PyTorch 및 TensorFlow와 같은 인기 있는 프레임워크와 통합.
  • 사용자 정의: 사용자 정의 스텐실, 스테거레이트 그리드, 성능 튜닝을 위한 오토튜닝 프레임워크 제공.

관련

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