환경설정

🎯 딥러닝 환경을 위한 Multi-CUDA 설치의 필요성과 실전 가이드

jinmc 2025. 7. 10. 17:35
반응형

1. 🤔 왜 CUDA 버전이 문제일까?

딥러닝 프레임워크(TensorFlow, PyTorch 등)는 특정 CUDA 버전과만 호환됩니다. 예를 들어:

  • TensorFlow 2.13CUDA 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_PATHPATH만 설정하여 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에서 돌리는 법”
이 주제에 고민이 있었다면, 이제는 걱정 없이 도전해보세요!

반응형