메뉴 닫기

Ollama에서 GPU 메모리 우선 사용 및 다중 GPU 활용 방법 (통합 정리)

목적
ㄱ. 단일/다중 GPU를 최우선으로 활용 → 시스템 메모리 사용 최소화
ㄴ. 두 개 이상의 GPU를 동시에 사용 (가능한 경우)
 
1. 기본원리
– Ollama는 NVIDIA GPU가 감지되면 자동으로 GPU 메모리를 우선 사용합니다.
– GPU 메모리 부족 시 시스템 RAM으로 전환됩니다.
– 다중 GPU 지원 여부는 모델과 백엔드 (예: llama.cpp)에 따라 다릅니다.
 
2. 단일 GPU 설정 (기본 최적화)
1)명시적 GPU 지정
export CUDA_VISIBLE_DEVICES=0  # 0번 GPU만 사용
ollama run 모델이름
 
2)GPU 레이어 수 강제 설정
ollama run 모델이름 --num-gpu-layers 40  # GPU에 40개 레이어 할당
 
3)설정 파일에 옵션 추가 (~/.ollama/config.json)
{
  "num_gpu_layers": 40,
  "main_gpu": 0
}
 
3. 다중 GPU 활용 방법 (제한적 지원)
1)두 GPU 모두 인식하도록 설정
export CUDA_VISIBLE_DEVICES=0,1  # GPU 0과 1 활성화
ollama run 모델이름
* 주의: 대부분의 모델은 단일 GPU만 지원하며, Ollama의 기본 엔진(llama.cpp)은 완전한 다중 GPU 병렬화를 제공하지 않음.
 
2)각 GPU별 모델 분산 실행 (간접 활용)

# 터미널 1: GPU 0 사용
export CUDA_VISIBLE_DEVICES=0
ollama run 모델이름

# 터미널 2: GPU 1 사용
export CUDA_VISIBLE_DEVICES=1
ollama run 모델이름

 
3) vLLM 등 외부 도구 사용 (권장)
# vLLM 설치 및 실행 (2개 GPU 병렬)
pip install vllm
python -m vllm.entrypoints.api_server --model 모델이름 --tensor-parallel-size 2
 
4). GPU 사용 현황 모니터링
– GPU 메모리 확인:
nvidia-smi
 
– Ollama 디버그 모드:
ollama run 모델이름 --verbose
 
5. 주의사항
필수 조건:
– NVIDIA GPU + CUDA 드라이버 설치
– 모델이 GPU 호환 포맷 (예: GGUF)이어야 함
 
제한 사항:
– Ollama의 기본 기능만으로는 두 GPU를 100% 동시 활용 불가능
– NVLink 미보유 시 GPU 간 통신 병목 발생 가능
 
6. 결론
시나리오                                  추천 방법                                                                                                  비고
단일 GPU 최적화                  –num-gpu-layers + CUDA_VISIBLE_DEVICES                             Ollama 기본 지원
다중 GPU 활용                      vLLM 또는 모델 분산 실행                                                                     Ollama 한계 회피

시스템 RAM 절약                 GPU 레이어 수 최대화                                                                             nvidia-smi로 모니터링

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x