Docker 환경설정
https://github.com/PSAL-POSTECH/ONNXim
GitHub - PSAL-POSTECH/ONNXim: ONNXim is a fast cycle-level simulator that can model multi-core NPUs for DNN inference
ONNXim is a fast cycle-level simulator that can model multi-core NPUs for DNN inference - PSAL-POSTECH/ONNXim
github.com
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
newgrp docker
으로 docker 설치 및 초기화
권한 부여가 안된다면 아래 코드로 권한 부여
sudo chmod 666 /var/run/docker.sock
git clone https://github.com/PSAL-POSTECH/ONNXim.git
cd ONNXim
docker build . -t onnxim
으로 코드와 docker image를 불러온다
이제 volume을 만들어서 docker와 local폴더를 연결하자
local 폴더에 연결됐는지 확인하기 위해서 프로젝트 파일 몇 개를 수정해보자
해당 깃허브 readme 에서는 다음 코드를 이용해서 시뮬레이션을 할 수 있다고 한다.
./build/bin/Simulator --config ./configs/systolic_ws_128x128_c4_simple_noc_tpuv4.json --model ./example/models_list.json
/systolic_ws_128x128_c4_simple_noc_tpuv4.json
/models_list.json
파일을 복사해서 custom을 붙인 파일을 새로 생성해두자.
volume 이름은 임의로 simul 이라고 정의했다.
docker volume create simul
다음 코드로 volume이 생성됐는지 확인할 수 있다.
docker volume ls
삭제는 다음 코드로 작성하면 된다
docker volume rm simul
만약 삭제가 안된다면 마운트된 컨테이너를 먼저 삭제해야한다.
docker에서는 /workspace/ONNXim 에 접근하면 파일들이 있고
로컬에서는 home/yumin/ONNXim에 접근해서 파일들이 있다. (pwd로 현재 폴더를 볼 수 있다.)
docker의 workspace 하단에 mylocal 폴더를 새로 만들어서 로컬의 home/yumin/ONNXim 와 연결하자
(만약 docker의 /workspace/ONNXim와 로컬의 home/yumin/ONNXim를 마운트 하면 docker의 모든 파일들이 덮어씌워져서 사라진다.)
docker run -it -v /home/yumin/ONNXim:/workspace/mylocal onnxim bash
이 명령어는 : 를 기준으로 왼쪽이 로컬, 오른쪽이 도커다.
docker run -dit -v /home/yumin/ONNXim:/workspace/mylocal --name onnxim-dev onnxim bash
docker start onnxim-dev
이렇게 백그라운드 실행을 할 수도 있다.
앞으로 도커에 접근할 때마다 이렇게 접근하면 된다.
파일이 잘 실행되는지 보자
./ONNXim/build/bin/Simulator --config ./mylocal/configs/custom_systolic_ws_128x128_c4_simple_noc_tpuv4.json --model ./mylocal/example/models_list.json
이렇게 작성하면 도커에만 존재하는 build 폴더에 접근할 수 있다.