Caffe:训练后GPU CUDA错误:检查失败:error == cudaSuccess (30 vs. 0) unknown error
Caffe: GPU CUDA error after training: Check failed: error == cudaSuccess (30 vs. 0) unknown error
有时在训练后或当我按 CTRL + C 手动停止训练时,我会收到此 cuda 错误:
检查失败:error == cudaSuccess (30 vs. 0) 未知错误
不过,这只是最近才开始发生的。有没有人以前经历过这种情况,或者您知道如何解决这个问题或问题是什么?
完整日志:
I1027 09:29:37.779079 11959 caffe.cpp:217] Using GPUs 0
I1027 09:29:37.780676 11959 caffe.cpp:222] GPU 0: �|���
F1027 09:29:37.780697 11959 common.cpp:151] Check failed: error == cudaSuccess (30 vs. 0) unknown error
*** Check failure stack trace: ***
@ 0x7f6cc4f465cd google::LogMessage::Fail()
@ 0x7f6cc4f48433 google::LogMessage::SendToLog()
@ 0x7f6cc4f4615b google::LogMessage::Flush()
@ 0x7f6cc4f48e1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7f6cc5558032 caffe::Caffe::SetDevice()
@ 0x40b3f8 train()
@ 0x407590 main
@ 0x7f6cc3eb7830 __libc_start_main
@ 0x407db9 _start
@ (nil) (unknown)
尝试做 make all
--> make test
--> make runtest
。它应该工作
使用nvidia-smi
命令查看GPU
和CPU
上有哪些程序是运行。如果你看到 caffe
的任何不需要的实例在按下 ctrl+c
后仍然是 运行,你应该杀死那些具有进程 ID 的实例。如下所示:
+------------------------------------------------------+
| NVIDIA-SMI 352.63 Driver Version: 352.63 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 980 Ti Off | 0000:01:00.0 On | N/A |
| 58% 83C P2 188W / 260W | 1164MiB / 6142MiB | 96% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 980 Ti Off | 0000:02:00.0 Off | N/A |
| 53% 73C P2 127W / 260W | 585MiB / 6143MiB | 35% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1101 C ...-xx/build/tools/caffe 788MiB |
| 0 1570 G /usr/bin/X 235MiB |
| 0 1594 C /usr/bin/python 102MiB |
| 0 2387 G compiz 10MiB |
| 0 3984 G /usr/local/MATLAB/R2016a/bin/glnxa64/MATLAB 2MiB |
| 1 25056 C /usr/bin/caffe 563MiB |
+-----------------------------------------------------------------------------+
你应该用这个命令杀死sudo kill -9 1101
在 运行 Make all 之后,注意到一些关于 libcudnn 库的错误,我将它们复制到 /usr/lib/x86_64-linux-gnu 和 /usr/local/cuda-8.0/lib64 中。只留下 /usr/lib/x86_64-linux-gnu 中的那些并重新启动笔记本电脑后一切正常。
如果您的程序无法创建或打开 /dev/nvidia-uvm 设备文件,则可能会显示 CUDA 运行时错误 (30)。这通常通过安装软件包 nvidia-modprobe 来解决:
sudo apt-get install nvidia-modprobe
尝试reinstall/build当前内核的nvidia驱动程序
sudo apt-get install --reinstall nvidia-375
sudo apt-get install nvidia-modprobe
如果您的程序无法创建或打开 /dev/nvidia-uvm
设备文件,可能会显示 CUDA 运行时错误 (30)。这通常通过安装软件包 nvidia-modprobe 来解决:
(Source)
有时在训练后或当我按 CTRL + C 手动停止训练时,我会收到此 cuda 错误:
检查失败:error == cudaSuccess (30 vs. 0) 未知错误
不过,这只是最近才开始发生的。有没有人以前经历过这种情况,或者您知道如何解决这个问题或问题是什么?
完整日志:
I1027 09:29:37.779079 11959 caffe.cpp:217] Using GPUs 0
I1027 09:29:37.780676 11959 caffe.cpp:222] GPU 0: �|���
F1027 09:29:37.780697 11959 common.cpp:151] Check failed: error == cudaSuccess (30 vs. 0) unknown error
*** Check failure stack trace: ***
@ 0x7f6cc4f465cd google::LogMessage::Fail()
@ 0x7f6cc4f48433 google::LogMessage::SendToLog()
@ 0x7f6cc4f4615b google::LogMessage::Flush()
@ 0x7f6cc4f48e1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7f6cc5558032 caffe::Caffe::SetDevice()
@ 0x40b3f8 train()
@ 0x407590 main
@ 0x7f6cc3eb7830 __libc_start_main
@ 0x407db9 _start
@ (nil) (unknown)
尝试做 make all
--> make test
--> make runtest
。它应该工作
使用nvidia-smi
命令查看GPU
和CPU
上有哪些程序是运行。如果你看到 caffe
的任何不需要的实例在按下 ctrl+c
后仍然是 运行,你应该杀死那些具有进程 ID 的实例。如下所示:
+------------------------------------------------------+
| NVIDIA-SMI 352.63 Driver Version: 352.63 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 980 Ti Off | 0000:01:00.0 On | N/A |
| 58% 83C P2 188W / 260W | 1164MiB / 6142MiB | 96% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 980 Ti Off | 0000:02:00.0 Off | N/A |
| 53% 73C P2 127W / 260W | 585MiB / 6143MiB | 35% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1101 C ...-xx/build/tools/caffe 788MiB |
| 0 1570 G /usr/bin/X 235MiB |
| 0 1594 C /usr/bin/python 102MiB |
| 0 2387 G compiz 10MiB |
| 0 3984 G /usr/local/MATLAB/R2016a/bin/glnxa64/MATLAB 2MiB |
| 1 25056 C /usr/bin/caffe 563MiB |
+-----------------------------------------------------------------------------+
你应该用这个命令杀死sudo kill -9 1101
在 运行 Make all 之后,注意到一些关于 libcudnn 库的错误,我将它们复制到 /usr/lib/x86_64-linux-gnu 和 /usr/local/cuda-8.0/lib64 中。只留下 /usr/lib/x86_64-linux-gnu 中的那些并重新启动笔记本电脑后一切正常。
如果您的程序无法创建或打开 /dev/nvidia-uvm 设备文件,则可能会显示 CUDA 运行时错误 (30)。这通常通过安装软件包 nvidia-modprobe 来解决:
sudo apt-get install nvidia-modprobe
尝试reinstall/build当前内核的nvidia驱动程序
sudo apt-get install --reinstall nvidia-375
sudo apt-get install nvidia-modprobe
如果您的程序无法创建或打开 /dev/nvidia-uvm
设备文件,可能会显示 CUDA 运行时错误 (30)。这通常通过安装软件包 nvidia-modprobe 来解决:
(Source)