matlab 中的 CUDA 错误(所有支持 CUDA 的设备都很忙)
Posted
技术标签:
【中文标题】matlab 中的 CUDA 错误(所有支持 CUDA 的设备都很忙)【英文标题】:CUDA error in matlab (all CUDA-capable devices are busy) 【发布时间】:2016-12-10 16:06:37 【问题描述】:我想在matlab 2016a(或matlab 2014)中使用CUDA7.5,例如我可以通过gpuDevice(gpu_id)
在matlab中设置gpu,一开始这样总是可以的。
但是在我运行了一些与 cuda 相关的 *.m 文件后,当我再次运行 gpuDevice(gpu_id)
时,我总是得到以下错误。
CUDA 执行过程中出现意外错误。 CUDA 错误是: 所有支持 CUDA 的设备都忙或不可用
我已尝试重新启动 matlab 和我的计算机,但错误仍然存在。有谁知道为什么会发生这种情况?我该如何解决这个错误?
非常感谢!
另外,我在command行中运行gpuDevice
时,得到如下信息
Name: 'GeForce GTX 960' Index: 1 ComputeCapability: '5.2' SupportsDouble: 1 DriverVersion: 7.5000 ToolkitVersion: 7.5000 MaxThreadsPerBlock: 1024 MaxShmemPerBlock: 49152 MaxThreadBlockSize: [1024 1024 64] MaxGridSize: [2.1475e+09 65535 65535] SIMDWidth: 32 TotalMemory: 4.2950e+09 AvailableMemory: 3.4769e+09 MultiprocessorCount: 8 ClockRateKHz: 1291000 ComputeMode: 'Default' GPUOverlapsTransfers: 1 KernelExecutionTimeout: 1 CanMapHostMemory: 1 DeviceSupported: 1 DeviceSelected: 1
【问题讨论】:
当我在 MATLAB 中使用 CUDA mex 文件时,一旦 mex 文件“占用”了 GPU,我就不能使用任何 MATLAB GPU 函数。 MATLAB 以某种方式将 GPU 分配给 mex 文件,即使我在 CUDA 代码中发布它们也不让我使用它们。不知道为什么,但是是的,我可以使用的唯一选项是重新启动 MATLAB 即使我重新启动了我的计算机和matlab,错误仍然存在。好伤心! 当我有单个 GPU 并且它被操作系统用于图形时,也会发生这种情况。不知道如何解决它抱歉。 【参考方案1】:使用 GPU 后,你应该 reset the gpu 和 reset
这将
dev = gpuDevice(gpu_id);
% Do lots of stuff
reset(dev)
或者您可以使用空 ([]
) 输入来释放设备
gpuDevice([])
【讨论】:
刚才我重启了电脑和matlab,然后我输入了gpu_id = 1;gpuDevice(gpu_id);
,但还是出现同样的错误。然后我输入了`dev = gpuDevice(gpu_id); % 做很多事情 reset(dev);
错误就在那里。另外,我输入了gpuDevice([])
,错误也在那里。错误信息是 CUDA 执行期间发生意外错误。 CUDA 错误是:所有支持 CUDA 的设备都忙或不可用
刚才我重启了电脑和matlab,然后我输入了gpu_id = 1;gpuDevice(gpu_id);
,但还是出现同样的错误。然后我输入了`dev = gpuDevice(gpu_id); reset(dev),the error is sitll there. Also, i have typed
gpuDevice([])`,错误也在那里。错误信息为:CUDA执行过程中发生了意外错误。 CUDA 错误是:所有支持 CUDA 的设备都忙或不可用你知道如何解决这个问题吗?非常感谢!【参考方案2】:
我也有同样的错误。我在linux下运行matlab,删除~/.matlab后,重启matlab,就报错了。
【讨论】:
【参考方案3】:我今天遇到了同样的问题,这很奇怪,因为我之前运行过同样的程序没有任何问题。我检查了 gpu 的使用情况,结果发现有人在 gpu0 上运行 python 并占用了所有内存。我在 matlab 中进行了 gpu 设备选择,但某些工具包可能仍使用 gpu0 作为默认值。 而python程序就完成了,问题就解决了。
【讨论】:
以上是关于matlab 中的 CUDA 错误(所有支持 CUDA 的设备都很忙)的主要内容,如果未能解决你的问题,请参考以下文章
caffe运行错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function
ubuntu18.04下cuda.cu在c/c++中的三种使用方式
ubuntu18.04下cuda.cu在c/c++中的三种使用方式