| 항목 | 개발자용 CUDA 설치 (전체 CUDA Toolkit) | 실행용 CUDA 설치 (런타임 라이브러리) |
|---|---|---|
| 포함 내용 | - GPU 코드를 직접 만들고 컴파일할 수 있는 컴파일러(nvcc) - 개발에 필요한 헤더 파일과 라이브러리 - 디버깅/프로파일링 도구, 예제 코드 등 | - 딥러닝 프로그램(예: PyTorch, TensorFlow)이 실행될 때 필요한 필수 라이브러리만 포함 - GPU 가속 실행에 필요한 파일만 제공 (컴파일 도구는 없음) |
| 주 사용 목적 | - 직접 CUDA 언어(C/C++)로 GPU 프로그램을 개발하고 싶을 때 - 커스텀 GPU 코드를 작성하고 최적화할 때 | - 딥러닝 모델이나 GPU 가속 프로그램을 그대로 실행할 때 - 직접 GPU 코드를 만들지 않고 이미 만들어진 프로그램을 사용할 때 |
| 설치 방법 | - NVIDIA에서 제공하는 전체 CUDA Toolkit을 설치 (runfile 또는 deb 파일 사용) - 시스템 전체에 설치하여 모든 프로그램에서 사용 | - Conda/Miniforge 같은 환경에서 제공하는 cudatoolkit 패키지 설치 - 각 환경마다 독립적으로 설치하여 딥러닝 프레임워크가 필요한 라이브러리만 제공 |
| nvcc 사용 여부 | 사용 가능 (직접 코드를 컴파일할 수 있음) | 사용 불가 (실행에 필요한 라이브러리만 있음) |
| 대상 사용자 | - GPU 프로그래밍을 직접 하거나, 커스텀 GPU 애플리케이션을 개발하려는 사람 | - 딥러닝 프레임워크를 이용해 모델을 돌리거나 GPU 가속 실행만 필요한 사람 |
# 심볼릭 링크로 기본 버전 설정 (원하는 경우)
sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.4 /usr/local/cuda # 예시로 12.1을 기본으로 설정
conda create -n env_11.6 python=3.8 -ybin/activate 혹은 etc/conda/activate.d/ 내 스크립트에 따라 환경 변수가 설정됩니다. conda create -n env_11.6 python=3.8 -y
mkdir -p ~/miniforge3/envs/env_11.6/etc/conda/activate.d
mkdir -p ~/miniforge3/envs/env_11.6/etc/conda/deactivate.d
# 활성화 스크립트 생성
echo 'export OLD_PATH=$PATH
export OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-11.6
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' > ~/miniforge3/envs/env_11.6/etc/conda/activate.d/env_vars.sh
# 비활성화 스크립트 생성
echo 'export PATH=$OLD_PATH
export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH
unset CUDA_HOME
unset OLD_PATH
unset OLD_LD_LIBRARY_PATH' > ~/miniforge3/envs/env_11.6/etc/conda/deactivate.d/env_vars.sh
conda create -n env_12.4 python=3.8 -y
mkdir -p ~/miniforge3/envs/env_12.4/etc/conda/activate.d
mkdir -p ~/miniforge3/envs/env_12.4/etc/conda/deactivate.d
echo 'export OLD_PATH=$PATH
export OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-12.4
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' > ~/miniforge3/envs/env_12.4/etc/conda/activate.d/env_vars.sh
echo 'export PATH=$OLD_PATH
export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH
unset CUDA_HOME
unset OLD_PATH
unset OLD_LD_LIBRARY_PATH' > ~/miniforge3/envs/env_12.4/etc/conda/deactivate.d/env_vars.sh
# 환경 활성화
conda activate cuda11.8_env
# 환경 전용 디렉터리로 이동
cd $CONDA_PREFIX # 보통 /home/USER/miniforge3/envs/cuda11.8_env
# activate.d 폴더가 없으면 만들기
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
nano ./etc/conda/activate.d/cuda_activate.sh#!/usr/bin/env bash
# CUDA 11.8 설치 경로
export CUDA_HOME=/usr/local/cuda-11.6
# PATH 설정: 기존 PATH 앞에 cuda-11.6의 bin 디렉터리를 추가
export PATH=/usr/local/cuda-11.6/bin:$PATH
# LD_LIBRARY_PATH 설정: CUDA 라이브러리 경로 추가
# 콜론(:)으로 기존 설정과 구분
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH
chmod +x ./etc/conda/activate.d/cuda_activate.shnano ./etc/conda/deactivate.d/cuda_deactivate.sh#!/usr/bin/env bash
# 제거(또는 복원) 로직 예시
# $PATH에서 /usr/local/cuda-11.8/bin 을 삭제
# $LD_LIBRARY_PATH에서 /usr/local/cuda-11.8/lib64 삭제
# 하지만 단순 문자열 치환으로 해결하기 복잡할 수 있어,
# conda에서 자동으로 관리하도록 놔두는 경우도 많습니다.
# 일단 가장 간단히, 다시 export 해서 지우는 방법(주의가 필요)
export PATH=$(echo $PATH | sed -e 's#/usr/local/cuda-11.8/bin:##')
export LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | sed -e 's#/usr/local/cuda-11.8/lib64:##')
chmod +x ./etc/conda/deactivate.d/cuda_deactivate.sh