为什么 Tensorflow-gpu 仍在使用 cpu
why Tensorflow-gpu is still using cpu
我在后端使用带有 tensorflow-gpu 的 Keras,我没有安装 tensorflow(CPU - 版本),所有输出都显示已选择 GPU,但 tf 正在使用 CPU 和系统内存
当我 运行 我的代码输出是:output_code
我什至 运行 device_lib.list_local_device() 输出是:list_local_devices_output
在 运行 代码之后,我尝试了 nvidia-smi 来查看 gpu 的使用情况,输出是:
nvidia-smi output
Tensorflow-gpu = "1.12.0"
CUDA toolkit = "9.0"
cuDNN = "7.4.1.5"
环境变量包含:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
D:\Anaconda3;D:\Anaconda3\Library\mingw-w64\bin
D:\Anaconda3\Library\usr\bin;
D:\Anaconda3\Library\bin;
D:\Anaconda3\Scripts;D:\ffmpeg\bin\;
但是当我在任务管理器中检查内存使用情况时,输出仍然是
CPU 利用率 51%,RAM 利用率 86%
GPU 利用率 1%,GPU-RAM 利用率 0%
Task_manager_Output
所以,我认为它仍在使用 CPU 而不是 GPU。
系统配置:
Windows-10 64 bit; IDE: Liclipse; Python: 3.6.5
它正在使用 GPU,如您在日志中所见。
问题是,很多事情不能在 GPU 上完成,只要你的数据小,复杂度低,你最终的 GPU 使用率就会很低。
- 也许 batch_size 太低了 -> 增加直到 运行 进入 OOM 错误
- 您的数据加载耗费了大量时间,您的 gpu 必须等待(IO 读取)
- 您的 RAM 太低,应用程序使用磁盘作为后备
- 预处理速度太慢。如果您正在处理图像,请尝试将所有内容作为生成器或在可能的情况下在 gpu 上计算
- 您正在使用一些没有 GPU 加速的操作
Here是更详细的解释。
我在后端使用带有 tensorflow-gpu 的 Keras,我没有安装 tensorflow(CPU - 版本),所有输出都显示已选择 GPU,但 tf 正在使用 CPU 和系统内存
当我 运行 我的代码输出是:output_code
我什至 运行 device_lib.list_local_device() 输出是:list_local_devices_output
在 运行 代码之后,我尝试了 nvidia-smi 来查看 gpu 的使用情况,输出是: nvidia-smi output
Tensorflow-gpu = "1.12.0"
CUDA toolkit = "9.0"
cuDNN = "7.4.1.5"
环境变量包含:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
D:\Anaconda3;D:\Anaconda3\Library\mingw-w64\bin
D:\Anaconda3\Library\usr\bin;
D:\Anaconda3\Library\bin;
D:\Anaconda3\Scripts;D:\ffmpeg\bin\;
但是当我在任务管理器中检查内存使用情况时,输出仍然是
CPU 利用率 51%,RAM 利用率 86% GPU 利用率 1%,GPU-RAM 利用率 0% Task_manager_Output 所以,我认为它仍在使用 CPU 而不是 GPU。
系统配置:
Windows-10 64 bit; IDE: Liclipse; Python: 3.6.5
它正在使用 GPU,如您在日志中所见。 问题是,很多事情不能在 GPU 上完成,只要你的数据小,复杂度低,你最终的 GPU 使用率就会很低。
- 也许 batch_size 太低了 -> 增加直到 运行 进入 OOM 错误
- 您的数据加载耗费了大量时间,您的 gpu 必须等待(IO 读取)
- 您的 RAM 太低,应用程序使用磁盘作为后备
- 预处理速度太慢。如果您正在处理图像,请尝试将所有内容作为生成器或在可能的情况下在 gpu 上计算
- 您正在使用一些没有 GPU 加速的操作
Here是更详细的解释。