MLIR - AI 연출 가속화

31 Oct 2019

출처 O'Reilly TensorFlow World Presneted with TensorFlow
발표자 Chris Lattner(Google), Tatiana Shpeisman(Google)
한글화 JKIsaacLee
최근 수정일 2019년 11월 5일

MLIR은 세 가지 성격을 가집니다: 데이터, 알고리즘, 그리고 컴퓨팅

  • 데이터는 ML 모델의 지속적인 개선 주기를 추진합니다
  • 연구원들은 새로운 알고리즘 혁신을 통해 새로운 기술과 모델을 제공합니다
  • 컴퓨팅은 데이터셋이 커질수록 모든 것을 확장시켜주며 알고리즘도 이에 따라 확장해야 합니다 MLIR 성격

모델이 점점 더 복잡해지고 있다

  • 모델 크기 : 모델이 클수록 방대한 누적 연산이 필요합니다
  • 모델 복잡성 : 모델 복잡성이 증가함에 따라 하드웨어를 완전히 활용하기가 더 어려워집니다 알파고 제로의 AlexNet
    출처: OpenAI - AI & Compute

무어의 법칙 종말 : 새로운 하드웨어 필요

40년동안의 마이크로프로세서 트렌드 자료

하드웨어 스타트업 및 맞춤형 칩의 폭발적 증가

  • 새로운 ML ASIC을 향해 수십억 달러의 자금
  • 여러 종류의 하드웨어 솔루션의 빠른 확장 거래 및 자금의 주요 성장

엣지 하드웨어의 지속적인 폭발적 성장

엣지 하드웨어의 지속적인 폭발적 성장

이기종 컴퓨팅

  • 이기종 하드웨어는 이제 표준
  • 휴대폰에서 마이크로 컨트롤러로 확장
  • 메모리, 에너지, 성능 및 지연 시간 제약이 가장 중요 이기종 컴퓨팅

데이터 센터

GPU, CPU, TPU, 그 외의 하드웨어 가속기

더 많은 하드웨어 기능 : 복잡성

  • ML 중점의 다양한 하드웨어 가속기
  • 다양한 유형과 아키텍처: 4비트/16비트/32비트…
  • 일관적으로 빠르게 확장 및 축소 불가능한 하드웨어와 추상화의 수준 다양화 TPU, Cerebras 시스템, Graphcore

활기차고 성장하는 소프트웨어 생태계

  • 다양한 프레임워크와 표준 제안
  • 다양한 그래프 구현
  • 각 프레임워크는 각각의 유용성과 성능 우위를 얻으려고 함 프레임워크

하지만, 이 중 어떤 것도 스케일링, 즉 확장이 아니다 - 무엇이 틀렸는가

  • 시스템이 상호 운용되지 않음
  • 모든 하드웨어에서 모든 연산자와 유형을 동일하게 처리할 수 ​​없음
  • 개발자의 유용성이나 하드웨어 디버깅 가능성이 낮음
  • 소프트웨어 및 하드웨어 확장을 보장하기 위한 일반적인 표준이 없음
  • 모두가 고비용으로 같은 물건을 만들고 싶어함
  • 현재 시장의 모든 곳에 조각화가 존재

그래서 원하는 것이 무엇인가 - 공통 인프라: 설계 블록

  • 동급 최고의 그래프 및 컴파일러 기술
  • 학습과 추론, 모바일서버 모두를 위한 설계
  • 엣지에서 서버까지 ML을 확장하는 기능
  • 유형 및 연산자, 사용자 지정 작업에 대한 대표적 표준
  • 프레임워크 독립적
  • 중립 거버넌스

MLIR - 산업은 현재

  • 세계 최대의 하드웨어 파트너
  • 세계 데이터 센터 가속기 하드웨어의 95%
  • 40억 개의 휴대 전화와 셀 수 없는 IoT 장치
  • 거버넌스가 LLVM으로 이전 하드웨어 기업

MLIR이란?

머신러닝 모델을 모든 유형의 하드웨어에서 동일하게 표현하고 실행할 수 있는 새로운 컴파일러 인프라

MLIR의 차별점

  • 최신 컴파일러 기술: MLIR은 단순한 그래프 직렬화 형식이 아니며 이와 유사한 것이 없다
  • 모듈식 및 확장가능: 그래프 표현에서 최적화, 코드 생성에 이르기까지
  • 의견이 없음: 장치에 맞는 표현 수준을 선택

MLIR 컴파일러 인프라

TLDR : 공통 그래프 표현 및 합법적인 프레임 워크, 공통 최적화 및 상태 변환 세트 및 전체 코드 생성 파이프 라인 MLIR 컴파일러 인프라

다양한 접근 가능

필요에 따라 시스템의 다른 구성 요소를 자유롭게 사용할 수 있습니다. MLIR은 TensorFlow Lite와 마찬가지로 그래프 재작성 도구로 모듈화할 수도 있습니다. MLIR 접근

TensorFlow에서의 의미 - 더 나은 설계

  • 동일한 공용 인터페이스: 모든 공용 인터페이스를 유지(GraphDef, SavedModel, Python APIs, HLO, XLA, XRT, xprof, …)
  • 대표적 하드웨어: 모든 하드웨어에서 향상된 유연성 및 연출, 더 높은 성능과 더 안정적
  • 스택 수렴: 스택 수렴 증가, 더 좋고 일관된 UX, 새로운 하드웨어를 쉽게 사용 가능

Python 개발자에게 어떤 의미인가 - 더 나은 TensorFlow 개발자 경험

MLIR은 TensorFlow 개발 경험을 훨씬 향상시킵니다.

  • 다른 하드웨어에서 일관된 모델 사용
  • 즉시 사용 가능한 성능 향상
  • Python 코드 라인으로 다시 실수를 찾아내기

기존 TensorFlow 에러

기존의 TensorFlow 에러 메시지에서는 에러 해석을 하는 데 어려움이 있습니다.

MLIR 에러

MLIR에서는 TF코드 위치, 자신의 코드 위치, 세부 에러 사항으로 나누어 표시합니다.

MLIR: 산업 추진 - LLVM을 통한 중립 거버넌스

MLIR은 비영리 LLVM 재단의 일환으로 승인되었습니다. 이를 통해 업계 전체에서 MLIR을 더욱 빠르게 선택할 수 있습니다.

MLIR은 모든 사람을 위한 ML을 개선하기 위해 글로벌 컴파일러 커뮤니티를 구축하고 있습니다 - 함께, ML의 상태를 발전시킵시다

MLIR은 개방형 인프라를 통해 데이터, 알고리즘 및 하드웨어 혁신을 가속화하여 모델이 올바르게 연출, 실행 및 확장시킵니다.

MLIR GitHub 주소

MLIR에 대한 문의사항 mlir@tensorflow.org