普通电脑pc怎样跑tensorflow的gpu模式

author author     2023-04-13     157

关键词:

首先需要看你的PC配置是否够,TF的GPU模式只支持N卡,然后计算能力高于3.0,具体可以查:


安装教程可以参考:



Ubuntu16.04上gtx1080的cuda安装
July 17 2016
目前tensorflow是一个非常流行的深度学习计算框架,常规硬件及系统的安装方法官方的doc已经说的很清楚了,但是 因为系统是ubuntu16.04,显卡是GTX1080,所以不可避免的要折腾起来。在上一篇已经在16.04上安装好了驱动。接下来其实 重点安装的是CUDA和cuDNN.
首先说为什么要安装CUDA和cuDNN,关于采用GPU计算比CPU有速度有多少提升的benchmark找找就有,这次重点是怎么让tensorflow充分用的 上GTX1080能力。具体的就是如何把支持GTX1080的CUDA和cuDNN装起来,然后让tensorflow认识我们新装的CUDA和cuDNN。
首先总体说下安装步骤:
1 首先要注册NVIDIA developer的帐号,分别下载CUDA和cuDNN
2 确认准备gcc版本,安装依赖库sudo apt-get install freegl
3 安装CUDA
4 解压cuDNN
5 clone tensorflow源码,configure配置
6 编译安装
7 最后一哆嗦,测试!
准备工作
在正式开始前,需要做几个准备工作,主要是大概先看下文档
cuda FAQ
tensorflow 的安装文档
cuda-gpu的支持列表/计算能力/FAQ
cudnn 5.1有多牛
cuda tookit下载页面
CUDA_Installation_Guide_Linux.pdf
cudnn User Guide
文档看过之后接下来就是实际动手的过程:
1 注册NVIDIA developer的帐号,分别下载CUDA和cuDNN
1.1 下载CUDA 打开cuda toolkit下载页面,GTX1080 要用的是CUDA 8。先点击JOIN,注册帐号。 完了后,再回到cuda toolkit下载页面。选择 linux, x86-64, ubuntu, 16.04, runfile(local)
1.2 下载cuDNN 进入cudnn的下载页,一堆调查,日志写时下载的是[Download cuDNN v5 (May 27, 2016), for CUDA 8.0 RC],点开选linux,不出意外的话这个就是下载地址.
2 确认GCC版本,安装依赖库
确认本机gcc版本,16.04默认的是gcc 5,这里安装需要的最高是gcc 4.9。接下来就安装配置gcc 4.9.
2.1 安装gcc 4.9,并修改系统默认为4.9
sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9
gcc --version
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
gcc --version


2.2 一个小依赖
sudo apt-get install freegl


3 安装CUDA
需要注意的是这个地方有个选择安装低版本驱动的地方,选n 大致的安装流程如下:
3.1 安装CUDA
chmod  +x /cuda_8.0.27_linux.run
./cuda_8.0.27_linux.run

....

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/h ]: /home/h/Documents/cuda_samples

....



3.2 写入环境变量
vim ~/.bashrc
#添加下面变量
export PATH=/usr/local/cuda-8.0/bin$PATH:+:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH


3.3 安装好后简单验证
a. 进入刚配置时指定的cuda sample所在文件夹,NVIDIA_CUDA-8.0_Samples/
b. cd 0_Simple/asyncAPI;sudo make
c. NVIDIA_CUDA-8.0_Samples/0_Simple/asyncAPI$ ./asyncAPI [./asyncAPI] - Starting… GPU Device 0: 逗GeForce GTX 1080地 with compute capability 6.1 CUDA device [GeForce GTX 1080] time spent executing by the GPU: 10.94 time spent by CPU in CUDA calls: 0.19 CPU executed 50591 iterations while waiting for GPU to finish
4 安装cuDNN
h@h:~/Downloads$ tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.0.5
cuda/lib64/libcudnn_static.a

h@h:~/Downloads$ sudo cp -R cuda/lib64 /usr/local/cuda/lib64
h@h:~/Downloads$ sudo mkdir -p /usr/local/cuda/include
h@h:~/Downloads/cuda$ sudo cp include/cudnn.h /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*



5 clone, configure tensorflow
5.1 clone源码
$ git clone


5.2 configure配置
整个配置流程应该跟下面的基本一样的
h@h:~/Downloads/tensorflow$ cd ./tensorflow/
h@h:~/Downloads/tensorflow$ ./configure
Please specify the location of python. [Default is /usr/bin/python]:
***Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N***
No Google Cloud Platform support will be enabled for TensorFlow
***Do you wish to build TensorFlow with GPU support? [y/N] y***
GPU support will be enabled for TensorFlow
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]:
**Please specify the location where CUDA  toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-8.0 **

