2016-08-04 132 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,錯誤消失了。