Skip to content

AI Compiler

최근 AI가 핵심 화두로 떠오르면서 AI 실행을 가속화 할 수 있는 수많은 AI 가속기 (NPU, PIM 등)가 등장하고 있다. AI 가속기를 효과적으로 활용하기 위해서는 가속기의 특성에 맞춰 모델을 최적화하고 가속기 명령어를 사용하도록 개발을 해야한다. 하지만, 대부분의 AI 가속기는 해당 과정의 자동화를 지원하지 않기 때문에 개발자가 직접 해결해야 하며 이는 Programmability를 낮추어 개발비용을 증가시킨다. 추가적으로, AI 가속기마다 특성이 다르기 때문에 이러한 문제는 더 심각해진다. 본 연구실에서는 해당 문제를 해결하기 위해 통합 AI 컴파일러에 대한 연구를 진행한다. 통합 AI 컴파일러는 일반적인 형태의 AI 모델을 특정 AI 가속기에 최적화된 형태로 컴파일해주며 이를 통해 개발비용을 낮추고 AI 가속기의 활용도를 극대화시킬 수 있다.

AI Compiler 개요#

AI Compiler는 입력된 AI 모델을 분석하여 특정 AI 가속기에 맞게 최적화해야 하기 때문에 일반적으로 다음과 같은 구조를 가진다.

ai_compiler_structure

LLVM 기반의 구조로 AI 모델을 IR로 변환한 후, IR 단계에서 최적화를 수행하고 특정 AI 가속기의 API를 호출하도록 코드를 변환한다. 이후, 타겟 AI 가속기 라이브러리와 함께 빌드하여 타겟 AI 가속기를 활용하는 실행 파일을 생성한다.

AI Compiler 관련 연구#

본 연구실은 앞선 AI Compiler 구조를 기반으로 통합 AI Compiler의 다음 내용에 대한 연구를 수행한다.

  • 통합 AI 컴파일러 프레임워크
  • AI 가속기 기반 모델 최적화

통합 AI 컴파일러 프레임워크#

수많은 AI 가속기들 중에서 서로 비슷한 특성을 가지고 있는 AI 가속기들이 있는 반면 서로 다른 특성을 가지고 있는 AI 가속기들도 있다. 이렇게 AI 가속기들의 특성이 서로 다르기 때문에 입력 AI 모델을 특정 AI 가속기에 맞게 한번에 최적화하고 컴파일하기란 쉽지 않다. 이러한 경우, 한번에 컴파일하는 것이 아닌 계층을 나누고 단계적으로 컴파일을 해나가는 것이 효과적이다. 따라서, AI 가속기를 여러 계층으로 추상화하여 단계적으로 컴파일을 수행하는 프레임워크가 필요하다.

본 연구실은 통합 AI 컴파일러 프레임워크와 관련하여 다음과 같은 연구를 수행한다.

  • MLIR (Multi Level IR) 기반 통합 AI 컴파일러 프레임워크 연구

ai_compiler_mlir_structure

AI 가속기 기반 모델 최적화#

대부분의 AI 가속기는 MAC 등의 연산 유닛을 대량으로 가지고 있어 연산의 병렬화를 통해 모델 추론 및 학습을 가속한다. 따라서, AI 가속기를 효율적으로 활용하기 위해서는 AI 모델의 병렬화가 중요하다. 하지만 개발자가 직접 AI 모델마다 AI 가속기에 맞춰서 병렬화를 하기는 어렵다. 그렇기 때문에 타겟 AI 가속기에 따라 AI 모델을 병렬화하고 이를 AI 가속기에 할당하는 자동화 방법이 필요하다.

본 연구실은 AI 가속기 기반 모델 최적화와 관련하여 다음과 같은 연구를 수행한다.

  • 타겟 AI 가속기 (PIM) 기반 모델/연산 병렬화 연구

ai_parallelism

참고 문헌#