Ubuntu22 LLM GPU本地开发环境搭建:4090显卡/cuda/pytorch

news/2025/3/18 8:26:41/

0. 4090 显卡开箱与安装

可参考文章: https://www.toutiao.com/item/7477816734344217100/

扩展内存注意事项

机箱过来只有一条32G内存,扩展到4条32G ddr5 内存条,开机可能要等约2分钟!!!处于黑屏状态,请耐心等待。

问了下豆包: DDR5 内存模块在启动时需要进行初始化和训练,需要一些时间。

 

一. 驱动与cuda版本

建议安装相同版本,防止一名工程师调试通过的代码,到另外工程师电脑上运行报错。

  • 4090驱动:550

  • Pytorch: 2.5.1, cu211 (装pytorch时候一起装的cuda,可参考知乎文章:https://zhuanlan.zhihu.com/p/694533401)

  • CUDA Toolkit Archive: CUDA Toolkit Archive | NVIDIA Developer

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin

$ sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600

$ wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb

$ sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb

$ sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/

$ sudo apt-get update

$ sudo apt-get -y install cuda-toolkit-12-4

二. 安装4090驱动

左下角菜单-应用程序里,选“软件和更新”-附加驱动。里面列出了推荐的驱动。

也可以通过命令行

三. 如何确定适合 CUDA 版本

要确定适合你当前 NVIDIA Driver 550 的 CUDA 版本,可以通过以下几种方法:

1. 查看 NVIDIA 官方驱动与 CUDA 版本对应关系

NVIDIA 官方提供了驱动版本和 CUDA 版本的对应表,你可以访问 NVIDIA 官方文档来查找。一般来说,NVIDIA Driver 550 支持 CUDA 12.0 及以上的版本。例如,NVIDIA Driver 550.xx 对应的 CUDA 版本可以参考CUDA Toolkit Release Notes (https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)。

2. 使用 nvidia-smi 命令查看

在终端中输入nvidia-smi命令,该命令会显示当前显卡驱动的相关信息,其中也会包含该驱动支持的最高 CUDA 版本。示例输出如下:

+----------------------------------------------------------------+ | NVIDIA-SMI 550.xx.x Driver Version: 550.xx.x CUDA Version: 12.x | |-----------------------------------------------------

这里显示的CUDA Version就是当前驱动支持的最高 CUDA 版本,你可以选择安装该版本或者低于该版本的 CUDA。

四. 安装PyTorch (带cuda)

安装GPU版Pytorch,现在不需要手动安装CUDA和CuDnn。参考知乎文章:https://zhuanlan.zhihu.com/p/694533401

在安装 PyTorch 时,是可以选择对应的 CUDA 版本的。PyTorch 官方提供了不同 CUDA 版本的安装包,你可以根据自己的需求和环境进行选择。

1. 访问 PyTorch 官方网站

PyTorch

2. 选择安装选项

Stable:选择稳定版本。

Your OS:选择Linux。

Package:可以选择pip或者conda作为包管理工具。

Language:选择Python。

Compute Platform:根据你确定的 CUDA 版本进行选择,例如如果你的驱动支持 CUDA 12.1,你可以选择CUDA 12.4。

复制安装命令:根据上述选择,页面会生成相应的安装命令,复制该命令到终端中执行即可。例如,使用pip安装支持 CUDA 12.1 的 PyTorch 的命令可能如下:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

会下载多个项目,我用公司网络,大概装了6个小时。

3. 验证 torch 安装

安装完成后,你可以在 Python 环境中验证 PyTorch 是否正确安装并且能够使用 CUDA,示例代码如下:

python">import torch print(torch.cuda.is_available())

如果输出True,则表示 PyTorch 已经成功安装并且可以使用 CUDA 进行加速。

五、安装NVCC

通过 PyTorch 安装的 CUDA 通常是预编译好的二进制文件,可能不包含 nvcc 等开发工具。nvcc 是 NVIDIA CUDA 编译器驱动,属于 CUDA Toolkit 的一部分,PyTorch 安装时可能只安装了运行时所需的库,而没有安装完整的 CUDA Toolkit。

1. 确认 nvcc 是否安装

在终端中运行以下命令来检查 nvcc 是否安装:

which nvcc

如果该命令没有输出任何内容,说明 nvcc 未安装或者其路径未被添加到系统的 PATH 环境变量中。

2. 安装 CUDA Toolkit

如果确认 nvcc 未安装,可以使用 sudo apt-get install cuda 来安装完整的 CUDA Toolkit。不过,这种方法可能会安装最新版本的 CUDA,你需要确保安装的 CUDA 版本与你当前使用的 PyTorch 版本兼容。

你也可以从 NVIDIA 官方网站下载适合你系统的 CUDA Toolkit 版本进行安装。具体步骤如下:

  • 下载 CUDA Toolkit:访问 NVIDIA CUDA Toolkit Archive,选择适合 Ubuntu 22 的 CUDA Toolkit 版本进行下载。
  • 安装 CUDA Toolkit:下载完成后,执行以下命令进行安装(假设下载的文件名为 cuda_<version>_linux.run):
chmod +x cuda_<version>_linux.run
sudo ./cuda_<version>_linux.run

在安装过程中,按照提示进行操作,注意可以选择是否安装显卡驱动(如果已经安装了合适的驱动,可以取消勾选)。

3. 配置环境变量

安装完成后,需要配置环境变量,以便系统能够找到 nvcc 和其他 CUDA 工具。打开 ~/.bashrc 文件:

nano ~/.bashrc

在文件末尾添加以下内容(假设 CUDA 安装在 /usr/local/cuda 目录下):

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存并退出文件,然后使配置生效:

source ~/.bashrc
4. 验证nvcc安装

使用以下命令验证 nvcc 是否安装成功:

nvcc --version

如果能够正常输出 nvcc 的版本信息,则说明安装成功。


http://www.ppmy.cn/news/1580021.html

相关文章

【Redis】缓存穿透、缓存击穿、缓存雪崩

在分布式系统和高并发场景中&#xff0c;缓存机制是提高系统性能的重要手段。 然而&#xff0c;缓存在某些情况下会出现三种典型的异常现象&#xff1a;缓存穿透、缓存击穿和缓存雪崩。 1. 缓存穿透 现象 查询的数据在缓存和数据库中都不存在&#xff0c;每次请求都直接打到数…

【eNSP实战】(续)一个AC多个VAP的实现—将隧道转发改成直接转发

在 一个AC多个VAP的实现—CAPWAP隧道转发 此篇文章配置的基础上&#xff0c;将隧道转发改成直接转发 一、改成直接转发需要改动的配置 &#xff08;一&#xff09;将连接AP的接口改成trunk口&#xff0c;并允许vlan100、101、102通过 [AC1]interface GigabitEthernet 0/0/8 …

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(64)太极图化汉明距 - 汉明距离(位运算技巧)

《灵珠觉醒:从零到算法金仙的C++修炼》卷三天劫试炼(64)太极图化汉明距 - 汉明距离(位运算技巧) 哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的太极图谷,谷中有一幅巨大的太极图,图中蕴含着汉明距离的奥秘。谷口有一块巨大的石碑,上面刻着一行文字…

CoreData 调试警告:多个 NSEntityDescriptions 声明冲突的解决

概述 目前在苹果生态 App 的开发中&#xff0c;CoreData 数据库仍然是大部分中小应用的优先之选。不过&#xff0c;运行时 CoreData 常常产生各种“絮絮叨叨”的警告不禁让初学的秃头小码农们云里雾里。 这不&#xff0c;对于下面这一大段 CoreData 警告&#xff0c;大家是否一…

Kotlin 中 also 方法的用法和使用场景

Kotlin 中 also 方法的用法和使用场景 1. 作用 also 是 Kotlin 标准库中的一个范围函数&#xff0c;用于对对象执行操作并返回该对象本身。它的主要作用是&#xff1a; 提供一种简洁的方式对对象进行额外操作。返回值始终是调用 also 的对象本身。 语法&#xff1a; objec…

算法竞赛-基础算法-位运算

目录 1.快速幂 2.快速乘 3.lowbit(n) 4.其他 5.相关题目 6.小结 引言&#xff1a;位运算的主要特点之一是在二进制表示下不进位&#xff0c;一下为一些基础的位运算操作&#xff1a; 与或非异或and,&or,|not,~xor 1.快速幂 快速幂的计算原理就是基于位运算&#x…

uniapp-x 之useAttrs只读

数据类型&#xff1a; useAttrs在web端拿到的是obj&#xff0c;app拿到的是map 是否可以修改内部元素&#xff1a; 否&#xff0c;只读 这意味着你想这样写代码将会无效 let attrsuseAttrs();console.log("attrs",attrs, attrs instanceof Map)//appif(attrs ins…

MyBatis操纵数据库-XML实现(补充)

目录 一.多表查询二.MyBatis参数赋值(#{ }和${ })2.1 #{ }和${ }的使用2.2 #{ }和${ }的区别2.3 SQL注入2.3 ${ }的应用场景2.3.1 排序功能2.3.2 like查询 一.多表查询 多表查询的操作和单表查询基本相同&#xff0c;只需改变一下SQL语句&#xff0c;同时也要在实体类中创建出…