You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决Windows 11上llama-cpp-python GPU支持无法启用的问题

问题描述

在Windows 11上尝试安装带GPU支持的llama-cpp-python,已安装Visual Studio工具包、CMake、Ninja、CUDA工具包,参考过相关教程,但启动LLM服务器时始终不调用GPU。使用RTX 3090显卡,Llama 3 13B Instruct Q8模型可完全装入显存,启动代码如下:

import subprocess
import sys
import os


MODEL_PATH = os.path.join(
    os.path.dirname(__file__),
    "LLM",
    "Llama-3-13B-Instruct-v0.1.Q8_0.gguf"
)

HOST = "0.0.0.0"
PORT = "8000"

cmd = [
    sys.executable, "-m", "llama_cpp.server",
    "--model", MODEL_PATH,
    "--host", HOST,
    "--port", PORT
]

subprocess.run(cmd)

启动日志未检测到CUDA设备支持,未启用GPU加速。

解决方案

1. 重新编译安装带CUDA支持的llama-cpp-python

先彻底卸载现有版本,再通过环境变量强制编译CUDA支持:

命令提示符(CMD)操作:

pip uninstall -y llama-cpp-python
set CMAKE_ARGS=-DLLAMA_CUDA=ON
set FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --no-cache-dir

PowerShell操作:

pip uninstall -y llama-cpp-python
$env:CMAKE_ARGS="-DLLAMA_CUDA=ON"
$env:FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --no-cache-dir

建议使用Visual Studio开发者命令提示符CUDA命令提示符执行,确保编译环境依赖完整。

2. 修改启动代码,强制启用GPU层

在启动命令中添加--n-gpu-layers参数,指定将尽可能多的模型层加载到GPU(99表示全部可用层):

import subprocess
import sys
import os


MODEL_PATH = os.path.join(
    os.path.dirname(__file__),
    "LLM",
    "Llama-3-13B-Instruct-v0.1.Q8_0.gguf"
)

HOST = "0.0.0.0"
PORT = "8000"

cmd = [
    sys.executable, "-m", "llama_cpp.server",
    "--model", MODEL_PATH,
    "--host", HOST,
    "--port", PORT,
    "--n-gpu-layers", "99"  # 新增参数,强制加载模型到GPU
]

subprocess.run(cmd)

3. 验证CUDA环境正确性

  • 打开命令行执行nvcc --version,确认CUDA编译器正常运行,版本与RTX3090兼容(推荐CUDA 12.x)
  • 检查系统环境变量:CUDA_PATH需指向CUDA安装目录,PATH中需包含%CUDA_PATH%\bin
  • 关闭其他占用GPU显存的程序(如游戏、其他AI模型),避免显存不足

4. 验证GPU是否启用

启动服务器后,查看日志中是否出现以下内容:

  • ggml_init_cublas: found 1 CUDA device(s):
  • llama_model_load: using CUDA for GPU acceleration
    同时打开任务管理器→性能→GPU,查看显存占用是否显著上升(Q8 13B模型约占13GB显存)。

内容的提问来源于stack exchange,提问作者MiszS

火山引擎 最新活动