Reference : UG1414

 

안녕하세요 :) 추운 겨울인데 다들 따뜻하게 지내고 계신가요?

 

 

이번 문서에서는 AMD(Xilinx)플랫폼에서 AI inference를 가능하게 해주는 플랫폼인 Vitis-AI에 대한 전반적인 개요를 알아보겠습니다. 공식 문서인 UG1414를 UG1354, AMD 홈페이지 등을 참고하였습니다.

 

개발 flow

1. Optimizing the model (optional)

2. Quantizing the model

3. Compiling the model

4. Deploying and running the model

5. Profiling the model (optional)

 

Vitis-AI Overview

 

Vitis-AI란?

Vitis-AI는 AMD의 FPGA보드나, 가속기에 AI inference를 가능하게 해주는 개발 플랫폼입니다. FPGA에 관한 깊은 지식 없이도, inference model을 보드에 구현해줄 수 있습니다.

 

Vitis-AI Model Zoo에서 이미 AMD 보드에서 최적화를 마친 여러 모델들을 제공하여 reference로 활용이 가능하고, 모델 framework로는 요즘 대세인 Tensorflow나 Pytorch도 지원하고 있습니다.

 

또한, Quantizer에서는 model quantization뿐 아니라, calibration, 그리고 fine-tuning도 지원하고 있습니다. 또한 optimizer를 사용하면 최대 10%미만의 accuracy drop만으로도 model을 pruning할 수 있습니다.

 

Bottleneck을 줄이기 위해 모델 layer-by-layer 분석도 가능하며, Edge에서 Datacenter로 데이터 이동을 쉽게 하기 위해 C++, Python API도 제공하고 있습니다. 

 

또한, 모델을 compile해서 AMD 보드 내의 딥러닝 전용 칩인 DPU core에 집어넣게 되는데, 이를 통해 성능과 전력소모를 모두 최적화 할 수 있게 해줍니다.

 

그럼 Vitis-AI 내의 기능들에 대해 좀 더 자세히 알아보겠습니다.

 

 

Vitis AI Model Zoo

Vitis AI model zoo에는 이미 AMD 보드에서 이미 돌아가는 다양한 AI inference model들이 들어있습니다. ADAS/AD, 얼굴인식, 로보틱스, 데이터센터용 모델 등 이미 최적화 된 다양한 모델들을 레퍼런스 삼는다면, 개발시간을 단축할 수 있다는 장점이 있습니다.

 

Vitis AI Optimizer

Vitis-AI optimizer를 사용한다면, 최소한의 accuracy drop으로 model의 complexity를 5배에서 50배까지 줄일 수 있다고 합니다.

 

Vitis AI Quantizer

Vitis AI Quantizer는 inference model의 32-bit floating-point weights과 activations들을 INT8로 바꿔주는 tool입니다. FP32를 INT8로 바꾸게 되면, 메모리 bandwidth를 줄여 더 빠른 실행속도와 파워소모를 줄일 수 있습니다.

 

Vitis AI Compiler

Vitis-AI compiler는 int8로 바뀐 inference 모델을 보드의 DPU에서 실행시킬 수 있도록 바꿔주는 tool입니다.

 

Vitis AI Profiler

Vitis AI profiler는 model에서 bottleneck을 찾고, 이 bottleneck 구간에서 hardware 사용 방법을 변화시켜 속도를 향상시킬 수 있는 tool입니다. Function call과 runtime 그래프를 분석하고, CPU, DPU, Memory사용량을 분석할 수 있습니다.

 

모델의 code 변화 없이 bottleneck을 줄일 수 있다는 것이 장점입니다.

 

Vitis AI Library

Vitis AI Library는 high level-library와 API들의 집합입니다. 예를 들어, DPU, CPU interface library, 각 모델을 위한 pre, post-processing library, inference model library등이 있습니다. 

 

해당 library를 이용해서 딥러닝이나 FPGA관련 지식이 없어도, 딥러닝 모델을 보드에 구현할 수 있습니다.

 

Vitis AI Runtime(VART)

Vitis-AI runtime을 이용하면 AI model을 AMD platform에서 돌아갈 수 있게 만들 수 있습니다. VART는 C++API, Python API로 구성 되 있습니다.

 

오늘 이렇게 가볍게 Vitis-AI가 뭔지 알아봤는데요!. 다음 글에선 상세한 개발 프로세스에 대해 알아보겠습니다

+ Recent posts