Ubuntu P40显卡配置CUDA 10.1,CUDNN 7.6,Conda 5.2.0, Tensorflow-gpu 1.8
时间:2020-01-15
本文章向大家介绍Ubuntu P40显卡配置CUDA 10.1,CUDNN 7.6,Conda 5.2.0, Tensorflow-gpu 1.8,主要包括Ubuntu P40显卡配置CUDA 10.1,CUDNN 7.6,Conda 5.2.0, Tensorflow-gpu 1.8使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 安装CUDA
禁用nouveau
vim /etc/modprobe.d/blacklist.conf
最后两行加入
blacklist nouveau
options nouveau modeset=0
重新生成 kernel initramfs:
update-initramfs -u
重启
reboot
输入
lsmod | grep nouveau
没有输出信息则禁用成功
安装CUDA 10.1
官网下载
cuda_10.1.168_418.67_linux.run
增加可执行权限
chmod +x cuda_10.1.168_418.67_linux.run
直接安装
./cuda_10.1.168_418.67_linux.run
安装完以后,添加环境变量到 ~/.bashrc
export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH"
使环境变量生效
source ~/.bashrc
将库加入到目录中去,vim /etc/ld.so.conf.d/cuda-10-1.conf
,增加一行
/usr/local/cuda-10.1/lib64
2.安装 CUDNN 7.6
官网下载
cudnn-10.1-linux-x64-v7.6.1.34.so.tgz
解压
tar -zxvf cudnn-10.1-linux-x64-v7.6.1.34.so.tgz
复制到CUDA的对应目录中去
cp lib64/* /usr/local/cuda/lib64/
cp include/cudnn.h /usr/local/cuda/include/
3. 安装 Anaconda 5.2.0
直接从 tuna 下载
Anaconda3-5.2.0-Linux-x86_64.sh
增加可执行权限,安装即可
chmod +x Anaconda3-5.2.0-Linux-x86_64.sh
./Anaconda3-5.2.0-Linux-x86_64.sh
安装完会自动添加到环境变量,不过需要刷新一下环境变量
source ~/.bashrc
4.安装Tensorflow-gpu 1.8
直接用 conda
安装
conda install tensorflow-gpu=1.8
5. 验证 CUDA是否安装好的一些办法
查看版本
nvcc -V
进入到 /usr/local/cuda/samples
,make
编译一下
找到bin/x86_64/linux/release/
目录,里面有deviceQuery
,bandwidthTest
等,运行一下 出现 PASS就说明OK了。
./deviceQuery
./bandwidthTest
6.踩过的坑
a. 一定要使用 Nvidia 官方支持的系统,最开始使用 ubuntu 19.04 安装过程中一大堆问题,勉强装上了一跑代码就宕机了,太坑了。
b. 网上有添加 ppa 源之类的方法,行不通,估计是墙的原因,一直下载不了,最好还是下载文件安装,比较稳定一点。
c. 如果用别人的方法能一次成功,那真的是奇了怪了。
原文地址:https://www.cnblogs.com/willwell/p/12195611.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 汉语分词领域主要分词算法、组件、服务(上)...
- MySQL索引 Krains 2020-08-09
- 「查缺补漏」巩固你的Redis知识体系
- MySQL事务 Krains 2020-08-09
- Linux本地提权漏洞复现与检测思路
- 内容安全策略( CSP )
- [译] 优化 React APP 的 10 种方法
- 如何免登陆观看b站大会员番剧
- 聊聊越来越火的对象存储
- AJAX的基本原理及实例解析。
- Docker私有镜像仓库是什么?
- React Native布局详细指南
- 走进Golang之Context的使用
- 「Workshop」第十一期:降维
- 开始在 GitHub 上写博客