**Please specify the Cudnn version you want to use. [Leave empty to use system default]: 5.0.5**
**Please specify the location where cuDNN 5.0.5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-8.0]: /usr/local/cuda**
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at:
**Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.1**
Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished


6 编译安装
6.1 编译工具Bazel安装配置 
先看一眼文档 然后就执行下面的流程:
#安装java 1.8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

#安装好后车参考下
java -version

#添加源
echo "deb [arch=amd64] stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl | sudo apt-key add -

#下载
sudo apt-get update && sudo apt-get install bazel

#升级
sudo apt-get upgrade bazel


6.2 编译tensorflow的pip版本并安装
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# The name of the .whl file will depend on your platform.
#注意编译完成后生成的文件名字和官方doc里面的是不一定一致的

$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.*-linux_x86_64.whl


i6700k 32g编译时间:

只编译代码不带pip INFO: Elapsed time: 967.271s, Critical Path: 538.38s

bazel-bin/tensorflow/tools/pip_package/build_pip_package INFO: Elapsed time: 65.183s, Critical Path: 48.58
7 最后测试
前面都整完了,现在该测试了,注意前面有两个动态链接库的位置,cuDNN在/usr/local/cuda/lib64, 而cuda在/usr/local/cuda-8.0/lib64,所以这个时候的bashrc应该这么写:
export PATH=/usr/local/cuda-8.0/bin$PATH:+:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH



写完后,
source ~/.bashrc
cd tensorflow/tensorflow/models/image/mnist
python convolutional.py


成功的话会出现流畅的跑动:
h@h:~/Downloads/tensorflow/tensorflow/models/image/mnist$ python convolutional.py
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so.5.0.5 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8475
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.41GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Initialized!
Step 0 (epoch 0.00), 8.4 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%

......

Minibatch error: 0.0%
Validation error: 0.7%
Step 8500 (epoch 9.89), 4.7 ms
Minibatch loss: 1.601, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 0.9%
Test error: 0.8%

参考技术A 普通电脑PC怎样跑TensorFlow的GPU模式
在Mac电脑上面编译GPU版本TensorFlow的方法
基本使用
使用 TensorFlow, 你必须明白 TensorFlow:
使用图 (graph) 来表示计算任务.
在被称之为 会话 (Session) 的上下文 (context) 中执行图.
使用 tensor 表示数据.
通过 变量 (Variable) 维护状态.
使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.

tensorflow使用cpu可以跑(运行),但是使用gpu却不能用的情况

在跑的时候可以让加些选项:withtf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)):其中allow_soft_placement能让tensorflow遇到无法用GPU跑的数据时,自动切换成CPU进行。log_device_placement则记录一些日志。 查看详情

深度学习tensorflow如何使用多gpu并行模式?

TensorFlow可以用单个GPU,加速深度学习模型的训练过程,但要利用更多的GPU或者机器,需要了解如何并行化地训练深度学习模型。常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。下面将介绍这两种模式的工作... 查看详情

win10+独显+anaconda3+tensorflow_gpu1.13安装教程(跑bert模型)

...imeCuDNNlibrary:7.3.1butsourcewascompiledwith:7.4.1,这是由于最新的tensorflow1.13需要用Cudnn7.4.1编译。这个问题,StackOverflow上有人问到,但是目前依然未有人给出解决办法,下文会详述。1.去nvida官网下载显卡对应的 查看详情

下载tensorflow-gpu版本的源

