11、Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow Pytorch版本
Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow-GPU版本
- 一、确定版本关系
- 二、安装过程
- 1.安装显卡驱动
- 2、安装CUDA
- 3、安装cudnn
- 4、安装TensorFlow
- 5、安装pytorch
- 三、卸载
一、确定版本关系
TensorFlow Pytorch推出cuda和cudnn的版本,cuda版本推出驱动可选版本
1、CUDA与显卡驱动
https://www.nvidia.com/Download/index.aspx
2、cuDNN Toolkit与CUDA版本
https://developer.nvidia.com/rdp/cudnn-archive
3、TensorFlow与CUDA cuDNN
https://tensorflow.google.cn/install/source?hl=en
4、Pytorch与CUDA cuDNN
https://pytorch.org/
5、cudnn
https://zhuanlan.zhihu.com/p/639184948
https://blog.csdn.net/Williamcsj/article/details/123514435
官方下载地址:https://developer.nvidia.com/rdp/cudnn-archive
安装TensorFlow
- 安装依赖包
安装 TensorFlow 之前需要我们安装两个个依赖包,这里我的 cuda 版本为 11.1,cudnn 版本为 8.1.0,下载依赖包为
libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb
libcudnn8-dev_8.1.0.77-1+cuda11.2_amd64.deb
官网链接如下:https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
这里我使用 wget 下载:
参考链接:https://blog.csdn.net/weixin_46584887/article/details/122726278
官方教程:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
二、安装过程
参考:
https://blog.csdn.net/m0_45447650/article/details/132058561
https://blog.csdn.net/weixin_46584887/article/details/122726278
1.安装显卡驱动
方法(1)在线安装
1. 卸载旧版本nvidia驱动
如果没有安装nvidia驱动,可直接跳过。$ sudo apt purge nvidia*
1
2. 把显卡驱动加入PPA
$ sudo add-apt-repository ppa:graphics-drivers
$ sudo apt update
1
2
3. 查找版本库中显卡驱动
使用以下命令查看系统版本库中所有nvidia驱动的信息,根据需要选择合适的版本。$ sudo apt-cache search nvidia
1
推荐使用以下命令,查看Ubuntu推荐的驱动版本,从中选择合适的版本。$ ubuntu-drivers devices
参考链接:https://blog.csdn.net/qq_28256407/article/details/115548675
方法(2)下载安装
https://www.nvidia.com/Download/index.aspx
可以参考:https://blog.csdn.net/Perfect886/article/details/119109380,之前是run文件,现在是def文件,Debian安装命令一般sudo dpkg -i 命令。
例如:sudo dpkg -i cuda-repo--X-Y-local_*_x86_64.deb
2、安装CUDA
方法一:用run方式,可以选择是否安装驱动,一般不选
https://developer.nvidia.com/cuda-downloads?
选择是否安装:https://zhuanlan.zhihu.com/p/501473091
配置环境
配置环境
gedit ~/.bashrc
在打开的文件中添加
export CUDA_HOME=/usr/local/cuda-11.1
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
链接:https://blog.csdn.net/qq_39821101/article/details/116092190
方法二:官方教程:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#
参考:https://blog.csdn.net/qq_39821101/article/details/116092190
https://blog.csdn.net/m0_45447650/article/details/132058561
3、安装cudnn
(1)下载安装:cudann
https://developer.nvidia.com/rdp/cudnn-archive
2 安装deb文件(安装 TensorFlow 之前需要我们安装两个个依赖包)
官方下载地址:https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
使用如下语句依次安装:(debain命令,Ubuntu也可以)
sudo dpkg -i libcudnn8_8.0.3.33-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.3.33-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-samples_8.0.3.33-1+cuda11.0_amd64.deb
Ubuntu命令,作为参考
执行以下命令:
sudo apt install ./cudnn-local-repo-ubuntu2004-*amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-8.4.1.88/cudnn-local-4B348671-keyring.gpg /usr/share/keyrings/
sudo apt update
#下面自动匹配版本,注意版本不对会出错
sudo apt install libcudnn8
sudo apt install libcudnn8-dev
sudo apt install libcudnn8-samples
参考:https://zhuanlan.zhihu.com/p/126997172
https://zhuanlan.zhihu.com/p/639184948
4、安装TensorFlow
pip install -i https://mirrors.aliyun.com/pypi/simple tensorflow
#(2)查看cuda是否可用
import tensorflow as tf
print(tf.test.is_gpu_available())#如果结果是True,表示GPU可用
5、安装pytorch
pip3 install torch torchvision torchaudio
import torch
print(torch.__version__)
print(torch.cuda.is_available())
三、卸载
1. 卸载旧版本nvidia驱动
如果没有安装nvidia驱动,可直接跳过。
$ sudo apt purge nvidia*2、卸载cuda
#只执行这条可以
sudo apt-get autoremove nvidia-cuda-toolkitcd /usr/local/cuda-11.1/bin
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-11.1
从https://developer.nvidia.com/cuda-toolkit-archive下载对应版本的cuda
如果你之前执行过sudo apt-get install nvidia-cuda-toolkit,需要卸载:sudo apt-get autoremove nvidia-cuda-toolkitsudo apt-get install nvidia-cuda-toolkit
# 卸载
sudo apt-get autoremove nvidia-cuda-toolkit
在终端输入
nvcc -V
没有cuda版本信息,则卸载成功
链接:https://blog.csdn.net/qq_39821101/article/details/1160921903、卸载cudnn
查询:
sudo dpkg -l | grep cudnn
将其全部卸载:
sudo dpkg -r libcudnn8-samples
sudo dpkg -r libcudnn8-dev
sudo dpkg -r libcudnn8检查:
输入下面指令后,没有任何输出即卸载成功。
sudo dpkg -l | grep cudnn
接:https://blog.csdn.net/Williamcsj/article/details/123514435
相关文章:

