💬

【備忘録】Windows11のGPUでllama.cppを動かす手順

2025/02/01に公開

はじめに

DeepSeek R1のGGUFを有志の方がHuggingFaceにあげてくださっていたので動かしてみた。

本記事はWindows11上でGPUを使ってllama.cppを動かすための手順をまとめている。

検証環境

  • Windows11 Home
  • CPU: Intel(R) Core(TM) i7-14700F
  • RAM: 32GB
  • NVIDIA GeForce RTX 4070 Ti SUPER

環境構築手順

Windows11にCUDAのインストール

基本的にはこちらを参考に、

  • NVIDIAドライバ
  • NVIDIA CUDA Toolkit
  • NVIDIA cuDNN
    をインストールする。

本検証では、CUDA 12.4, CuDNN 8.9.7.29をインストールした。

PowerShell上でnvidia-smiで確認できればいったんOK。

> nvidia-smi
Sat Feb  1 20:21:41 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.94                 Driver Version: 560.94         CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4070 ...  WDDM  |   00000000:01:00.0  On |                  N/A |
| 34%   34C    P2             40W /  285W |   13251MiB /  16376MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2532    C+G   ...oogle\Chrome\Application\chrome.exe      N/A      |
|    0   N/A  N/A      6680    C+G   ...t.LockApp_cw5n1h2txyewy\LockApp.exe      N/A      |
|    0   N/A  N/A      7028    C+G   ...Programs\Microsoft VS Code\Code.exe      N/A      |
|    0   N/A  N/A      7344    C+G   ...inaries\Win64\EpicGamesLauncher.exe      N/A      |
|    0   N/A  N/A      8740    C+G   C:\Windows\explorer.exe                     N/A      |
|    0   N/A  N/A     10148    C+G   ...2txyewy\StartMenuExperienceHost.exe      N/A      |
|    0   N/A  N/A     10184    C+G   ...nt.CBS_cw5n1h2txyewy\SearchHost.exe      N/A      |
|    0   N/A  N/A     10812    C+G   ...5n1h2txyewy\ShellExperienceHost.exe      N/A      |
|    0   N/A  N/A     11104    C+G   ...B\system_tray\lghub_system_tray.exe      N/A      |
|    0   N/A  N/A     13140    C+G   ...CBS_cw5n1h2txyewy\TextInputHost.exe      N/A      |
|    0   N/A  N/A     13760    C+G   ...oogle\Chrome\Application\chrome.exe      N/A      |
|    0   N/A  N/A     15680    C+G   ...ne\Binaries\Win64\EpicWebHelper.exe      N/A      |
|    0   N/A  N/A     16736    C+G   ...siveControlPanel\SystemSettings.exe      N/A      |
|    0   N/A  N/A     20832      C   D:\Tools\llamacpp\llama-server.exe          N/A      |
|    0   N/A  N/A     21680    C+G   ...ekyb3d8bbwe\PhoneExperienceHost.exe      N/A      |
|    0   N/A  N/A     22028    C+G   ...\cef\cef.win7x64\steamwebhelper.exe      N/A      |
|    0   N/A  N/A     24100    C+G   ...al\Discord\app-1.0.9180\Discord.exe      N/A      |
|    0   N/A  N/A     25596    C+G   ...__8wekyb3d8bbwe\WindowsTerminal.exe      N/A      |
+-----------------------------------------------------------------------------------------+

llama.cppのインストール

今回はソースコードのビルドなどは行わず、llama.cppのリリースから直接実行ファイルをダウンロードする。
llama.cppのGitHubのリリースページから、

  • cudart-llama-bin-win-cu12.4-x64.zip
  • llama-b4609-bin-win-cuda-cu12.4-x64.zip

をダウンロードして適当なフォルダに解答した。

DeepSeekモデルのダウンロード

この方がDeepSeek R1のGGUF変換をされていたので、今回はその中から14Bモデルを使って検証を行った。
【DeepSeek-R1-Distill-Qwen-14B-Q6_K.gguf】をダウンロードし、llama.cppと同じディレクトリに格納する。

動作確認

こちらを参考にllama.cppのコマンドを確認し、以下コマンドを実行した。

> ./llama-server.exe -m ./DeepSeek-R1-Distill-Qwen-14B-Q6_K.gguf  -ngl 48 -b 2048 --parallel 2

RTX4070TiSUPERのVRAMが16GBなので、いろいろ試して-ngl 48を指定して実行した場合のタスクマネージャーの様子は以下になった。(Chromeタブ多すぎてRAMがだいぶ余裕ない、、、)

量子化済みの14Bモデルで、家庭用ゲーミングPCだと大体平均

  • 入力処理:300 tokens per second
  • 出力処理:26.55 tokens per second

程度の速度で動作することができるようだ。

おわりに

今回はDeepSeek R1の14B蒸留モデルをWindows11とllama.cppで動かす手順をまとめた。
次はollamaで動作させて、langchainなどと連携させてみたいと考えている。

Discussion