记录运行gpu错误及解决方案

tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized

解决方案:运行程序之前,先运行export CUDA_VISIBLE_DEVICES=1;如图所示:

记录运行gpu错误及解决方案_第1张图片

最后结果:虽然成功运行,但CPU爆满,GPU使用率为0,没有用到GPU

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.125                Driver Version: 384.125                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  On   | 00000000:00:0A.0 Off |                    0 |
| N/A   29C    P0    31W / 250W |  15515MiB / 16276MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     25409      C   python                                     15503MiB |
从这里可以看出GPU对应的是0;从这里可以看出15515MiB / 16276MiBGPU的使用率已经接近100%

precess对应的python可以看出是python进程使用了GPU;查看python进程
ps -aux |grep python
root       974  0.0  0.0 573812 13164 ?        Ssl  May17  14:21 /usr/bin/python -Es /usr/sbin/tuned -l -P
root     12269  569 16.7 19581576 10330540 pts/5 Tl 10:10 2427:53 python train.py
root     17625  0.8  0.4 2222036 250196 pts/5  Tl   16:20   0:28 python train.py
root     18895  0.0  0.0 112712   972 pts/6    S+   17:16   0:00 grep --color=auto python
root     25409  375 19.4 44822564 11966148 pts/5 Tl Aug20 7284:52 python train.py

kill python 进程,如图所示:
记录运行gpu错误及解决方案_第2张图片

显示gpu内存使用为0;

原因解析:使用了ctrl+z终止程序;

但结果是仍然占据了极大的显存;

正确的使用方式是ctrl+c终止程序;

其结果是没有占用显存的

通过分析:ctrl+z是挂起程序;ctrl+c是终止程序
 

你可能感兴趣的:(linux)