安装 llama-cpp-python 的CPU和GPU方法

模型使用CPU、还是GPU

关于Langchain、LlamaCpp一些执行错误。

1.安装CPU版本:

sh 复制代码
pip install llama-cpp-python

2.安装GPU版本

需要同时满足两个条件:

1.NVIDIA显卡驱动(通过nvidia-smi 验证)

2.CUDA Toolkit(通过nvcc --version验证)

总结:

若只是运行别人开发好的 CUDA 程序(如用 GPU 跑 PyTorch/TensorFlow),"有 CUDA(硬件 + 驱动支持)但无 Toolkit" 是正常且常见的(很多用户为了节省空间,不会安装多余的开发工具);

若要自己开发 CUDA 程序,则必须安装 CUDA Toolkit,否则无法完成编译和开发工作。

本质上,两者的核心区别是:CUDA Toolkit 是 "开发工具",而运行 CUDA 程序只需要 "硬件 + 驱动的运行时支持"。

1.nvidia-smi 查看右上角的 "CUDA Version"

选择低于cuda版本的CUDA Toolki。

sh 复制代码
nvidia-smi

2.安装必要的编译工具

sh 复制代码
apt install -y build-essential cmake wget

3.安装 cuda-toolkit

对于这一步我失败了。

sh 复制代码
# 对于Ubuntu系统
sudo apt update
sudo apt install -y cuda-toolkit-<version>  # 将<version>替换为nvidia-smi显示的版本

# 例如:nvidia-smi显示CUDA Version: 11.7
sudo apt install -y cuda-toolkit-11-7

4.安装必要的依赖

sh 复制代码
apt update
apt install -y wget software-properties-common gnupg

5. 添加 NVIDIA CUDA 仓库密钥

sh 复制代码
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
dpkg -i cuda-keyring_1.1-1_all.deb

6.更新包列表

sh 复制代码
apt update

7.安装 CUDA Toolkit

sh 复制代码
apt install -y cuda-toolkit-12-4

8.验证 CUDA 安装是否成功:

sh 复制代码
nvcc --version

9. 如果 nvcc 不可用,手动设置环境变量:

sh 复制代码
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
nvcc --version

10.安装支持 CUDA 的 llama-cpp-python:

sh 复制代码
pip uninstall -y llama-cpp-python # (CPU版的)
export LLAMA_CUDA=1
export FORCE_CMAKE=1
export CMAKE_ARGS="-DLLAMA_CUDA=on"
pip install --force-reinstall --no-cache-dir llama-cpp-python

11.测试

sh 复制代码
from llama_cpp import Llama

llm = Llama(
    model_path="models/7B/ggml-model.bin",  # 替换为你的模型路径
    n_gpu_layers=50,
    n_ctx=2048,
    verbose=True
)

print("CUDA支持:", llm.params.n_gpu_layers > 0)
相关推荐
wj3055853784 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
为何创造硅基生物4 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好4 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李4 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
解局易否结局4 小时前
FlashAttention 在昇腾NPU上的实现:从内存墙到IO感知
llama
仰泳之鹅5 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154155 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
之歆5 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
cen__y6 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git