11、Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow Pytorch版本
Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow-GPU版本 一、确定版本关系二、安装过程1.安装显卡驱动2、安装CUDA3、安装cudnn4、安装TensorFlow5、安装pytorch 三、卸载 一、确定版本关系 TensorFlow Pytorch推出cuda和cudnn的版本,cuda版本推出驱动可选版本…...
将数据库文件压缩并上传到文件服务器
1.引入上传工具和压缩包工具 <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId> </dependency> <dependency><groupId>com.zlpay</groupId><artifactId>zl-util-fastdfs…...

docker — 容器网络
一、概述 Docker容器每次重启后容器ip是会发生变化的。 这也意味着如果容器间使用ip地址来进行通信的话,一旦有容器重启,重启的容器将不再能被访问到。 而Docker 网络就能够解决这个问题。 Docker 网络主要有以下两个作用: 容器间的互联…...

腾讯面试题:使用Redis分布式锁可能会出现哪些问题?
嗨大家好,我是你们的小米!今天要和大家聊一个有趣的话题,那就是“腾讯面试题:使用Redis做分布式锁可能会出现哪些问题?”没错,就是腾讯大佬们在面试时经常会问到的一个问题,我们来一起深入了解一…...

直接在html中引入Vue.js的cdn来实现Vue3的组合式API
Vue3的组合式API是使用setup函数来编写组件逻辑的。setup函数是Vue3中用于替代Vue2的选项API(如data、methods等)的一种方式。在setup函数中,你可以访问到一些特殊的响应式对象,并且可以返回一些可以在模板中使用的数据、方法等。…...

YAPi在线接口文档简单案例(结合Vue前端Demo)
在前后端分离开发中,我们都是基于文档进行开发,那前端人员有时候无法马上拿到后端的数据,该怎么办?我们一般采用mock模拟伪造数据直接进行测试,本篇文章主要介绍YApi在线接口文档的简单使用,并结合Vue的小d…...
Java基础篇--Runtime类
介绍 Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例。 因此在Runtime类定义的时候,它的构造方法已经被私有化了(单例设计模式的应用),对象…...

