【待整理】GPU常见操作汇总

TensorFlow支持的cuda版本信息

指定GPU & GPU显存设置

  • 在Python代码中指定GPU

    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    os.environ[“CUDA_VISIBLE_DEVICES”] =1,0#设置当前使用的GPU设备为1,0号两个设备,名称依次为'/gpu:0'、'/gpu:1'。表示优先使用1号设备,然后使用0号设备
    
  • 设置定量的GPU使用量

    config = tf.ConfigProto()
    config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存
    session = tf.Session(config=config)
    
  • 按需分配GPU使用

    #allow growth
    config = tf.ConfigProto()
    config.gpu_options.allow_growth = True
    session = tf.Session(config=config)
    # 使用allow_growth option,刚一开始分配少量的GPU容量,然后按需慢慢的增加,由于不会释放内存,所以会导致碎片
    

内存碎片的问题还没召出处,后面完善下该命令。。。

查看cuda版本信息

  1. 第一种方法:通过输出version.txt的内容进行查看,命令为:

    cat /usr/local/cuda/version.txt
    

    得到结果:CUDA Version 10.1.243

  2. 使用nvcc命令查看cuda编译版本

    /usr/local/cuda/bin/nvcc --version
    

    其实也可以直接使用nvcc --version命令进行查看,如果提示nvcc: command not found...,根据可以执行/usr/local/cuda/bin/nvcc --version命令可以得知,cuda的相关命令没有加入到环境变量中,导致nvcc命令不能使用,将该环境变量加入到~/.bashrc~/.zshrc中即可,具体为:

    配置文件中PATH路径插入/usr/local/cuda/bin

    export PATH=$HOME/bin:/usr/local/bin:/usr/local/cuda/bin:$PATH
    

下载CUDA驱动

平常下载cuda驱动,都是进入谷歌进入官网中下载。但通过首页进下载页面都是最新的版本。

2019年12月14日20:13:25 这个时间点进去https://developer.nvidia.com/cuda-toolkit看到的是10.2的下载版本。
在这里插入图片描述
此时点击Legacy Releases版本,进入历史版本的下载页面中,选择相应的版本即可。

在这里插入图片描述
例如这里与tf1.14配套的cuda版本为10.0.130,对应的下载链接为 https://developer.nvidia.com/cuda-10.0-download-archive

注:通过网页进行下载的方式比较慢,可以使用迅雷下载,相对较快。

TensorFlow不能使用GPU

一个问题:GPU版本比CPU版本高,导致不能使用。可以通过【】问题查看。

环境为:

#cuda版本
Cuda compilation tools, release 10.0, V10.0.130

#tensorflow版本
tensorflow (1.14.0)
tensorflow-gpu (1.14.0)

cuda 10.1中不支持tf 1.14

Mark CUDA 10.1 as unsupported. #4264

whether cuda toolkit 10.1 version supports tensorflow 1.14Version? #32901

Compatibility with Cuda 10.1? #26289
need guide to build with CUDA 10.1 #26150 该issue中提到了ln的方法,这么操作后能够检测到,但还是不能使用。

#cuda版本
Cuda compilation tools, release 10.1, V10.1.243

#tensorflow版本
tensorflow (1.14.0)
tensorflow-gpu (1.14.0)

OS版本:CentOS Linux release 7.6.1810 (Core)
kernel版本:3.10.0-957.el7.x86_64

same issue, I can’t use the GPU when I used the follow command:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

my environment:

#cuda version
Cuda compilation tools, release 10.1, V10.1.243

#tensorflow version
tensorflow (1.14.0)
tensorflow-gpu (1.14.0)

#OS version
CentOS Linux release 7.6.1810 (Core)

#kernel version
3.10.0-957.el7.x86_64

卸载操作 Cuda remove 10.1 and install 10.0 Ubuntu 18.04

暂时未支持GPU

Unless you have a very specific reason to use cuda 10.1, I’d strongly recommended to use cuda 10.0, which works great with the tensorflow binary package. Please note that GPU drivers themselves can be still the latest.

https://github.com/tensorflow/tensorflow/issues/32901

解决方法:
卸载重装cuda10.0,在重装之前先进行下面的操作:

来源:https://github.com/tensorflow/tensorflow/issues/26150#issuecomment-469058265

locate /usr -b "libcublas*"
sudo cp /usr/lib64/libcublas.so.10.2.1.243 /usr/local/cuda-10.1/lib64/
ls /usr/local/cuda-10.1/lib64/libcublas.so.10.1

sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10.1.2.1.243 /usr/local/cuda-10.1/lib64/libcublas.so.10.1
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10.1 /usr/local/cuda-10.1/lib64/libcublas.so
sudo ln -s /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda-10.1/lib64/libcusolver.so.10.1
sudo ln -s /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda-10.1/lib64/libcurand.so.10.1
sudo ln -s /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda-10.1/lib64/libcufft.so.10.1

在这里插入图片描述

发布了134 篇原创文章 · 获赞 30 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/donaldsy/article/details/103519734
今日推荐