AI 가속을 도와주는 AMD 플랫폼이다. 이 tool에는 최적화된 IP, tools, library, models 등을 제공한다. AMD의 SoC, Alveo Data Center 가속기 카드 등에 사용한다.
reference : Vitis-AI 3.5
AMD open download: pre-built target images integrating the DPU
Vitis AI docker containers: model development tools
Vitis AI github repository: model deployment libraries, setup scripts, examples and reference designs
딥러닝에 최적화 된 프로그램 가능한 엔진이다. DPU는 텐서 레벨의 명령어 집합을 효율적으로 구현한다.
이는 다양한 합성곱 신경망(CNN) 가속에 도움을 준다. ex) VGG, ResNet, GoogLeNet, YOLO, SSD, and MobileNet
AMD에서는 이미 만들어진 DPU 엔진 플랫폼을 제공해줘서 HW 개발 전문지식 없이도 데이타 분석 모델을 테스트하고 개발할 수 있다.
embedded 분야에서는 커스텀 플랫폼화 된 FPGA나 SoC 소자에 있는 프로그래밍 로직에도 사용될 수 있다. 따라서 Vitis나 Vivado 플로우를 둘 다 사용할 수 있다.
Vitis AI Model Zoo
최적화 된 딥러닝 모델들을 가지고 있다. 이 모델은 ADAS/AD, 비디오 감시, 로봇, 데이타 센터 등에 사용될 수 있다. 이러한 학습된 예제들을 딥러닝 가속에 사용할 수 있다.
Vitis AI Model Inspector
이 구성에는 그래프의 연산자와 연산자의 시퀀스가 Vitis AI와 호환되는지 확인하며 검사를 수행한다. 신경망 구조, 연산자, 및 활성화 타입 등을 검사하며 특정 DPU 대상에서 지원되지 않는 연산자를 활용할 수 있는 메커니즘을 제공
Vitis AI Optimizer
희소성의 개념을 활용하여 정확도 저하를 최소화하며 추론에 대한 전체 계산 복잡성을 5배에서 50배로 줄인다. 심층 신경망 토폴로지의 중복성을 그래프에서 pruning으로 줄인다.
Vitis AI Quantizer
32비트 부동 소수점 가중치 및 액티베이션을 INT8과 같이 고정 소수점 정수로 변환하여 예측 정확도를 잃지 않고 컴퓨팅 복잡성을 줄인다. 고정 소수점 네트워크 모델은 부동 소수점 모델에 비해 메모리 대역폭이 적고 속도가 빠르고 전력 효율이 높습니다.
Vitis AI Compiler
AI 양자화 모델을 고효율 명령어 세트 및 데이터 흐름 모델에 매핑한다. 컴파일러는 여러 최적화를 수행한다. 예를 들면 컨볼루션 연산자가 정규화 연산자보다 앞서면 배치 정규화 연산이 컨볼루션과 융합된다. DPU는 여러 차원의 병렬을 지원하므로 효율적인 명령 스케줄링은 그래프에 내재된 병렬성과 데이터 재사용 가능성을 활용하는 데 핵심이다. Vitis AI 컴파일러는 이러한 최적화를 해결한다.
Vitis AI Runtime(VART)
DPU를 소프트웨어 응용 프로그램에 통합하는 것을 지원하는 저수준의 API 함수의 집합이다. XRT(Xilinx Runtime) 위에 구축되어 있으며 데이터 센터와 임베디드 대상 모두에게 통합된 하이레벨의 런타임을 제공한다. Vitis AI Runtime API의 주요 기능은 다음과 같다.
Asynchronous submission of jobs to the DPU.
Asynchronous collection of jobs from the DPU.
C++과 Python API 구현.
multi-threading과 multi-process execution 지원.
Vitis AI Library
VART 위에 구축된 고수준의 라이브러리와 API다. Vitis AI 라이브러리에 포함된 상위 수준의 API는 개발자들에게 모델 배포에 대한 앞선 출발을 제공한다. 발자들이 AMD 플랫폼에 모델을 배포하기 위해 Vitis AI Runtime API를 직접 활용하는 것이 가능하지만 일반적인 애플리케이션의 다양한 요소를 통합하는 기성 예제로 시작하는 것이 종종 더 낫다.
일반적인 애플리케이션 예시
Simplified CPU 기반의 사전 및 사후 처리 구현
애플리케이션 레벨에서 Vitis AI 런타임 통합
Vitis AI Profiler - 병목현상을 찾기 위해 인공지능 응용 프로그램을 프로파일링하고 시각화하며 서로 다른 장치들 사이에서 컴퓨팅 자원을 할당한다. 이 툴은 기능 호출과 실행 시간을 추적할 수 있고 CPU, DPU, 메모리 활용도를 포함한 하드웨어 정보도 수집할 수 있다.
Vitis AI Host (Developer) 요구사항
ROCm GPU : Ubuntu 20.04
CUDA GPU : NVIDIA GPUs supporting CUDA 11.8
CUDA Driver : NVIDIA-520.61.05 or higher for CUDA 11.8
Docker Version : 19.03 or higher, nvidia-docker2
Operating System : Ubuntu 20.04
CPU : Intel i3/i5/i7/i9/Xeon 64-bit CPU
환경설정에 관해서는 다음 장에 추가 예정