반응형
1. 🤔 왜 CUDA 버전이 문제일까?
딥러닝 프레임워크(TensorFlow, PyTorch 등)는 특정 CUDA 버전과만 호환됩니다. 예를 들어:
- TensorFlow 2.13 → CUDA 11.8 + cuDNN 8.6
- PyTorch 2.1 → 기본적으로 CUDA 12.x까지 지원
그런데 시스템에 최신 CUDA(예: 12.8)가 설치되어 있다고 해서 모든 프레임워크가 자동으로 잘 작동하지는 않습니다.
오히려 맞지 않는 버전이면 GPU를 전혀 사용하지 못하고, CPU로만 실행되어 성능 저하가 발생합니다.
2. ⚠️ 기존 CUDA를 지우는 건 위험하다
많은 분들이 이 오류 메시지를 보면 이렇게 생각합니다:
“CUDA 버전을 바꿔야 하니까 기존 걸 삭제하고 다시 설치해야겠다!”
하지만 이는 위험한 선택입니다.
- 다른 프로젝트나 프레임워크에 의도치 않은 영향을 줄 수 있습니다.
- 시스템 전체에 설치된 CUDA를 제거하면 다른 ML 환경이 망가질 수도 있습니다.
3. ✅ 해결책은? Multi-CUDA 환경 설정!
Multi-CUDA는 말 그대로, 여러 개의 CUDA 버전을 동시에 설치하고 필요할 때마다 그 중 하나를 사용하는 방법입니다.
- 시스템 CUDA 12.8은 그대로 유지 ✅
- CUDA 11.8은 /opt/cuda-11.8 같은 별도 경로에 설치 ✅
- 사용하려는 환경(Python/conda env)에서 LD_LIBRARY_PATH와 PATH만 설정하여 CUDA 11.8을 사용하도록 설정 ✅
4. 💡 Multi-CUDA가 필요한 대표적인 상황
상황설명
TensorFlow와 PyTorch를 둘 다 사용하는 경우 | 서로 요구하는 CUDA 버전이 다르기 때문 |
회사/팀에서 다양한 CUDA 기반 툴을 쓰는 경우 | 시스템 CUDA를 바꿀 수 없을 때 |
Docker를 쓰지 않는 로컬 개발 환경에서 | 독립적인 CUDA 환경 구성이 필요할 때 |
커스텀 빌드의 CUDA 의존성이 있는 라이브러리 사용 시 | 예: TensorRT, XLA |
5. 🛠 Multi-CUDA 설치 및 설정 (요약)
① CUDA 11.8 설치 (시스템과 별도로)
sudo mkdir -p /opt/cuda-11.8 cd /tmp
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
chmod +x cuda_11.8.0_520.61.05_linux.run sudo ./cuda_11.8.0_520.61.05_linux.run --silent --toolkit --installpath=/opt/cuda-11.8
② cuDNN 8.6 설치
cuDNN 아카이브에서 다운로드 후:
tar -xzvf cudnn-8.6-linux-x64.tgz sudo cp cuda/include/* /opt/cuda-11.8/include/
sudo cp cuda/lib64/* /opt/cuda-11.8/lib64/
③ Conda 환경에서만 CUDA 11.8 사용
# 활성화된 conda env 내에 환경 변수 자동 설정
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export PATH=/opt/cuda-11.8/bin:$PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env.sh
echo 'export LD_LIBRARY_PATH=/opt/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env.sh
6. ✅ GPU가 제대로 인식되는지 확인
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
7. ✨ 정리: Multi-CUDA는 선택이 아니라 필수
항목내용
기존 CUDA 제거 필요 여부 | ❌ 필요 없음 |
여러 CUDA 공존 가능 여부 | ✅ 가능 (버전 별 디렉토리로 분리) |
Conda 환경 격리 설정 | ✅ PATH/LD_LIBRARY_PATH로 제어 가능 |
리스크 | 거의 없음 (루트 경로 안 건드림) |
💬 마무리
딥러닝 프로젝트를 여러 개 운영하거나, TensorFlow와 PyTorch를 동시에 써야 하는 상황이라면 Multi-CUDA 환경 구축은 거의 필수에 가깝습니다. 이 글에서 소개한 방식은 시스템을 깨뜨리지 않으면서도 안정적으로 CUDA 환경을 구성하는 방법입니다.
“기존 CUDA를 지우지 않고 새로운 CUDA 버전으로 TensorFlow를 GPU에서 돌리는 법”
이 주제에 고민이 있었다면, 이제는 걱정 없이 도전해보세요!
반응형
'환경설정' 카테고리의 다른 글
linux 18.04 + geforce 2080 ti Pytorch gpu 사용 환경 구축 (with anaconda) (1) | 2024.12.09 |
---|---|
gcp vertex ai 에서 python version 안맞을 때 (0) | 2024.03.25 |
리눅스에서 C++ (G++?) 설정하기 (1) | 2023.06.09 |
anaconda를 사용한 tensorflow lite 환경설정 (1) | 2022.08.26 |
Anaconda 가상환경을 jupyter notebook에서 사용하기 (0) | 2022.07.20 |