Python 虽然安装了Tensorflow GPU,但我的脚本似乎没有在GPU上执行
我有一台装有cuda 10.1和tensorflow以及tensorflow gpu 1.14.0的机器。我正在运行一个python脚本,用VirtualNV训练CNN。我在源代码中指出我要使用GPU,如下所示:Python 虽然安装了Tensorflow GPU,但我的脚本似乎没有在GPU上执行,python,tensorflow,Python,Tensorflow,我有一台装有cuda 10.1和tensorflow以及tensorflow gpu 1.14.0的机器。我正在运行一个python脚本,用VirtualNV训练CNN。我在源代码中指出我要使用GPU,如下所示: import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"; os.environ["CUDA_VISIBLE_DEVICES"]="0"; 然而,当我运行脚本时,培训阶段需要花费很多时间才能完成。以下是我的nvidia smi的输出
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID";
os.environ["CUDA_VISIBLE_DEVICES"]="0";
然而,当我运行脚本时,培训阶段需要花费很多时间才能完成。以下是我的nvidia smi的输出:
我觉得奇怪的是,为什么GPU的利用率这么低,为什么我的python脚本没有出现在进程列表中。以下是我尝试过的一些命令的输出:
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
输出是
2019-10-14 09:53:12.674719:I
tensorflow/core/platform/cpu\u feature\u guard.cc:142]您的cpu支持
未编译此TensorFlow二进制文件以使用的指令:AVX2
FMA 2019-10-1409:53:12.679047:I
tensorflow/stream_executor/platform/default/dso_loader.cc:42]
已成功打开动态库libcuda.so.1 2019-10-14
09:53:12.784993:I
tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005]成功
从SysFS读取的NUMA节点具有负值(-1),但必须存在
至少一个NUMA节点,因此返回NUMA节点零2019-10-14
09:53: 12.785744:I TysFult/编译器/XLA/Service / Service X: 168:XLA
服务0x55f155c59650在平台CUDA上执行计算。
设备:2019-10-1409:53:12.785771:I
tensorflow/compiler/xla/service/service.cc:175]StreamExecutor
设备(0):GeForce RTX 2080 Ti,计算能力7.5 2019-10-14
09:53:12.806453:I
tensorflow/core/platform/profile_utils/cpu_utils.cc:94]cpu频率:
3600000000Hz 2019-10-1409:53:12.807345:I
TysFROUL/编译器/XLA/Service / Service X: 168 XLA服务
0x55f15605dfc0在平台主机上执行计算。设备:
2019-10-14 09:53:12.807408:I
tensorflow/compiler/xla/service/service.cc:175]StreamExecutor
设备(0):2019-10-1409:53:12.807829:I
tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005]成功
从SysFS读取的NUMA节点具有负值(-1),但必须存在
至少一个NUMA节点,因此返回NUMA节点零2019-10-14
09:53:12.808859:I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1640]找到了设备0
属性:名称:GeForce RTX 2080 Ti大调:7小调:5
内存锁定速率(GHz):1.545 pciBusID:0000:01:00.0 2019-10-14
09:53:12.809148:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是“libcudart.so.10.0”开放库;dlerror:libcudart.so.10.0:
无法打开共享对象文件:没有该文件或目录;
LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.809313:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是开放图书馆“libcublas.so.10.0”;D错误:libcublas.so.10.0:
无法打开共享对象文件:没有该文件或目录;
LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.809481:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是开放图书馆“libcufft.so.10.0”;错误:libcufft.so.10.0:
无法打开共享对象文件:没有该文件或目录;
LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.809531:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是开放图书馆“libcurand.so.10.0”;D错误:libcurand.so.10.0:
无法打开共享对象文件:没有该文件或目录;
LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.809572:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是dlopen图书馆“libcusolver.so.10.0”;德莱罗:
libcusolver.so.10.0:无法打开共享对象文件:没有此类文件或
目录LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.809611:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是dlopen库'libcusparse.so.10.0';德莱罗:
libcusparse.so.10.0:无法打开共享对象文件:没有此类文件或
目录LD_库_路径:
/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:2019-10-14
09:53:12.811997:I
tensorflow/stream_executor/platform/default/dso_loader.cc:42]
已成功打开动态库libcudnn.so.7 2019-10-14
09:53:12.812038:W
tensorflow/core/common_runtime/gpu/gpu_device.cc:1663]无法打开
一些GPU库。正在跳过注册GPU设备。。。2019-10-14
09:53:12.812059:I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1181]device
具有强度1边缘矩阵的互连拖缆执行器:2019-10-14
09:53:12.812067:I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]0
2019-10-14 09:53:12.812072:I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1200]0:N device
映射:/job:localhost/replica:0/task:0/device:XLA\GPU:0->device:
XLA\U GPU设备/作业:本地主机/副本:0/任务:0/设备:XLA\U CPU:0->
设备:XLA_CPU设备2019-10-14 09:53:12.812372:I
tensorflow/core/common_runtime/direct_session.cc:296]设备映射:
/作业:本地主机/副本:0/任务:0/设备:XLA\U GPU:0->设备:XLA\U GPU
设备/作业:本地主机/副本:0/任务:0/设备:XLA\U CPU:0->设备:
XLA_CPU设备
我试过的另一个命令是
>>> with tf.Session() as sess:
devices = sess.list_devices()
输出是
2019-10-14 09:55:52.398317:I
tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005]成功
从SysFS读取的NUMA节点具有负值(-1),但必须存在
至少一个NUMA节点,因此返回NUMA节点零2019-10-14
09:55:52.399249:I
tensorflow/core/common_runtime/gpu/gpu_device.cc:1640]找到了设备0
属性:名称:GeForce RTX 2080 Ti大调:7小调:5
内存锁定速率(GHz):1.545 pciBusID:0000:01:00.0 2019-10-14
09:55:52.399355:I
tensorflow/stream_executor/platform/default/dso_loader.cc:53]
不是dlopen库的libcudart
>>> from tensorflow.python.client import device_lib
>>> print(device_lib.list_local_devices())
##########################
# Install Miniconda
##########################
mkdir -p ~/install
cd ~/install
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# I guess on a mac you should do
# wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
#########################
# install nvidia driver
# so these are the linux (ubuntu) commands
# for mac, maybe one should follow the scheme
# removing nvidia drivers first
# and then download newest nvidia driver
# and install it
# and reboot
#
# If you are using a laptop without gpu, just skip this block
#########################
sudo apt purge nvidia-* # remove all nvidia driver first
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt install nvidia-driver-418
sudo apt install nvidia-cuda-toolkit
# reboot
sudo reboot
#########################
# install machine learning stuff keras tensorflow-gpu
#
# if you are installing in a laptop without gpu,
# replace 'tensorflow-gpu' by 'tensorflow'!
#########################
conda create --name keras
conda activate keras
conda install python ipython jupyter pandas scipy seaborn scikit-learn tensorflow-gpu keras pytest openpyxl graphviz
#########################
# finally, test a successful installation by:
# entering:
ipython # and there trying:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
# should list gpu
# sth like:
physical_device_desc: "device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 14085000268159177816
physical_device_desc: "device: XLA_GPU device"
]