Markdown Preview
TensorFlow 2.12 GPU 최적화를 위한 Miniconda 환경 설정 가이드
Frontmatter
Miniconda를 설치하고 새로운 conda 환경을 만들어 TensorFlow 2.12를 설치하는 방법을 설명합니다. GPU 설정을 선택적으로 진행하며, 설치 후 CPU와 GPU에서 TensorFlow가 정상 작동하는지 확인하는 방법도 포함되어 있습니다. Ubuntu 22.04에서 발생할 수 있는 오류와 그 해결 방법도 안내합니다.
tensorflow 설정
tensorflow 2.12 / cudnn 8.6 / cuda-toolkit 11.8 / 기준으로 작성되었습니다
- Miniconda 설치
- 콘다 환경 만들기
- (선택) GPU 설정
- TensorFlow 설치
- 설치 확인
1. Miniconda 설치
우선 miniconda 를 각 계정별로 설치해주어야 한다
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.shconda 명령을 활성화하려면 터미널 또는 source ~/.bashrc 를 다시 시작해야 할 수 있다 conda -V 를 사용하여 성공적으로 설치되었는지 테스트한다2. 콘다 환경 만들기
다음 명령을 사용하여
tf 라는 이름의 python 3.9 버전의 새 conda 환경을 만든다conda create --name tf python=3.9기존에는 tensorrt 의 지원 문제와 가상 환경 별 설정이 복잡해 구버전으로 하였으나 이제는 비교적 최신버전으로 작성하여도 괜찮아졌다
다음 명령을 사용하여 비활성화 및 활성화할 수 있다
conda deactivate
conda activate tf이 이후 명령은 모두 conda 환경 안에서 실행을 전제로 설명한다.
3. (선택) GPU 설정
TensorFlow를 CPU에서만 실행하는 경우 이번 순서를 건너뛰어도 된다
드라이버가 없는 경우 먼저 NVIDIA GPU 드라이버 를 설치한다. 다음 명령을 사용하여 설치되었는지 확인할 수 있다
nvidia-smi그런 다음 conda와 함께 CUDA 및 cuDNN을 설치한다
conda install -c conda-forge cudatoolkit=11.8.0
pip install nvidia-cudnn-cu11==8.6.0.163시스템 경로를 구성한다. conda 환경을 활성화한 후 새 터미널을 시작할 때마다 다음 명령으로 수행할 수 있다
CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib하지만 매번 저 명령어를 실행할 수도 없고, 다른 환경에서도 실행되면 안되기에
.bashrc 에 등록할 수도 없다.
이 conda 환경을 활성화하면 시스템 경로가 자동으로 구성되도록 하기위해 가상황경 안의 환경 변수를 자동으로 등록해줄것이다.mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh4. TensorFlow 설치
TensorFlow에는 최신 버전의 pip가 필요하므로 pip 설치를 업그레이드한다
pip install --upgrade pip그런 다음 pip로 TensorFlow를 설치합니다.
참고: conda에서 tensorflow 를 설치하면 의존성 문제는 해결이 될 수 있지만, pypi 에서만 업데이트가 되기 때문에 최신버전 설치를 위해서는 pip 로 설치하는게 더 좋다
pip install tensorflow==2.12.*
conda install tensorflow=2.124-1. TensorRT 설치
TensorRT의 경우 cuda 라이브러리를 지원하는 그래픽카드의 가속화 기능을 사용하여 기존의 방식보다 더 효율적으로 동작하는 라이브러리다.
차후 추가 하겠습니다5. 설치 확인
CPU 설정 확인:
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"Tensor가 반환되면 TensorFlow를 성공적으로 설치한 것으로 볼 수 있다
GPU 설정 확인:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"GPU 장치 목록이 반환되면 TensorFlow를 성공적으로 설치한 것으로 볼 수 있다
트러블 슈팅 - 우분투 22.04
Ubuntu 22.04에서 다음 오류가 발생할 수 있다
Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice.
...
Couldn't invoke ptxas --version
...
InternalError: libdevice not found at ./libdevice.10.bc [Op:__some_op]고 레퍼런스에서는 그렇게 나오는데 본인은 그냥 tensorrt 문제와 gpu 가 안잡히는 문제가 발생했다
레퍼런스의 오류와 gpu 가 안잡히는 문제를 수정하려면 다음 명령을 실행해야 한다
# Configure the XLA cuda directory
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
printf 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/\nexport XLA_FLAGS=--xla_gpu_cuda_data_dir=$CONDA_PREFIX/lib/\n' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
source $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
# Copy libdevice file to the required path
mkdir -p $CONDA_PREFIX/lib/nvvm/libdevice
cp $CONDA_PREFIX/lib/libdevice.10.bc $CONDA_PREFIX/lib/nvvm/libdevice/위의 명령어를 실행하면 gpu 는 정상적으로 잡힌다
