목적 |
ㄱ. 단일/다중 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별 모델 분산 실행 (간접 활용) |
|
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로 모니터링
|
Ollama에서 GPU 메모리 우선 사용 및 다중 GPU 활용 방법 (통합 정리)
Subscribe
Login
0 Comments