...的时候,不小心把环境弄崩了是非常惨的。    下载tensorflow-gpu版本的源    dockerpulldaocloud.io/daocloud/tensorflow:0.11.0-gpu    1    编辑方便的脚本文件启动docker    先查下你有几个GPU设备    [[email pr 查看详情

anaconda安装tensorflow(gpu)

1、安装如果是安装CPU模式的tensorflow,只要输入一下代码就可以了pipinstalltensorflow 下面是gpu模式的安装过程createacondaenvironmentcalledtensorflow:#Python2.7$condacreate-ntensorflowpython=2.7#Python3.4$condacreate-ntensorflowpytho 查看详情

pc虽然识别gpu,但是在tensorflow-gpu中使用了一个CPU

】pc虽然识别gpu,但是在tensorflow-gpu中使用了一个CPU【英文标题】:Althoughpcrecognizesgpu,itusesaCPUintensorflow-gpu【发布时间】:2019-01-0605:47:05【问题描述】:我正在使用tensorflow-gpu。我想使用GTX1070,但tensorflow-gpu使用我的CPU。我不知道... 查看详情

tensorflow只能在装有gpu的机器上运行

参考技术A是的。使用支持gpu的tensorflow的前提是安装了正确版本的CUDA和cuDNN。关于CUDA和cuDNN的安装可以参考NVIDIA官网和网上各种安装教程,在此不再赘述。本文想要强调的重点是要安装支持自己的GPU的版本,然后根据CUDA版本安装... 查看详情

tensorflow—gpu报错

一晚上什么事都没做,就一直在查找tensorflow1.4缺少cudnn64_6的错误。最后发现自己一直用的是cudnn64_7,即使改成cudnn64_6仍不可行。主要受实验室大佬安装的cudnn64_7的影响,估计它用的是cuda9。最后重新下载安装了cudnn64_6后代码跑成... 查看详情

tensorflow设置gpu使用量

在默认条件下,tensorflow会一次占满左右显存!这对于我们想在同一台机器上跑多个程序不利(后面的程序会报显存不足的错误),可以通过以下方式,设置tensorflow中显存的使用方式在Python代码中指定GPUimportosos.environ["CUDA_DEVICE_OR... 查看详情

为啥tensorflow训练用gpu比cpu更慢了

...用率只有3%左右,GPU比CPU慢一倍。参考技术A安装GPU版本的tensorflow就可以了pipinstall--upgrade还需要安装GPU加速包,下载CUDA和cuDNN的安装包了,注意版本号分别是CUDA8.0和cuDNN5.1。如果都安装成功,运行程序时会自动使用GPU计算本回答... 查看详情

超算平台安装anaconda和tensorflow(代码片段)

背景:因为我们学校有个超算系统,老师让我们把程序都放在上面跑。鉴于超算的GPU是TeslaV10016GB,虽然老师只买了8块GPU的使用权,我还是不忍心用自己的电脑跑深度学习的程序。于是记录一下安装过程。操作系... 查看详情

在 TensorFlow 中限制 GPU 设备

】在TensorFlow中限制GPU设备【英文标题】:LimitGPUdevicesinTensorflow【发布时间】:2018-06-1809:14:12【问题描述】:我正在用Python开发一个使用Tensorflow的应用程序和另一个使用GPU的模型。我有一台带有许多GPU(3xNVIDIAGTX1080)的PC,由于所有... 查看详情

查看是否用gpu跑的tensorflow程序(代码片段)

查看是否用GPU跑的TensorFlow程序第一种方法,直接输出日志法(推荐)importtensorflowastfsess=tf.Session(config=tf.ConfigProto(log_device_placement=True))第二种方法,跑计算量打的程序,然后用nvidia-smi查看GPU的使用情况 查看详情

如何让 TensorFlow 使用 100% 的 GPU?

】如何让TensorFlow使用100%的GPU?【英文标题】:HowtomakeTensorFlowuse100%ofGPU?【发布时间】:2020-02-2817:53:46【问题描述】:我有一台配备RTX2060GPU的笔记本电脑,我正在使用Keras和TF2在其上训练LSTM。我还在监控nvidia-smi的gpu使用情况,我... 查看详情

windows10下nvidiageforcemx150tensorflow-gpu配置(代码片段)

引言越来越多的的人入坑机器学习,深度学习,tensorflow作为目前十分流行又强大的一个框架,自然会有越来越多的新人(我也刚入门)准备使用,一般装的都是CPU版的tensorflow,然而使用GPU跑tensorflow,速度可以快上好几倍。正好... 查看详情

tensorflow-gpu 耗时太长

】tensorflow-gpu耗时太长【英文标题】:tensorflow-gputakingtoolong【发布时间】:2021-08-0723:33:52【问题描述】:已解决我最近购买了一台配备NvidiaRTX3080的笔记本电脑,并安装了tensorflow-gpu所需的必要库。安装它们后,我正在运行以下代... 查看详情

尽管安装了 tensorflow-gpu,但 GPU 不用于计算

】尽管安装了tensorflow-gpu,但GPU不用于计算【英文标题】:GPUisnotusedforcalculationsdespitetensorflow-gpuinstalled【发布时间】:2017-10-0500:06:08【问题描述】:我的电脑安装了以下软件:Anaconda(3)、TensorFlow(GPU)和Keras。有两个Anaconda虚拟环境-... 查看详情

tensorflow2添加命令使用cpu训练

https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_411.31_win10昨天把GPU版本的tf2.0安装成功之后,现在所有的代码运行居然都在gpu上跑了,并且在对gpu使用情况没有限制的条件下,既然gpu内存跑满了,代码就崩了怎么... 查看详情