一文看懂深度学习中的cuda环境配置:cuda,cuda driver,cudnn与pytorch-cuda

深度学习中通常会涉及到cuda环境相关的问题,特别是torch版本,cuda版本等兼容问题。
主要涉及到这四个方向

  • 显卡驱动:cuda driver 。驱动API (driver API)通过nvidia-smi查看,是所有cuda环境的基础
  • CudaToolkit:通常意义上说的cuda,即运行API(runtime API),本质是一个工具包。与驱动没有强绑定,通过nvcc --version查看
  • cudnn:一个深度学习计算设计的加速库,可以理解为是cuda的一个补充插件,在编译TensorRT等库的时候需要
  • pytorch-cuda:torch中的cuda依赖。安装torch的时候一般都要选择cuda版本,但是与cuda版本并不完全依赖,版本不一样多数时候也是可以运行的,所以可以根据需求选在torch版本。

CUDA Driver

显卡驱动,所有cuda环境的基础。在NVIDIA Driver中选择与系统向适应的版本下载安装
通过nvidia-smi查看信息。其中的CUDA Version代表当前驱动下所能支持的最高cuda版本。并不是实际安装的cuda(nvcc)版本
在这里插入图片描述

cuda与cudnn下载

https://k2-fsa.github.io/k2/installation/cuda-cudnn.html

CUDA Toolkit

通常意义下指的cuda。本质是一个工具包。也就是nvcc --version相关的信息
在CUDA Toolkit中选择满足驱动的版本下载。
一个设备上可以安装多个cuda。比如同时安装了CUDA 9.0、CUDA 10.0、CUDA 11.0.。NVIDIA显卡驱动跟CUDA Toolkit之间没有强行的绑定关系
linux系统cuda默认系统路径是/usr/local/cuda
可以通过软链接的方式修改cuda指向
在这里插入图片描述
也可以修改环境变量指定cuda的实际路径地址
修改~/.bashrc

vim ~/.bashrc
# 添加下面信息
export PATH=$PATH:/you/path//cuda-11.7/bin
# 添加完后
source ~/.bashrc

cuda Toolkit的安装过成中会默认自带驱动的安装。已经安装好驱动的话,要取消驱动的安装选项
accept
在这里插入图片描述

取消驱动的安装,在option中选择tool的安装路径

在这里插入图片描述

cudnn

cudnn是一个为深度学习计算设计的软件库,运行GPU版的TensorRT或者其他编译功能的时候都需要安装cudnn才行
选择与cuda相匹配的cudnn版本:cudnn历史版本
以cudnn-11.x为例
下载后解压

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz 

得到一个cudnn文件夹
将路径下的lib(或者lib64文件写入环境变量中)

vim ~/.bashrc
# 添加
export LD_LIBRARY_PATH=/your/path/to/cudnn/lib:$LD_LIBRARY_PATH
# 退出后重启.bashrc
source ~/.bashrc

将所有头文件与库文件拷到cuda的安装路径下

cp cudnn/include/cudnn*.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 重置读写权限
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

查看cudnn是否安装成功与版本信息

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

pytorch-cuda

pytorch安装gpu版本时通常要选择对应的cuda版本
在这里插入图片描述
但是实际上很多时候不需要与cuda(nvcc)的版本一样也是能运行的。可以直接选择合适的torch版本而不需要重新安装cuda

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/9730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【二叉树】(一)二叉树基础知识及多种遍历方式

二叉树基础知识及多种遍历方式 关于二叉树,该了解这些二叉树的种类存储方式遍历方式节点定义 二叉树的三种递归遍历(深度遍历)递归遍历设计核心思想递归遍历力扣例题解析 二叉树的三种迭代遍历(深度遍历)前后续遍历中序…

数据库开启远程连接

服务器端添加一个允许远程连接的root用户: mysql -u root -p create user root192.168.10.20 identified by admin; //创建一个192.168.10.20地址远程连接的root用户 grant all privileges on *.* to root192.168.10.20; //赋予远程root用户所有的权…

中国地形可调节高度-UE5-UE4

2000坐标系,可进行高度调整。 支持版本4.21-5.4版本 下载位置:https://mbd.pub/o/bread/ZpWZm5Zs

教你解决PUBG绝地求生启动不了 登录不了 登录不进去的问题

尽管《绝地求生》(PUBG)凭借其紧张刺激的战术对抗与高度仿真的战场环境在全球范围内赢得了众多拥趸,但不少玩家在经历了一场紧张激烈的生命争夺赛后,却面临着一个不愉快的现实:游戏无法顺利启动或登录。这种紧随激烈战…

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置,可以在 Maven 构建过程中自动构建 Docker 镜像,而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

工业数据采集软件 高效的数字化信息管理系统

