분석환경은 rocker-org git에 있는 dockerfile을 활용할 예정이다.

Dockerfile생성

분석환경 구축을 수행하기전에 아래 자료를 가져오자.

git clone https://github.com/rocker-org/rocker-versioned2

vi my_dockerfile.Dockerfile 로 아래 명령어 입력

FROM rocker/ml:4.1.2-cuda11.1

ENV CTAN_REPO=https://mirror.ctan.org/systems/texlive/tlnet
ENV QUARTO_VERSION=latest

ENV S6_VERSION=v2.1.0.2
ENV RSTUDIO_VERSION=2021.09.2+382
ENV PANDOC_VERSION=default
ENV DEFAULT_USER=rstudio
ENV PATH=/usr/lib/rstudio-server/bin:$PATH
ENV SHINY_SERVER_VERSION=latest

ENV CUDA_VERSION=10.1.243
ENV CUDA_PKG_VERSION=10-1=$CUDA_VERSION-1
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
ENV NVIDIA_REQUIRE_CUDA=cuda>=10.1 brand=tesla,driver>=384,driver<385 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411
ENV CUDA_HOME=/usr/local/cuda
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$CUDA_HOME/lib64/libnvblas.so:
ENV NVBLAS_CONFIG_FILE=/etc/nvblas.conf
ENV WORKON_HOME=/opt/venv
ENV PYTHON_VENV_PATH=/opt/venv/reticulate
ENV PYTHON_CONFIGURE_OPTS=--enable-shared
ENV RETICULATE_AUTOCONFIGURE=0
ENV PATH=${PYTHON_VENV_PATH}/bin:$PATH:${CUDA_HOME}/bin:/usr/local/texlive/bin/x86_64-linux

RUN /rocker_scripts/config_R_cuda.sh
RUN /rocker_scripts/install_python.sh

Docker이미지 구축

도커파일 생성이 끝났다면 아래 명령어를 통해 Docker 이미지를 구축하자.

docker build . -f my_doclerfile.Dockerfile -t ml_r

구축된 이미지를 바탕으로 Docker를 실행해보자.

docker run -d \
  --gpus all --name=rstudio \
  -it -p 8787:8787 -p 3838:3838 \
  -e USER=ducj -e PASSWORD=비밀번호 \
  -v /project/rstudio:/home/rstudio \
  -v /project/rstudio/shinyapps:/srv/shiny-server/ \
  -v /project/rstudio/shinylogs:/var/log/shiny-server/ \
  --restart=unless-stopped 
  ml_r

Docker 내부 환경 구축

tensorflow와 rTorch를 사용하지 않을 예정이면 해당부분은 수행하지 않아도 된다.  

# install.packages('tensorflow')
library(tensorflow)
# tensorflow::install_tensorflow(method='auto',version='gpu',envname='ducj')
tf$test$is_gpu_available()

tensorflow에서 만들어 놓은 가상환경에 pytorch를 설치할 것인데 이는 terminal에서 진행하여야한다. 즉 source /opt/venv/ducj/bin/activatepip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html 명령어를 terminal에서 수행하면된다.

# install.packages('rTorch')
library(rTorch)
# source /opt/venv/ducj/bin/activate
# pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
torch$cuda$is_available()