2016-08-04 135 views
1
  • 我想在MATLAB 2016a(或MATLAB 2014),例如,我可以通过gpuDevice(gpu_id)设置在Matlab GPU在开始时使用CUDA7.5,这总是有效的。CUDA错误(全部CUDA功能的设备是忙)

  • 但是在我运行了一些与cuda相关的* .m文件后,当我再次运行gpuDevice(gpu_id)时,我总是得到以下错误。

    CUDA执行期间发生意外错误。 CUDA的错误是: 所有支持CUDA的设备繁忙或不可用

  • 我试图重新启动MATLAB和我的电脑,但错误仍在这里。有谁知道为什么会发生?我该如何解决这个错误?

  • 非常感谢!

  • 此外,当我在commond线运行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 
+0

当我在MATLAB中使用CUDA mex文件时,一旦mex文件“取”了GPU,那么我就不能使用任何MATLAB GPU函数。不知何故,MATLAB将GPU分配给mex文件,即使我在CUDA代码中发布它们,也不让我使用它们。不知道为什么,但是,是唯一的选择,我可以使用重新启动MATLAB –

+0

即使我已经重新启动我的电脑和matlab,错误仍然存​​在。好难过! –

+0

我也有这种情况发生,当我有单一的GPU和它正在使用的操作系统的图形。不知道如何解决它很抱歉。 –

回答

1

使用GPU之后,你应该reset the gpureset这将

dev = gpuDevice(gpu_id); 

% Do lots of stuff 
reset(dev) 

或者你可以释放设备使用空([])输入

gpuDevice([]) 
+0

刚才,我重新启动了我的电脑和matlab,然后我输入了'gpu_id = 1; gpuDevice(gpu_id);', 但我仍然得到相同的错误。然后我输入 ' dev = gpuDevice(gpu_id); %很多东西 reset(dev)'; ' 错误是sitll那里。 另外,我输入'gpuDevice([])',错误也在那里。 错误信息是 CUDA执行期间发生意外错误。 CUDA错误是: 所有支持CUDA的设备都很忙或不可用 –

+0

刚才我已经重新启动了我的电脑和matlab,然后我输入了'gpu_id = 1; gpuDevice(gpu_id);', 但我仍然获得相同的错误。然后我输入 'dev = gpuDevice(gpu_id);重置(开发)',错误是sitll那里。 另外,我输入'gpuDevice([])',错误也在那里。 错误信息是: CUDA执行期间发生意外错误。 CUDA错误为: 所有支持CUDA的设备都很忙或不可用 您知道如何解决此问题吗?非常感谢! –

0

我也有和你一样的错误。我在linux中运行matlab,删除〜/ .matlab后,然后重新启动matlab,错误消失了。