近年来,随着产线自动化程度的提升,越来越多的工业设备被运用到自动化生产中,产线中各位置所产生的数据也越来越多,每个设备又都是独立的,如何将其整合,进行系统化查看处理,就是工业数据采集软件…

05.线程

进程有哪些缺陷? 1.创建的代价较高 进程是OS进行资源分配的基本单位,也就是说创建进程是需要分配资源的,所以创建代价很高 2.通信不方便 进程之间要想进行通信必须借助第三方资源(管道、内存映射、消息队列) 线程的优…

大模型日报2024-05-10

大模型日报 2024-05-10 大模型资讯 阿里巴巴发布新AI语言模型Qwen2.5,超越OpenAI的GPT-4 摘要: 阿里巴巴集团旗下的阿里云推出了新型大型语言模型Qwen2.5。据称,在语言生成能力上超过了OpenAI的GPT-4,尽管在其他领域也有出色表现。该模型的发…

JAVA大量数据导出excel

背景:因项目需要导出3万行,90列的数据到excel,使用传统的apache poi 直接导出,导致504连接超时无法导出。然后改造方法,异步导出。 一、准备一个导出类,属性有id,outputstrream,finleName,err,e…

[debian12] wps for linux打开PDF卡死

原因 wps使用wpspdf处理PDF文件,而wpspdf依赖于libtiff5.so.5。而系统更新后,linux发行版提供的是libtiff.so.6或更新版本,导致其无法正常工作。 解决方案 理论上,安装libtiff5即可: apt install libtiff5.so.5 但实…

VM虚假机联网(无代码,超简单)NAT模式

1、左边顶上编辑里面最下面找到虚拟网络编辑器2.启用管理员特权3.重新创建一个NAT模式的网络(名称随便一个) 4.打开这两个设置里面的东西进行拍照并记住IP区间和网关,等下要用; 5.打开虚拟机,右上角,下标点…

腾讯云服务器部署前后端服务

服务器:OpenCloudOS (兼容centos8) 后端:javaSpringboot 前端:Vue 下载jdk 1)下载jdk11 wget https://download.java.net/openjdk/jdk11/ri/openjdk-1128_linux-x64_bin.tar.gz 2)解压jdk …

论文研读 Disentangled Information Bottleneck

解耦信息瓶颈 摘要: 信息瓶颈方法是一种从源随机变量中提取与预测目标随机变量相关的信息的技术,通常通过优化平衡压缩和预测项的IB拉格朗日乘子f来实现,然而拉格朗日乘子很难优化,需要多次实验来调整拉格朗日乘子的值&#xff0c…

使用leafletjs实现地图洋流、风场气象6要素地图标注、等值面图

前期实现的功能由于数据失效无法显示效果,今天重新对接一个数据源进行展示,实现效果如下图: 访问地址:可视化三维 GIS 特效 - 沉浸式视觉体验呈现令人惊叹的三维 GIS 特效,提供沉浸式视觉体验。https://www.wheart.cn/…

QAnything 在mac M2 上纯python环境安装使用体验(避坑指南)

这是一篇mac m2本地纯python环境安装 qanything的文章。安装并不顺利,官方提供的模型无法在本地跑。 这篇文章记录了,使用xinference来部署本地模型,并利用openAi的通用接口的方式,可以正常使用。 记录了遇到的所有的问题&#xf…

*****水上飞机:继承,虚函数,虚继承

一题目 请设计以下航行器、飞机、船、水上飞机等 4 个类。 CRAFT 为航行器类,是公共基类,提供航行器的基本特性。包括: 一个保护数据成员:speed(速度)。 三个公有成员函数:构造函数(初始化速度)、析构函数和 Show 函数…

AOSP开发

Android 开发者 | Android Developers (google.cn) android开源代码: Android 开源项目 | Android Open Source Project (google.cn)

FreeRTOS任务调度器

目录 1、什么是任务调度器 2、FreeRTOS中的任务调度器 2.1 抢占式调度 2.2 时间片调度 2.3 协作式调度 3、任务调度案例分析 3.1 实验需求 3.2 CubeMX配置 3.3 代码实现 3.3.1 uart.c 重定向printf 3.3.2 打开freertos.c并添加代码 3.3.4 代码现象 1、什么是任务调度…

Spring:spring-boot-starter-parent与spring-boot-dependencies的区别

参考:spring-boot-starter-parent与spring-boot-dependencies的区别

[uniapp] 配置ts类型声明

我想引进图片,但是报错 声明一下就行 TypeScript 支持 | uni-app官网 创建tsconfig.json文件,复制官网的配置 然后在随便一个目录下写一个随便名字的.d.ts文件 例如这样 保存就行 因为ts是默认扫描全部的,所以要按照官网的写法 把不必要的排除掉就行,免得浪费性能