테스트: Ollama가 인텔 CPU 성능 및 효율적인 코어를 어떻게 활용하는가

인텔 CPU의 효율성 코어 vs 성능 코어에서의 Ollama

Page content

제가 테스트하고 싶은 이론은, 인텔 CPU에서 모든 코어를 사용하면 LLM의 속도가 빨라질까?입니다.
새로운 gemma3 27비트 모델(gemma3:27b, ollama에서 17GB)이 제 GPU의 16GB VRAM에 맞지 않아, 일부는 CPU에서 실행되고 있다는 점이 제게 괴롭습니다.

정확히 말하면,

ollama ps

명령어를 실행하면 다음과 같은 결과가 나옵니다:

gemma3:27b    a418f5838eaf    22 GB    29%/71% CPU/GPU

이건 그렇게 나쁘지 않아 보이지만, 층이 분리되어 실행되고 있습니다.
실제 사용량은 **GPU:28%, CPU: 560%**입니다. 네, 여러 코어가 사용되고 있습니다.

Llama와 날아다니는 CPU의 초상

여기 아이디어가 있습니다:

모든 인텔 CPU 코어, 성능 코어와 효율 코어 모두를 사용하도록 Ollama를 강제할 수 있을까요?

OLLAMA_NUM_THREADS 구성 파라미터

Ollama에는 환경 변수 구성 파라미터인 OLLAMA_NUM_THREADS가 있습니다. 이 파라미터는 Ollama가 사용해야 할 코어 수와 스레드 수를 지정하는 데 사용됩니다.

먼저 3개의 코어로 제한해 보았습니다:

sudo xed /etc/systemd/system/ollama.service

# OLLAMA_NUM_THREADS=3를 다음과 같이 설정합니다.
# Environment="OLLAMA_NUM_THREADS=3"

sudo systemctl daemon-reload
sudo systemctl restart ollama

하지만 작동하지 않았습니다.
Gemma 3 27B LLM을 실행할 때 여전히 CPU 사용률이 약 560%였습니다.

불운이었습니다.

num_thread 호출 옵션

이번에는 다음과 같이 호출해 보았습니다:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 8
}
}'  | jq .

결과:

  • CPU 사용률: 585%
  • GPU 사용률: 25%
  • GPU 전력 소비: 67w
  • 성능 평가: 6.5 tokens/sec

이제 코어 수를 두 배로 늘려보겠습니다. 성능 코어와 효율 코어 모두를 사용하도록 Ollama에 지시해 보겠습니다:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 16
}
}'  | jq .

결과:

  • CPU 사용률: 1030%
  • GPU 사용률: 26%
  • GPU 전력 소비: 70w
  • 성능 평가: 7.4 t/s

좋습니다! 성능이 약 14% 증가했습니다!

이제 극단적인 시도를 해보겠습니다. 모든 물리적 코어를 사용해 보겠습니다:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 20
}
}'  | jq .

결과:

  • CPU 사용률: 1250%
  • GPU 사용률: 10-26% (불안정)
  • GPU 전력 소비: 67w
  • 성능 평가: 6.9 t/s

이제 성능이 약간 떨어졌습니다.
이번엔 8개의 성능 코어 + 4개의 효율 코어를 사용해 보겠습니다:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 12
}
}'  | jq .

결과:

  • CPU 사용률: 801%
  • GPU 사용률: 27% (불안정)
  • GPU 전력 소비: 70w
  • 성능 평가: 7.1 t/s

여기저기 조금씩 차이가 있습니다.

비교를 위해 Gemma 3 14b 모델을 실행해 보겠습니다. 이 모델은 Gemma 27b보다는 덜 똑똑하지만, GPU VRAM에 잘 맞습니다.

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:12b-it-qat",  
"prompt": "Why is the blue sky blue?",  
"stream": false
}'  | jq .

결과:

  • CPU 사용률: 106%
  • GPU 사용률: 94% (불안정)
  • GPU 전력 소비: 225w
  • 성능 평가: 61.1 t/s

이게 바로 우리가 말하는 성능입니다.
Gemma 3 27b가 14b보다는 더 똑똑하지만, 10배는 더 빠르지 않습니다!

결론

LLM이 GPU VRAM에 맞지 않고 Ollama에 의해 일부 층이 CPU로 오프로딩되는 경우:

유용한 링크