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文件删除

相关推荐
ch3nyuyu12 分钟前
网络编程拟面试题
linux·网络
无限进步_19 分钟前
【Linux】Makefile:让编译自动化
linux·运维·自动化
猫头虎22 分钟前
【Trea】Trea国内版|国际版|海外版下载|Mac版|Windows版|Linux下载配置教程
linux·人工智能·windows·macos·aigc·ai编程·agi
流浪00130 分钟前
告别静态打印:Linux C 实现实时刷新进度条
linux·运维·c语言
小此方33 分钟前
Re:Linux系统篇(二十)进程篇·五:深入理解 Linux 进程优先级:从底层逻辑到实战修改
linux·运维·服务器
路溪非溪34 分钟前
Linux下物理总线驱动模型之SDIO驱动框架
linux·驱动开发
深圳市九鼎创展科技34 分钟前
九鼎创展 X7110 开发板(JH7110):国产 RISC-V 多媒体平台全解析
大数据·linux·人工智能·嵌入式硬件·ubuntu·risc-v
流浪00137 分钟前
Linux篇(八) Make 与 Makefile 超详细入门教程|从零基础到手写自动化编译
linux·运维·自动化
爱莉希雅&&&42 分钟前
Redis哨兵模式和主从复制和集群模式搭建与扩容缩容
linux·redis·缓存·集群·哨兵·数据库同步
j_xxx404_42 分钟前
Linux线程:从内存分页机制(Page Table/TLB/Page Fault)彻底读懂 Linux 线程本质
linux·运维·服务器·开发语言·c++·人工智能·ai