[애플M1/애플실리콘] ISR 돌려보기 - 도커 이미지 x86 아키텍쳐(amd64)로 빌드, 실행하는 방법

2022. 9. 18. 17:0003. Resources/Docker, Kubernetes

728x90
반응형

슈퍼 레졸루션

과 선배의 결혼식장에 가서 옛날 사진을 틀어주는 것들을 보다가 갑자기 슈퍼레졸루션에 대해 궁금증이 생겼다.

슈퍼 레졸루션이란 저해상도의 이미지를 고해상도로 바꿔주는 딥러닝 기술을 얘기한다.

https://github.com/idealo/image-super-resolution

 

GitHub - idealo/image-super-resolution: 🔎 Super-scale your images and run experiments with Residual Dense and Adversarial Net

🔎 Super-scale your images and run experiments with Residual Dense and Adversarial Networks. - GitHub - idealo/image-super-resolution: 🔎 Super-scale your images and run experiments with Residual Den...

github.com

무튼 이런 기술을 한 번 내 컴퓨터에서 돌려보려고 작업을 시작했다.

 

시도 1: 바닐라 우분투 도커 이미지

패키지나 그런 것들을 막 설치하고 싶진 않아서 도커를 이용해서 하려고 했고, python3을 공식 지원하는 바닐라 우분투 20.04 이미지를 이용해서 작업을 시작했다.

docker hub에서 우분투 20.04 이미지를 받아서 필요한 패키지를 설치하고, ISR 패키지를 설치하는 과정이었나.. amd64 architecture가 아니면 지원하지 않는다는 에러를 봤다... 후...

 

그래서 컨테이너를 실행시키면서 이미지를 당겨올 때 어떤 옵션을 줘야하는지 찾아봤다.

docker run -it --platform linux/amd64 ubuntu:20.04 /bin/bash

docker run 의 옵션으로 --platform linux/amd64 를 주면 amd64의 아키텍쳐를 가진 이미지를 사용할 수 있다고 한다.

 

그럼 진짜 저 아키텍쳐로 이미지가 열렸는지 확인해보자.

해당 이미지로 열린 컨테이너에 접속해서 아래 커맨드를 입력했다.

dpkg -s libc6 | grep Arch

결과는 아래 사진처럼 amd64 아키텍쳐를 가진 것을 확인할 수 있었다.

 

이렇게 하고 패키지 설치도 다 하고나서 실행이 안되길래 위의 공식 레포에서 제공하는 도커파일을 이용해서 테스트를 돌려보기로 했다.

 

시도 2: 제공된 Dockerfile.cpu

제공된 도커파일을 빌드해서 쓰는 방법이 문서에 나와있어서 시도해봤는데 grpc 설치때문에 25분을 기다렸지만 에러 메시지를 볼 수 밖에 없었다...

역시 아키텍쳐 문제인 것 같아서 도커파일 빌드 옵션에 아키텍쳐 정보를 추가해주는 방법을 시도해봤다.

docker build -t isr . -f Dockerfile.cpu

기존에 제공된 코드가 위와 같다면 아래 코드처럼 플랫폼 정보를 추가해서 다시 빌드를 했다.

docker build -t isr -f Dockerfile.cpu --platform linux/amd64 .

 

GRPC 설치를 포함한 인고의 이미지 빌드를 마치고 컨테이너를 실행시켰는데 

https://github.com/tensorflow/tensorflow/issues/52845

 

TensorFlow binary crashes on Apple M1 in x86_64 Docker container · Issue #52845 · tensorflow/tensorflow

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template System i...

github.com

텐서플로우 단에서 에러가 나서 돌릴 수가 없었다~~ 쳇~~~

EC2나 GCP에서 가상 머신 하나 무료로 할당받아서 돌려보는게 최선일 것 같다~

 

 

참고

 

반응형