Xilinx Versal AI Edge Series를 사용하여 AI 모델을 FPGA에 내장하려면, Xilinx의 Vitis AI 툴을 활용하는 것이 가장 일반적인 방법입니다. Vitis AI는 AI 모델을 FPGA에 최적화하여 배치할 수 있게 해주는 툴킷으로, TensorFlow, PyTorch 등의 학습된 모델을 FPGA에 적합한 형태로 변환합니다.
AI 모델을 Xilinx Versal AI Edge FPGA에 올리는 과정 (가장 쉬운 예제)
1. 준비물
- Xilinx Versal AI Edge FPGA (예: Versal AI Core 시리즈)
- Vitis AI 툴킷 (Xilinx 공식 웹사이트에서 다운로드)
- TensorFlow/PyTorch 모델 (이미 학습된 모델)
- Vitis AI Docker 환경 (Vitis AI는 Docker를 사용하여 개발 환경을 설정)
2. 환경 준비
- Vitis AI 설치: Vitis AI를 사용하려면 먼저 Vitis AI 툴킷을 설치해야 합니다. Vitis AI는 Docker 환경에서 실행되므로 Docker를 먼저 설치하고, Xilinx에서 제공하는 Docker 이미지를 사용하여 Vitis AI 환경을 설정할 수 있습니다.
# Docker 이미지 다운로드 (Vitis AI Docker 환경)
docker pull xilinx/vitis-ai:latest
- Vitis AI Docker 실행: Docker 컨테이너에서 Vitis AI 툴킷을 실행합니다.
3. AI 모델 준비 (TensorFlow 예제)
이미 학습된 모델이 있어야 합니다. 예를 들어, TensorFlow로 학습된 이미지를 분류하는 모델을 사용한다고 가정합니다.
- TensorFlow 모델을 학습하고 SavedModel 형태로 저장합니다.
- 예시 모델:
import tensorflow as tf
from tensorflow.keras import layers, models
# 간단한 CNN 모델
model = models.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 모델 컴파일 및 훈련 (여기서는 훈련 데이터가 필요)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(train_data, train_labels, epochs=5)
# 모델 저장
model.save('saved_model/my_model')
4. 모델 최적화 (Vitis AI)
- Vitis AI Optimizer를 사용하여 모델을 FPGA에 적합하게 최적화합니다. 이 단계에서 Quantization (양자화)와 Pruning (가지치기)을 통해 모델의 크기를 줄이고 FPGA에서의 연산 성능을 향상시킵니다.
# Vitis AI Optimizer를 이용하여 모델 최적화
vitis_ai_optimizer --model saved_model/my_model --output_dir optimized_model
5. 모델 컴파일 (Vitis AI Compiler)
최적화된 모델을 FPGA에서 실행 가능한 형태로 컴파일합니다. 이 단계에서는 Xilinx의 AI 컴파일러가 모델을 DPU (Deep Processing Unit)에서 실행할 수 있도록 변환합니다.
# Vitis AI Compiler를 이용하여 모델을 컴파일
vitis_ai_compiler --model optimized_model --arch /path/to/arch.json --output_dir compiled_model
arch.json은 FPGA 아키텍처에 맞는 DPU 설정을 담고 있는 파일로, 사용 중인 Xilinx FPGA에 적합한 설정을 지정해야 합니다.
6. FPGA에 모델 배치 (Xilinx FPGA)
- Xilinx Vitis IDE나 Vitis AI API를 사용하여, 최종적으로 컴파일된 모델을 FPGA에 배치합니다.
- FPGA에서 DPU를 활용하여 AI 모델을 실행합니다.
# DPU에 모델 배치 및 실행
vitis_ai_run --model compiled_model --dpu /path/to/dpu.bit
7. 테스트 및 실행
이제 FPGA에 모델이 배치되었습니다. 실제 테스트를 진행하여, 모델이 제대로 동작하는지 확인합니다. 테스트는 FPGA에서 실행되는 AI 추론을 통해 진행되며, 실시간으로 데이터를 처리합니다.
# FPGA에서 실시간 테스트 실행
./run_inference --model compiled_model --input_data /path/to/input_data
8. 결과 확인
- FPGA에서 실행된 AI 모델의 결과를 확인합니다.
- 결과는 분류된 이미지 또는 처리된 데이터로 반환됩니다.
'SW 개발 공부 > FPGA' 카테고리의 다른 글
[FPGA AI] 1. DPU란? (0) | 2025.02.20 |
---|---|
FPGA 문법 (1) | 2024.01.04 |
[FPGA]예제 분석(AXI GPIO) (0) | 2023.10.13 |
[FPGA]Zynq 아키텍쳐 (0) | 2023.10.12 |