💬
【備忘録】Windows11のGPUでllama.cppを動かす手順
はじめに
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