安装 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)
相关推荐
杜子不疼.几秒前
PyPTO:面向NPU的高效并行张量编程范式
开发语言
lly2024061 分钟前
C# 结构体(Struct)
开发语言
默默前行的虫虫2 分钟前
MQTT.fx实际操作
python
YMWM_12 分钟前
python3继承使用
开发语言·python
JMchen12312 分钟前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
Once_day27 分钟前
C++之《程序员自我修养》读书总结(1)
c语言·开发语言·c++·程序员自我修养
喜欢喝果茶.1 小时前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓1 小时前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)1 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea