Ubuntu18.04下CUDA10.x和TensorFlow1.x环境搭建(2019.7重编版)

2023-05-16

目录

    • 前言
    • 开发环境一览
    • ~~显卡驱动安装~~
      • ~~下载驱动~~
      • 禁用nouveau
      • ~~安装驱动~~
    • 安装CUDA 10.x
      • 第一个CUDA程序
    • 安装cudnn7.x
    • 安装TensorFlow1.x
    • 最后

Mac和Ubuntu下修改pip源和TensorFlow(CPU)安装

前言

其实主要是CUDA的安装, 别的都很简单.


开发环境一览

  • CPU: Intel® Xeon® CPU E5-2696 v3
  • GPU: NVIDIA GTX 1080Ti
  • OS: Ubuntu 18.04.2 LTS 64位

用指令看下英伟达显卡:

lspci | grep -I nvidia

当你搭建完成环境之后, 可以用官方案例查看硬件信息, 我的GPU信息显示如下图, 这张表的参数在后续的并行算法设计中是很有用的:

image.png


显卡驱动安装

这步其实可以跳过, CUDA包里面带了驱动, 但是我还是给出流程. 注意禁用nouveau这一步还是要的.

最好不要用Ubuntu附加驱动里提供的显卡驱动.
可能会遇到一些奇怪的问题, 当然, 锦鲤是不会出问题的(手动滑稽).
这是第一个坑点, 大体有三种展现方式:

  • 装完重启进不去系统, 卡住ubuntu加载页面;
  • 无限登录;
  • 装好了, 进入了系统, 然后输入nvidia-smi指令没有任何反应. 正常情况会弹出一张表, 如下所示:

image


下载驱动

我的实操:
首先到官网下载显卡驱动, 比方说我是GTX 1080Ti, 操作系统是64位Linux, 我就找对应的版本进行下载.

image

删掉以往的驱动. 注意, 就算你啥都没装, 这步也是无害的.

sudo apt-get remove --purge nvidia*

安装驱动需要的库:

sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic

驱动安装可能需要的库:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386

安装CUDA需要的库:

sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

禁用nouveau

打开blacklist.conf, 在最后加入禁用nouveau的设置, 这是一个开源驱动, 如图所示:

sudo vim /etc/modprobe.d/blacklist.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

image

禁用nouveau内核模块

echo options nouveau modeset=0
sudo update-initramfs -u

重启. 如果运行如下指令没用打印出任何内容, 恭喜你, 禁用nouveau成功了.

lsmod | grep nouveau

安装驱动

来到tty1(快捷键ctrl + alt + f1,如果没反应就f1-f7一个个试, 不同Linux, 按键会略有不同). 运行如下指令关闭图形界面. 我在ubuntu 18.04 LTS是ctrl + alt + f3-f6.

然后注意, 以下指令适用于16.04及以前.

sudo service lightdm stop

这不适用于18.04. 18.04可以如下操作:

  • 关闭用户图形界面
sudo systemctl set-default multi-user.target
sudo reboot
  • 开启用户图形界面
sudo systemctl set-default graphical.target
sudo reboot

安装驱动, 注意有坑, 一定要加**-no-opengl-files**, 不加这个就算安装成功, 也会出现无限登录问题. 但是在最近几次安装环境的时候, 例如系统是18.04, 驱动是418.43, 这个参数变得无效. 所以如果不能开启安装页面, 可以去掉此参数.

sudo chmod u+x NVIDIA-Linux-x86_64-390.87.run 
sudo ./NVIDIA-Linux-x86_64-390.87.run –no-opengl-files

image
image

如果你已经装了, 但是没有加**-no-opengl-files**, 按照如下操作可以救一下. 或者你安装失败了, 有些库缺少了之类的, 可以用以下命令卸载干净重来.

sudo ./NVIDIA-Linux-x86_64-390.87.run –uninstall

顺带一提, 可能会弹出Unable to find a suitable destination to install 32-bit compatibility libraries on Ubuntu 18.04 Bionic Beaver Linux的bug, 然后你需要下面三条指令:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386

并且中途的选项都选no比较好, 指不定卡死在安装哪个奇怪的东西上.

重启. 用nvidia-smi指令试一下, 如果看到类似下图, 恭喜你, 驱动安装成功. 或者看到附加驱动显示继续使用手动安装的驱动.

image

安装之后在软件和更新当中会显示继续使用手动安装的驱动. 当然了, 我一般都是ssh访问, 不怎么看界面的.


安装CUDA 10.x

到官网下载要的CUDA版本, 我这里是10.0, 下载runfile(local)版本, 如下图所示:

image

md5检测一下, 不合格要重新下载. 下图是我的检测结果:

md5sum cuda_10.0.130_410.48_linux.run

image

再次关闭图形界面

sudo service lightdm stop

这不适用于18.04. 18.04可以如下操作:

  • 关闭用户图形界面
sudo systemctl set-default multi-user.target
sudo reboot

安装时候依旧要加**-no-opengl-files**参数, 之后一路默认就好. 最好不要安装与OpenGL相关的.

sudo sh cuda_10.0.130_410.48_linux.run

image

然后会看到三个installed.

image

添加环境变量

vim ~/.bashrc

最后写入:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存退出, 并其生效.

source ~/.bashrc

运行一些检测命令, 如果和我显示的类似, 恭喜你, 环境配置完成. 可以跑一下英伟达提供的学习案例:

cat /proc/driver/nvidia/version
nvcc -V

image

image.png


第一个CUDA程序

除了官方案例, 可以自己写代码查看设备信息:

vim Device.cu
#include <stdio.h>
int main() {
        int nDevices;

        cudaGetDeviceCount(&nDevices);
        for (int i = 0; i < nDevices; i++) {
                cudaDeviceProp prop;
                cudaGetDeviceProperties(&prop, i);
                printf("Device Num: %d\n", i);
                printf("Device name: %s\n", prop.name);
                printf("Device SM Num: %d\n", prop.multiProcessorCount);
                printf("Share Mem Per Block: %.2fKB\n", prop.sharedMemPerBlock / 1024.0);
                printf("Max Thread Per Block: %d\n", prop.maxThreadsPerBlock);
                printf("Memory Clock Rate (KHz): %d\n",
                   prop.memoryClockRate);
                printf("Memory Bus Width (bits): %d\n",
                   prop.memoryBusWidth);
                printf("Peak Memory Bandwidth (GB/s): %.2f\n\n",
                   2.0 * prop.memoryClockRate * (prop.memoryBusWidth / 8) / 1.0e6);
        }
        return 0;
}
nvcc Device.cu -o Device.o && ./Device.o

image


安装cudnn7.x

首先到官网去下载勾选的4个:

image

然后解压tgz包, 复制文件到cuda环境, 接着安装deb包.

tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

sudo dpkg -i libcudnn7_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.5.0.56-1+cuda10.0_amd64.deb

[图片上传失败…(image-50262c-1564036668676)]

这样就完成安装了, 用个小栗子来测试下吧, 结果如图示:

cp -r /usr/src/cudnn_samples_v7/ ~ && cd ~/cudnn_samples_v7/mnistCUDNN
make clean && make && ./mnistCUDNN

image


安装TensorFlow1.x

注意TF要求GPU算力在3.5以上, 可以去英伟达官网查看自己笔记本的算力, 当然了, 你用CPU也行的.

sudo apt-get install python-pip python3-pip python-dev
sudo pip3 install tensorflow-gpu

image.png

最后我给出一个测试例子:

#!/usr/bin/python3

import tensorflow as tf
# Just disables the warning, doesn't enable AVX/FMA
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

hello = tf.constant("Hello, tf!")
sess = tf.Session()
printf (sess.run(hello))

image


最后

关于CPU版本, 可以参看Mac和Ubuntu下修改pip源和TensorFlow(CPU)安装. 喜欢记得点赞哦, 有意见或者建议评论区见~


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04下CUDA10.x和TensorFlow1.x环境搭建(2019.7重编版) 的相关文章

