[AI 컴파일러] AI 반도체 지원 컴파일러
- MLIR (Multi-Level Intermediate Representation)
- 소프트웨어와 하드웨어의 다양한 수준에서 컴파일러 개발을 최적화하기 위해 설계된 유연하고 확장 가능한 컴파일러 인프라
- 다양한 수준의 추상화를 지원하는 IR(Intermediate Representation) 시스템을 제공
- 이기종 컴퓨터 환경에서 필요한 다양한 고수준 최적화와 IR 간 변환이 가능함
- 특징 : 다중 수준 추상화, 모듈러 설계, 확장성, 통합 백엔드 지원
- 사용자가 정의한 Dialect를 통해 특정 도메인이나 언어에 특화된 중간 표현을 설계할 수 있음
- 머신러닝, 고성능 컴퓨팅, GPU 및 TPU 등 하드웨어 아키텍처 ~양자 컴퓨팅 및 고수준 합성같은 다양한 영역에서 활용됨
- tensorflow같은 머신러닝 프레임워크의 컴파일러 백엔드로 사용되고 있음
- 고수준 추상화 → 저수준 세부 레벨로의 변환 지원 : 각 레벨은 자체적인 최적화 및 분석 패스를 가지고 있음, 복잡한 최적화와 변환 작업을 효율적으로 수행가능함
- IREE(Intermediate Representation Execution Environment)
- Google에서 개발한 오픈소스 프로젝트
- 머신러닝 모델의 최적화와 실행을 위한 컴파일러 및 런타임 환경
- 다양한 하드웨어 플랫폼에서 고성능으로 머신러닝 모델을 실행할 수 있도록 하는것
- MLIR 기반의 컴파일러 인프라를 사용
- JIT(Just-In-Time) 컴파일과 AOT(Ahead-Of-Time) 컴파일을 모두 지원, 유연성과 높은 실행 성능
- CPU, GPU, DSP(Digital Signal Processor), TPU 등 지원, 특정 하드웨어에 최적화된 코드 생성 가능
- 크로스 플랫폼 지원
- JAX, ONNX, PyTorch, TensorFlow 및 TensorFlow Lite와 같은 인기 있는 머신러닝 프레임워크를 지원
- 다양한 디버깅 및 프로파일링 도구를 사용하여 CPU 및 GPU 성능을 최적화, ML모델 구축 및 배포 가능
- TVM(Tensor Virtual Machine)
- 다양한 하드웨어 플랫폼에서 딥러닝 모델을 최적화하고 배포하기 위한 오픈소스 머신러닝 컴파일러 스택
- CPU, GPU, FPGA, ASIC 등
- 딥러닝 성능 극대화, 모델 다양한 디바이스에 쉽게 배포할 수 있음
- Relay라는 고수준의 IR을 사용하여 다양한 딥러닝 프레임워크의 모델을 수용하고 변환
- AutoTVM라는 자동 최적화 도구, 하드웨어 맞춤 최적의 커널을 자동으로 검색 및 튜닝 가능
- 크로스 플랫폼을 지원
- VTA(Versatile Tensor Accelerator) 제공 : FPGA와 같은 프로그래머블 하드웨어에서 직접 하드웨어 가속기를 설계하고 프로그래밍할 수 있는 프레임워크
- TensorFlow, PyTorch, MXNet, Keras 등
- XLA(Accelerated Linear Algebra)
- Tensorflow와 같은 딥러닝 프레임워크에서 기계학습 모델의 성능을 최적화, 실행속도 높임
- 기계 학습 연산을 최적화하고 다양한 하드웨어 가속기에서 효율적으로 실행할 수 있는 저수준 코드를 생성
- 계산 그래프를 분석하고 최적화하여 중복된 연산을 제거하고, 연산 순서를 재배열하며, 연산을 병합함으로써 실행 효율성을 극대화
- NVIDIA GPU, TPU, CPU 등 지원
- JIT 컴파일, AOT컴파일 지원
- PyTorch 및 JAX 같은 다른 프레임워크를 지원하기 위해 OpenXLA프로젝트로 확장
출처 : 김용주, 하영목, & 정영준. (2024). 최신 인공지능 반도체 및 컴파일러 지원 기술 동향. [ETRI] 전자통신동향분석, 39(5), 1-11.
This post is licensed under CC BY 4.0 by the author.