Refence : https://github.com/Xilinx/Vitis-AI-Tutorials/tree/3.5/Tutorials/RESNET18/
목차.
1. Vitis AI tutorials 소개
2. Vitis AI 설치 및 WSL 환경설정
3. Vitis AI tutorials : Running RESNET18 CNN through Vitis AI 3.5 Flow for ML
이 챕터에서는 AMD 사의 Vitis AI tutorials에 대해서 다룰 것이다.
Vitis AI tutorials는 AMD에서 Vitis AI에 대한 tutorial들을 만들어 둔 것이다. ResNet 18을 tensorflow나 pytorch로 하는 법 등이 있는데
여기서는 tensorflow로 ResNet18을 실행시킬 것이다.
Ubuntu 18.04 이상의 운영체제
딥러닝에 대한 지식
Vitis AI user guide 및 Online documentation 읽어보기
AMD target board : ZCU102, ZCU104, VCK190, VEK280, Alveo V70 AI Accelerator
Vitis AI를 wsl (Ubuntu 22.04)환경에서 설치할 것이다.
wsl을 키고 거기서 git clone 커맨드 라인을 입력한다.
git clone https://github.com/Xilinx/Vitis-AI
docker container 환경을 만들어 주기 위해서 docker desktop을 사용한다.
docker를 wsl에서 사용하려면 ubuntu 버전을 받아야 하는 줄 알았으나 windows와 연동되어 사용될 수 있다고 한다.
자세한 건 여길 참조하자.
- 먼저 docker desktop을 다운로드하고 설치한다.
https://docs.docker.com/desktop/wsl/#download- 설치하고 킨 다음에
setting을 누른 다음 좌측의 general에서 wsl2 based engine을 활성화 해준다.- Resources에서 WSL integration에 들어가서 해당하는 Ubuntu 버전을 활성화 해준다.
이제 다시 wsl에 들어가서 아래의 커맨드를 작성해보자
docker --version
docker run hello_world
2.3 Vitis AI tutorials folder 집어 넣기
먼저 Vitis AI tutorials를 github에서 다운 받는다.
압축을 풀면 Tutorials라는 폴더가 있는데 이름을 tutorials로 바꿔준다.
그리고 이 tutorials folder를 Vitis AI 디렉토리에 복사해준다.
이후 tree -d -L 2
명령어를 넣어보자. 그러면 아래와 같은 폴더 트리가 출력될 것이다.
CUDA gpu 설치는 아래의 명령어로 설치한다.
apt purge nvidia* libnvidia*
apt install nvidia-driver-xxx
apt install nvidia-container-toolkit
여기서 xxx는 드라이버의 버전이다.
이제 nvidia-smi를 입력하여 보고 CUDA가 잘 설치되었는지 확인하여 보자
이제 docker 이미지를 docker 컨테이너에 넣을 것이다.
Vitis AI는 online documentation에 따르면 다양한 플랫폼으로 돌릴 수 있다.
Vitis AI Container 설치에는 방법이 3가지 정도가 있다.
최신의 docker를 다운 받기 위해선 아래의 커맨드를 입력한다.
docker pull xilinx/vitis-ai-<Framework>-<Arch>:latest
여기서 <Framework>와 Arch는 아래의 표를 통해 고를 수 있다.
Desired Docker | <Framework> | Arch |
---|---|---|
Pytorch cpu-only | pytorch | cpu |
Tensorflow 2 cpu-only | tensorflow2 | cpu |
Tensorflow 1.15 cpu-only | tensorflow | cpu |
Pytorch ROCm | pytorch | rocm |
Tensorflow2 ROCm | tensorflow2 | rocm |
이 방법으로 특정한 컨테이너와 프레임워크를 빌드할 수 있다.
만약 gpu가 있다면 gpu docker를 빌드하면 된다.
방법 : 아래의 디렉토리로 이동
cd <Vitis-AI install path>/Vitis-AI/docker
./docker_build.sh -t <DOCKER_TYPE> -f <FRAMEWORK>
여기서 <DOCKER_TYPE>은 cpu, gpu, rocm 중에서 고르는 것이다.
는 텐서플로2, 텐서플로, 파이토치 중에서 원하는 버전을 빌드해준다.
Docker_TYPE (-t) | TARGET_FRAMEWORK (-f) | Desired environment |
---|---|---|
cpu | pytorch | Pytorch cpu-only |
tf2 | TensorFlow2 cpu-only | |
tf1 | TensorFlow cpu-only | |
gpu | pytorch | Pytorch gpu-only |
gpu | tf2 | TensorFlow2 gpu-only |
gpu | tf` | TensorFlow1 gpu-only |
이러한 종류를 아래의 명령어로 설치해 주면 된다.
cd <Vitis-AI install path>/Vitis-AI/docker
./docker_build.sh -t gpu -f pytorch
tutorial에서 우리는 gpu를 tensorflow2로 하는 컨테이너를 사용하므로
./docker_build.sh -t gpu -f tf2
를 입력 해준다.
./docker_build.sh -t gpu -f tf2
이제 설치가 끝나고 docker images
를 입력하면 다음과 같이 출력되는지 확인하자.
REPOSITORY TAG IMAGE ID CREATED SIZE
xilinx/vitis-ai-tensorflow2-gpu 3.5.0.001-b56bcce50 3c5d174a1807 11-days-ago 14.4GB
이제 docker image를 실행해 보겠다.
cd Vitis-AI ./docker_run.sh xilinx/vitis-ai-tensorflow2-gpu:3.5.0.001-cc6f2308a
만약 실행이 되지 않을시에는
./docker_run.sh b972ba8246d5
이런식으로 image ID를 넣어준다. 그러면 다음과 같이 출력되는 것을 확인할 수 있다.
이 다음에는
conda activate vitis-ai-tensorflow2
cd /workspace/tutorials/
cd RESNET18
이제 workspace
라는 폴더가 docker container와 host PC와 파일을 공유하게 해준다.
docker container에는 그래픽 에디터가 없으므로 wsl 터미널 창을 새로 열어서 graphic editor를 설치하는 것이 좋다.
pip install image-classifiers
이제 docker를 영구적으로 다른 터미널에서 저장하기 위해서 이 커맨드를 실행해준다.
docker images
sudo docker ps -l
sudo docker commit -m"latest" <container ID> xilinx/vitis-ai-tensorflow2-gpu:latest
docker images
그러면 다음과 같이 실행되는 것을 알 수 있다.
별책부록
a. docker에 connect 하지 못했다고 나올시
sudo systemctl restart docker
b. container 휴지통에 버리기
docker rmi -f $(docker images -f "dangling=true" -q)
c. 공간 청소하기
docker system df
docker image prune --all
docker system prune --all