Is anyone able to run gpu-based conv2 on a GTX 1080 or other pascal hardware?
Show older comments
I repeatedly get unspecified CUDA launch errors, despite the function calculating correctly on older Maxwell hardware using the same datasets. Can anyone else reproduce this?
Thanks, Nick
12 Comments
Nick Chng
on 29 Sep 2016
Edited: Walter Roberson
on 29 Sep 2016
Joss Knight
on 29 Sep 2016
This works for me on the GTX 1080.
Your error appears to be in display, not in the convolution. Did you definitely enter the command with a semicolon at the end to suppress display? What happens when you call
Ac = gather(A);
? And what version of MATLAB are you using?
Joss Knight
on 30 Sep 2016
Edited: Joss Knight
on 30 Sep 2016
Are you using your GPU for display? Are these kernels long-running? It's possible Windows is timing-out your display. You might need to disable Timeout Detection and Recovery: https://msdn.microsoft.com/en-us/library/windows/hardware/ff570087(v=vs.85).aspx
I don't know what you mean by kernels only being invoked when the data is requested. This kind of lazy evaluation doesn't happen with conv. However, not all runtime errors can be picked up by MATLAB and may be reported as launch failures on the next line of GPU code.
Joss Knight
on 3 Oct 2016
Edited: Joss Knight
on 3 Oct 2016
I ran this a number of times on my GTX 1080 with no errors. It could be a Windows 10 display issue. A couple of questions:
- Are you definitely running on a compute card that isn't running the display? You appear to be saying you're running on your Titan X, which, being lower-performing than the GTX 1080, I'm guessing you have attached to the display? What is the output of gpuDevice?
- Does line 5 have to have no semicolon at the end? What if you put a semicolon at the end to suppress display? If it doesn't error any more, what happens if you put C = gather(C); after the convolution?
Joss Knight
on 4 Oct 2016
Edited: Joss Knight
on 4 Oct 2016
The CUDA toolkit only affects your own MEX functions, it has nothing to do with MATLAB's own kernels or your kernels run using the CUDAKernel class. The driver it comes with could be an issue though - you may fair better installing the driver straight out of NVIDIA's driver downloads page, whichever is latest for your device. I for instance am running 367.44 on my GTX 1080s (but that's under linux, the version number will be different for Windows).
What I mean by the output of gpuDevice is that it would help to see what MATLAB displays when you call gpuDevice.
Can you confirm again that the above code is the first thing you run after starting MATLAB, and you haven't run any of your own CUDA kernels.
Nick Chng
on 5 Oct 2016
Joss Knight
on 6 Oct 2016
Well, there are no obvious problem there, except that KernelExecutionTimeout is 1. But that is also true on my machine and I have no issues.
I'm going to get someone with Windows and a GTX 1080 to test your code, and then I may have to move you over to tech support. Meanwhile you should try some different legacy drivers listed at http://www.nvidia.com/Download/Find.aspx?lang=en-us.
Joss Knight
on 6 Oct 2016
Your issue reproduces on a GTX 1080 on Windows. Thanks for reporting. It will take a little while to investigate this.
Nick Chng
on 6 Oct 2016
Answers (0)
Categories
Find more on Deep Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!