docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
위 링크에서 Running CUDA Containers, 즉 cuda container를 실행시키는 예제를 해보려 한다.
WSL 2 환경에서 GPU 컨테이너를 실행하는 몇 가지 예
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Jupyter notebook
docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
여기서 크롬으로 아래 빨간색 줄을 복사해서 링크를 여는데 127.0.0.1가 접속 안되면 localhost로 바꿔서 들어가면 된다.
http://localhost:8888/?token=e6cca498db4646fea7808db4728858b8f121155a7f335b83
그러면 아래와 같이 jupyter notebook이 접속되고
테스트겸 classification.ipynb 파일을 실행시켜보았다.
아래와 같이 학습이 잘 되는 것을 볼 수 있고
리눅스 커널에서도 문제없이 작동하는 것으로 보인다.
Deep Learning Framework Containers
NGC의 20.03 컨테이너를 사용한 GPU를 이용하여 ResNet-50 학습 실행을 수행하기 위해 TensorFlow 컨테이너를 실행
컨테이너를 시작한 다음 nvidia-examples 디렉토리에서 학습 스크립트를 실행
sudo docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3
설치가 완료되면 아래와 같이 workspace 경로로 간다.
여기서 아래 명령어를 실행 한다음 cnn 폴더가 있는지 확인하고
cd nvidia-examples/
ls
아래 명령어로 resnet을 실행한다.
python cnn/resnet.py
확인해보면 out of memory (OOM) 문제가 발생한다.....
아래 nvidia docs에 보면 잘 돌아가는데 원인이 무엇일까...
혹시 몰라 resnet.py의 파일을 열어서 batch size를 확인해봤다.
cat cnn/resnet.py
뭐지.... batch_size가 256으로 되어있다. (얘내들도 GTX 1070으로 돌린 것 같은데....)
vi 편집기를 열어 수정을 해야겠다.
vi cnn/resnet.py
batch_size를 1로 바꿔보았다.
다시 돌려보자
python cnn/resnet.py
잘 돌아간드아....
예제는 아래를 참고하였습니다.
docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
'리눅스' 카테고리의 다른 글
리눅스 명령어 정리 (0) | 2021.02.01 |
---|---|
Docker 사용법 (0) | 2021.01.06 |
WSL 2에서 GPU accelerated machine learning training(GPU 사용하기) - 2 (0) | 2021.01.04 |
WSL 2에서 GPU accelerated machine learning training(GPU 사용하기) - 1 (0) | 2021.01.03 |
WSL 2를 위한 파이썬 설치 (0) | 2021.01.03 |