TensorFlow支持的cuda版本信息
指定GPU & GPU显存设置
-
命令行指定空闲的GPU运行python程序
CUDA_VISIBLE_DEVICES=0,2,3 python test.py
-
在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版本信息
-
第一种方法:通过输出
version.txt
的内容进行查看,命令为:cat /usr/local/cuda/version.txt
得到结果:CUDA Version 10.1.243
-
使用
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