You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WSL(Ubuntu)中构建启用BLAS的llama-cpp-python及验证方法

在WSL上构建启用OpenBLAS的llama-cpp-python

我尝试在WSL上安装启用BLAS的llama-cpp-python,让GGML库使用OpenBLAS。用了两种带CMAKE_ARGS的pip安装命令,但导入模块时没有任何BLAS启用的确认信息,没法确定BLAS是否真的生效了。

我使用的具体命令如下:

# 尝试1:显式指定OpenBLAS供应商
CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS" \
  pip install llama-cpp-python --force-reinstall --no-cache-dir

# 尝试2:启用BLAS并并行构建
CMAKE_ARGS="-DGGML_BLAS=ON -DCMAKE_BUILD_PARALLEL_LEVEL=2" \
  pip install llama-cpp-python --force-reinstall --no-cache-dir

# 验证导入
python3 -c "from llama_cpp import Llama; print('Import successful - llama-cpp-python installed')"

现在没有任何信息能确认GGML是基于BLAS/OpenBLAS构建的,也没有运行时证据显示BLAS在被使用,没法判断是用了OpenBLAS还是回退到了标量实现。

我想了解以下问题:

  1. 在WSL上构建启用GGML BLAS的llama-cpp-python并链接OpenBLAS的准确步骤是什么?
  2. 运行pip install前,需要在WSL发行版中安装哪些依赖包(比如libopenblas-dev、build-essential、cmake等)?
  3. 安装后如何确认llama-cpp-python/GGML正在使用BLAS?(需要构建时或运行时的验证命令/方法)
  4. 如果CMAKE_ARGS是正确的配置方式,WSL上需要使用的准确CMAKE_ARGS值是什么?是否需要设置其他环境变量或pip参数?

解决方案

1. 准确构建步骤

  1. 先安装所有必要的依赖包(见问题2)。
  2. 清理之前的构建缓存,确保从头开始构建。
  3. 设置正确的CMAKE_ARGS环境变量,执行pip安装命令。
  4. 通过构建日志或运行时验证确认BLAS启用(见问题3)。

2. 预安装依赖包

在WSL的Ubuntu/Debian发行版中,执行以下命令安装依赖:

sudo apt update && sudo apt install -y build-essential cmake libopenblas-dev pkg-config
  • build-essential:提供编译所需的基础工具(gcc、g++等)。
  • cmake:用于生成构建文件。
  • libopenblas-dev:OpenBLAS的开发库,提供编译链接所需的头文件和库文件。
  • pkg-config:帮助CMake自动找到OpenBLAS的安装路径。

3. 验证BLAS启用的方法

构建时验证

执行pip安装命令时,仔细观察输出日志,查找类似以下的内容:

-- Found OpenBLAS library: /usr/lib/x86_64-linux-gnu/libopenblas.so
-- Found OpenBLAS include directory: /usr/include/x86_64-linux-gnu/openblas
-- GGML BLAS: ON
-- GGML BLAS_VENDOR: OpenBLAS

如果出现这些行,说明构建时已成功链接OpenBLAS。

运行时验证

方法一:检查共享库依赖

# 找到llama_cpp模块的安装路径
python3 -c "import llama_cpp; print(llama_cpp.__file__)"
# 进入模块目录,找到核心共享库(通常名为llama_cpp.so)
cd $(dirname $(python3 -c "import llama_cpp; print(llama_cpp.__file__)"))
ldd llama_cpp.so | grep openblas

如果输出包含libopenblas.so的路径,说明运行时会加载OpenBLAS。

方法二:通过模型初始化日志验证
初始化Llama模型时开启verbose模式,观察日志:

from llama_cpp import Llama
llm = Llama(model_path="./your-model.gguf", verbose=True)

日志中会显示类似ggml_init_blas: using OpenBLAS的信息,确认BLAS正在被使用。

4. 正确的CMAKE_ARGS配置

在WSL上,正确的CMAKE_ARGS需明确指定启用BLAS并绑定OpenBLAS:

CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS" \
  pip install llama-cpp-python --force-reinstall --no-cache-dir
  • -DGGML_BLAS=ON:开启BLAS加速功能。
  • -DGGML_BLAS_VENDOR=OpenBLAS:指定使用OpenBLAS作为BLAS供应商。

如果需要利用多核心加速构建,可以额外添加并行参数:

CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DCMAKE_BUILD_PARALLEL_LEVEL=$(nproc)" \
  pip install llama-cpp-python --force-reinstall --no-cache-dir

其中$(nproc)会自动获取当前系统的CPU核心数,最大化构建效率。

无需额外环境变量,确保安装依赖后直接执行上述命令即可。--force-reinstall --no-cache-dir会强制重新构建,避免之前的缓存干扰。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 21:43:09