안녕하세요. Verilog 입니다.
오늘부터 Vitis AI Library를 통해 Deep Learning 알고리즘을 Zynq 보드에서 구현하는 것에 대해 포스팅 하려고 합니다.
먼저, 저의 실험 환경은 아래와 같습니다.
Zynq-Board: ZCU-102 / ZCU-104 Board (MPSOC)
Host PC: Ubuntu 16.04 LTS
Zynq보드는 ARM-Processor(SW)와 FPGA(HW)로 이루어진 보드로 무거운 연산은 FPGA(HW)에서 수행하며, 하드웨어로 구현이 어려운 부분은 ARM-Processor(SW)에서 구현할 수 있게 구성되어 있습니다.
1. 먼저, Ubuntu PC에서 Vitis-AI 폴더를 받아보겠습니다.
git clone https://github.com/Xilinx/Vitis-AI
cd Vitis-AI
2. Docker 설치
- Docker의 종류는 2가지가 있습니다. (tool / runtime)
- tool docker는 Deep Learning 모델을 Quantization 및 Complie해서 FPGA에서 수행 가능한 .elf 파일 생성하는데 쓰입니다.
- runtime docker는 위에서 생성한 .elf파일을 이용하여 ARM-Processor에서 구현 가능한 코드를 컴파일 하는데 사용됩니다.
2.1. Docker Repository 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get update && sudo apt install docker-ce docker-ce-cli containerd.io
2.2. Nvidia Docker Rntime 설치
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime
2.3. Docker Config 파일 수정
sudo systemctl edit docker
- 이후, 뜨는 창에서 아래 코드를 추가 후 종료
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --group docker -H unix:///var/run/docker.sock --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
- Daemon과 Docker 재실행
sudo systemctl daemon-reload
sudo systemctl restart docker
3. Group Docker 설정
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
4. CPU tool docker
- 현재 폴더 위치가 1번에서 다운받은 Vitis-AI 폴더안에 들어와있는지 확인한 후, 아래 명령어를 수행합니다.
./docker_run.sh xilinx/vitis-ai:tools-1.0.0-cpu
- 4번까지 완료가 되었다면 다음 사진과 같은 화면이 뜹니다.
다음 포스팅에서는 tool docker를 통해서 AI-quantizer / AI-Compiler를 사용하는 방법에 대해서 이야기할 예정입니다.
참고: Vitis-ai-github (https://github.com/Xilinx/Vitis-AI)