Skip to main content
QUICK REVIEW

[논문 리뷰] DLVM: A modern compiler infrastructure for deep learning

Richard Wei, Vikram Adve|arXiv (Cornell University)|2017. 11. 08.
Parallel Computing and Optimization Techniques인용 수 2
한 줄 요약

DLVM는 선형 대수 IR, 자동 미분을 위한 수반 코드 생성, 도메인 특화 최적화, LLVM 기반 GPU 코드 생성을 사용하는 현대적이고 모듈식인 딥러닝 컴파일러 인프라이다. 스위프트에 통합된 단계적 DSL로서 구현되어 안전하고 고성능이며 조합 가능한 딥러닝 프레임워크를 가능하게 하며, 강력한 형식 안정성과 표현력을 제공한다.

ABSTRACT

Deep learning software demands reliability and performance. However, many of the existing deep learning frameworks are software libraries that act as an unsafe DSL in Python and a computation graph interpreter. We present DLVM, a design and implementation of a compiler infrastructure with a linear algebra intermediate representation, algorithmic differentiation by adjoint code generation, domain-specific optimizations and a code generator targeting GPU via LLVM. Designed as a modern compiler infrastructure inspired by LLVM, DLVM is more modular and more generic than existing deep learning compiler frameworks, and supports tensor DSLs with high expressivity. With our prototypical staged DSL embedded in Swift, we argue that the DLVM system enables a form of modular, safe and performant frameworks for deep learning.

연구 동기 및 목표

  • 기존 딥러닝 프레임워크의 한계를 해결하기 위해, 이는 종종 안전하지 않으며 단일 구조이고 런타임 해석을 통해 실행되는 파이썬 DSL로 구축되어 있다.
  • LLVM를 영감으로 삼은 모듈식이고 확장 가능한 컴파일러 인프라를 설계하여 고수준 텐서 DSL을 강력한 형식 안정성과 함께 지원한다.
  • LLVM의 최적화 및 코드 생성 파이프라인을 활용하여 GPU용 효율적이고 정확하며 이식 가능한 코드 생성을 가능하게 한다.
  • 수반 코드 생성을 통한 알고리즘 미분을 지원하여 기울기 계산의 정확성과 성능을 보장한다.
  • 스위프트의 단계적 DSL이 딥러닝 시스템에서 높은 표현력과 성능을 동시에 달성할 수 있음을 입증한다.

제안 방법

  • 텐서 연산을 자연스럽게 표현하고 고수준 최적화를 가능하게 하는 선형 대수 IR을 설계한다.
  • 전진 계산에서 기울기 코드를 체계적으로 유도하는 수반 코드 생성을 통해 알고리즘 미분을 구현한다.
  • 융합, 레이아웃 변환, 타일링과 같은 도메인 특화 최적화를 통합하여 성능을 향상시킨다.
  • LLVM의 인프라를 활용하여 코드 생성을 수행하여 이식 가능하고 효율적인 GPU 커널 컴파일을 가능하게 한다.
  • 딥러닝 모델을 강력한 형식 안정성과 모듈성으로 표현할 수 있는 스위프트에 통합된 단계적 DSL을 구축한다.
  • 각 단계(FE, IR, 최적화, 코드 생성)가 조합 가능하고 재사용 가능한 모듈식 컴파일러 파이프라인을 설계한다.

실험 결과

연구 질문

  • RQ1선형 대수 IR 기반 컴파일러 인프라는 딥러닝 워크로드에서 높은 성능과 높은 표현력을 동시에 달성할 수 있는가?
  • RQ2수반 코드 생성은 소스 투 소스 또는 연산자 오버로딩 기반 자동 미분 기법과 비교해 정확성과 성능 측면에서 어떻게 다른가?
  • RQ3모듈식 컴파일러 스택 내의 도메인 특화 최적화는 추론 및 훈련 효율성을 어느 정도 향상시킬 수 있는가?
  • RQ4시스템 언어인 스위프트의 단계적 DSL은 저수준 코드의 안정성과 성능을 유지하면서도 고수준 DSL의 생산성을 유지할 수 있는가?
  • RQ5실제로 DLVM의 모듈성과 일반성은 단일 구조의 딥러닝 프레임워크와 비교해 어떻게 다른가?

주요 결과

  • DLVM의 선형 대수 IR는 강력한 형식 안정성과 함께 고수준, 조합 가능하고 최적화 가능한 딥러닝 모델 표현을 가능하게 한다.
  • 수반 코드 생성은 잘못된 기울기 계산의 위험을 피하면서도 정확하고 효율적인 기울기 계산을 보장한다.
  • 계산 융합 및 레이아웃 인식 변환과 같은 도메인 특화 최적화는 GPU에서 커널 성능을 크게 향상시킨다.
  • 스위프트의 단계적 DSL은 표현력을 포기하지 않고도 고수준, 안전하고 고성능인 딥러닝 프레임워크를 달성할 수 있음을 입증한다.
  • LLVM의 최적화 및 코드 생성 파이프라인을 재사용함으로써 DLVM는 경쟁력 있는 성능을 갖춘 이식 가능하고 효율적인 GPU 코드 생성을 달성한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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