| 목적 |
| ㄱ. 단일/다중 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 vllmpython -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로 모니터링
|