随机推荐

  • Ubuntu开机进入终端完成自救

    由于设置了etc下的关键配置 xff0c 导致系统一直卡在开机界面进不到系统桌面 xff0c 所以记录下自救的过程 1 重启开机后选择Ubuntu高级选项 xff0c 然后点击带有Recover的 xff0c 再点击Drop to root
  • 女生写的如何追mm.看完后嫩头青变高手

    我是女生 xff0c 看到有的男生想追自己喜欢的女孩子又不敢追 xff0c 还想人家倒追她 xff0c 我很反感 从一个女生的角度 xff0c 我比较了解女孩子的心理 女孩子大多不会主动出击 xff0c 去追求自己喜欢的男孩 xff0c 除
  • 使用Dockerfile创建docker镜像

    在Dockerfile中用到的命令有 FROM FROM指定一个基础镜像 xff0c 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令 至于image则可以是任何合理存在的image镜像 FROM 一定是首个非注释指
  • Ubuntu下软件更新无法安装的问题

    Ubuntu安装软件提示 需要安装不能信任的软件包 解决办法 用 Ubuntu 安装输入法软件包时提示 需要安装不能信任的软件包 xff0c 这个动作需要从没有授权的软件源来安装软件包 xff0c 赋予权限执行仍然无法安装 xff0c 上网
  • 【C#】C#中FTP的操作

    C 完成与FTP服务器交互的功能代码 包括连接FTP 上传文件 下载文件 创建文件夹 删除文件夹 目录列表 获取指定文件大小 对文件的重命名 移动文件 判断路径是否存在等功能 using System using System Collec
  • 深浅层特征融合——CBNet

    写在前面 本系列博客 深浅层特征融合 对几篇出现较新的深浅层特征融合算法进行简要介绍 xff0c 多为本人的论文笔记 xff0c 记录了一个深度学习小学生在看论文时想到的问题 论文题目 xff1a CBNet A Novel Composi
  • U盘安装mips架构的Deepin(或UOS)系统及配置适用的源

    安装环境 请确保您的电脑满足以下的配置要求 xff0c 如果您的电脑配置低于以下要求 xff0c 将无法完美地体验深度操作系统 xff1a 内存 xff1a 至少 2G 内存 RAM xff0c 4G 以上是达到更好性能的推荐值硬盘 xff
  • label smooth方法论文调研

    待看论文 xff1a When Does Label Smoothing Help xff08 重点要看的 xff09 Regularizing Neural Networks by Penalizing Confident Output
  • 动手实践——docker中利用jupyter对数据增强操作进行可视化

    整体流程 docker容器内搭建合适环境 gt 开启jupyter notebook gt 浏览器里敲数据增强操作代码 gt 可视化 搭建环境 参考博客 https segmentfault com a 1190000007448177 1
  • 半监督-SelfMatch-论文阅读笔记

    阅读背景 SimCLR在2020年2月第一次挂在arxiv上 xff0c 被ICML 2020接收 FixMatch在2020年1月第一次挂在arxiv上 xff0c 被NIPS 2020接收 概括总结 SelfMatch方法和 FixMa
  • AI提效工具|借助chatgpt快速读论文,快速总结、归纳、索引相似文章

    目前新论文层出不穷 xff0c 快速阅读论文 成为研究者们一个必备能力 本文简单记录了近期出现的两个借助chatgpt来帮助我们快速读论文的 神器 xff0c 帮助大家快速上手应用 xff0c 迅速提升论文阅读速度 此外 xff0c 本人也
  • 【更新中】目标检测——梳理,准备面试

    最近在准备找工作面试 xff0c 本文在此梳理了目标检测中涉及的面试要用的知识点 xff0c 包含了一下几方面 xff1a My paper reading 过程总结 xff1a 实际步骤所花时间评价改进先看了abstract 1 intr
  • python——迷宫问题总结

    关于迷宫问题 xff0c 常见会问能不能到达某点 xff0c 以及打印到达的最短路径 可以用回溯法 43 递归来解决 代码一 xff1a dfs 43 回溯 将矩阵外围以及路障统一设置为 1 设置current step和next step
  • (等待填坑)深度学习——蒸馏loss、蒸馏学习

    提出问题 参考博客 1 知识蒸馏 2 蒸馏
  • 图像篡改检测方向(Tamper Detection\ image forencis detection)学习笔记汇总(未完成)

    写在前面 最新在啃这个方向的论文 xff0c 零零总总找来了有几十篇 xff0c 目前自己也没看完 xff0c 下图中上面几行标星号的是自己打算多看几眼的 xff1a 这篇博客里会介绍几篇这个方向里做得比较好的几篇论文 demo工具 如果你
  • CELF优化的贪心算法

    用一个例子说明如下 xff1a 问题描述如下 xff1a 从一组节点中 xff0c 取出一组k个种子节点S xff0c 使得产生的增益最大 对任意的a属于A xff0c f a xff1a a加入之后的增益 有如下一个表 xff1a 初始扫
  • Linux磁盘分区基本分区

    目录 前言 一 磁盘简介 1 名词 2 类型 1 xff09 机械硬盘 2 xff09 固态硬盘 3 尺寸 4 接口 IDE和SATA的区别 5 术语 6 命名 7 分区方式 1 xff09 MBR 2 xff09 GPT 二 管理磁盘 1
  • 使用shell并发执行系统命令

    一 解决方案 旧方案为挨个执行shell exec xff0c 串行执行 xff0c 虽然执行很快 xff0c 奈何监听命令众多 xff0c redis连接有等待时间等 xff0c 有的还需要执行多次取平均值 xff0c 所以执行完已超过1
  • 基于C语言实现(WinForm)FIFA球队管理系统【100010337】

    1 引言 1 1 编写目的 在如今市场上 xff0c 各种评估分析类的软件层出不穷 作为当今世界上最受欢迎的球类之一 足球 xff0c 也以之为题材产生了世人所知的足球管理类游戏 xff0c FIFA足球经理 但是 xff0c 由于其占用内
  • Ubuntu18.04下CUDA10.x和TensorFlow1.x环境搭建(2019.7重编版)

    目录 前言开发环境一览 显卡驱动安装 下载驱动 禁用nouveau 安装驱动 安装CUDA 10 x第一个CUDA程序 安装cudnn7 x安装TensorFlow1 x最后 Mac和Ubuntu下修改pip源和TensorFlow CPU