数字后端笔试题(1)DCG后congestion问题
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 已知某模块的DCG结果显示存在congestion,有congestion部分逻辑结构如下图: 问题1: 如何分析该电路有congestion问题的原因? 答:data selecti…...

数据结构:交换排序
冒泡排序 起泡排序,别名“冒泡排序”,该算法的核心思想是将无序表中的所有记录,通过两两比较关键字,得出升序序列或者降序序列。 算法步骤 比较相邻的元素。如果第一个元素大于第二个元素,就交换它们。对每一对相邻…...

SpringBoot复习:(42)WebServerCustomizer的customize方法是在哪里被调用的?
ServletWebServletAutoConfiguration类定义如下: 可以看到其中通过Import注解导入了其内部类BeanPostProcessorRegister。 BeanPostProcessor中定义的registerBeanDefinition方法会被Spring容器调用。 registerBeanDefinitions方法调用了RegistrySyntheticBeanIf…...

年至年的选择仿elementui的样式
组件:<!--* Author: liuyu liuyuxizhengtech.com* Date: 2023-02-01 16:57:27* LastEditors: wangping wangpingxizhengtech.com* LastEditTime: 2023-06-30 17:25:14* Description: 时间选择年 - 年 --> <template><div class"yearPicker"…...

分类过程中的一种遮挡现象
( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由6张二值化的图片组成,让A,B中各有3个点,且不重合,统计迭代次数并排序。 其中有10组数据 差值结构 迭代次数 构造平均列A 构造平均列AB…...

下一代服务架构:单体架构-->分布式架构-->微服务(DDD)-->软件定义架构(SDF with GraphEngine)
参考:自己实现一个SQL解析引擎_曾经的学渣的博客-CSDN博客...

excel 之 VBA
1、excel和VBA 高效办公,把重复性的工作写成VBA代码(VB代码的衍生物,语法和VBA相同)。 首先打开开发工具模式,如果没有选显卡,需要手动打开 打开程序编辑界面 快捷键 altF11一般操作 程序调试…...

【数学建模】--聚类模型
聚类模型的定义: “物以类聚,人以群分”,所谓的聚类,就是将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计,分析或预测;也可以探究不…...

css3新增选择器总结
目录 一、属性选择器 二、结构伪类选择器 三、伪元素选择器 四、UI状态伪类选择器 五、反选伪类选择器 六、target选择器 七、父亲选择器、后代选择器 八、相邻兄弟选择器、兄弟们选择器 一、属性选择器 (除IE6外的大部分浏览器支持) E&#…...

0基础学C#笔记10:归并排序法
文章目录 前言一、递归的方式二、代码总结 前言 将一个大的无序数组有序,我们可以把大的数组分成两个,然后对这两个数组分别进行排序,之后在把这两个数组合并成一个有序的数组。由于两个小的数组都是有序的,所以在合并的时候是很…...
nlohmann json:通过for遍历object和array
object和array可以使用数for进行遍历: #include <iostream> #include <nlohmann/json.hpp> using namespace std; using json = nlohmann::json;auto checkJsonType(json& x) {if(x.type() == json::value_t::null){cout<<x<<" is null&quo…...

适配器模式:将不兼容的接口转换为可兼容的接口
适配器模式:将不兼容的接口转换为可兼容的接口 什么是适配器模式? 适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端所期望的另一个接口。它允许不兼容的类能够合作,使得原本由于接口不匹配而无法工作的类能够一…...

【量化课程】07_量化回测
文章目录 7.1 pandas计算策略评估指标数据准备净值曲线年化收益率波动率最大回撤Alpha系数和Beta系数夏普比率信息比率 7.2 聚宽平台量化回测实践平台介绍策略实现 7.3 Backtrader平台量化回测实践Backtrader简介Backtrader量化回测框架实践 7.4 BigQuant量化框架实战BigQuant简…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...