linux cuda环境搭建

1,检查驱动是否安装

运行nvidia-smi,如果出现如下界面,说明驱动已经安装

记住cuda版本号

2,安装cudatoolkit

上官网CUDA Toolkit Archive | NVIDIA Developer 根据操作系统选择对应的toolkit

如果已经安装了驱动,选择的toolkit版本不要高于driver的cuda版本。如果未安装,选择一个较新的版本即可

选定版本后,网站上会出现安装指令,如下

复制代码
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
sh cuda_11.3.0_465.19.01_linux.run

如果已经安装了驱动,在安装过程中把驱动选项去掉。并且在安装完成后配置~/.bashrc,添加

复制代码
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
​​​​​​​export PATH=/usr/local/cuda/bin:$PATH

source ~/.bashrc

安装完成后

运行nvcc --version验证是否安装成功

不要用apt install nvidia-cuda-toolkit安装,一般安装的版本会比较低。

3,安装cudnn

一般在安装tensorflow或者pytorch的gpu版本时会自动安装上cudnn。

如果提示找不到cudnn库,需要手动安装。上cuDNN Archive | NVIDIA Developer下载对应版本的库

解压后将lib目录下文件拷到/usr/local/cuda/lib64下,将include下文件拷到/usr/local/cuda/include下

备注

1,卸载toolkit

运行 /usr/local/cuda/bin/cuda-uninstaller

2,修改安装位置

sh cuda_11.3.0_465.19.01_linux.run --installpath=/mnt/mount/cuda

3,安装pytorch

conda install pytorch==1.12.1 torchvision==0.13.1 cudatoolkit=11.3 -c pytorch

此处选择的cudatoolkit版本与前面安装的对应上

验证是否安装成功

复制代码
import torch
​​​​​​​print(torch.__version__):查看torch版本
print(torch.cuda.is_available()):看安装好的torch和cuda能不能用,也就是看GPU能不能用

4,有时显卡内存占用明显大于nvidia-smi下显示的进程占用

可以用命令fuser -v /dev/nvidia* 查看所有占用显存的进程

5,Jitting卡住的问题

如果在之前运行这个程序时,趁加锁之后突然kill掉这个程序,导致它还没来得及释放锁,这样锁就会一直存在,导致后续所有程序都无法读取该库文件。

到~/.cache/torch_extensions/py310_cu113目录下找到lock文件删除

相关推荐
ltl8 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王8 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农11 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b12 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨14 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK14 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
酷可达拉斯15 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
Molesidy16 小时前
【Linux】基于busybox的根文件系统的完善
linux·服务器·嵌入式linux
jufeng130719 小时前
【系列:MiniKV 原理剖析 · 第 6 篇】
linux·软件工程·个人开发·makefile
IT摆渡者19 小时前
ubuntu系统网络问题
linux·运维·ubuntu