MATLAB Answers


GPU parallel computing error with Quadro RTX 5000

Asked by Xinbing Liu on 31 Mar 2019
Latest activity Commented on by Walter Roberson
on 5 Apr 2019
I've been using a Tesla GPU card with 6GB RAM with R2012a for a number of years and it has worked well. But now I need to work on larger matrix sizes (e.g., 8192x8192 fft2) the good old Tesla card can't handle anymore. So recently we bought a new Quadro RTX 5000 with 16GB RAM. The 10.1 NVidia driver installed successfully:
Then I ran the following test code (gputest.m):
M = 4095;
a = rand(M); %Create M*M matrix of random numbers
b = gpuArray(a); %Send the array to GPU memory
c = 2*b; %Perform some operation
It runs sucessfully. But when I change M to 4096:
M = 4096;
a = rand(M); %Create M*M matrix of random numbers
b = gpuArray(a); %Send the array to GPU memory
c = 2*b; %Perform some operation
>> gputest
Error using parallel.gpu.GPUArray/mtimes
An unexpected error occurred trying to launch a kernel. The CUDA error
Error in gputest (line 8)
c = 2*b; %Perform some operation
It seems the maximum matrix size the new Quadro RTX 5000 card can handle is 4095x4095. I can transfer larger matrices to GPU (b = gpuArray(a) with M > 4095 doesn't give errors), just can't perform any operations on them. Any ideas? Are there some settings for the GPU driver I need to change?
Thank you.


Show 1 older comment
Oh, I've rebooted several times, same problem. I suspect it has something to do with the new card having ComputeCapability of 7.5 and Parallel Computing Toolbox in R2012a. Maybe they are not really compatible? Then again, it workds for M*M matrices with M =< 4095.
There's no way you can upgrade from 2012a?
Unfortunately I only have the Parallel Computing Toolbox license for 2012a. Due to budget constraint we didn't renew annual maintenance for PCT in 2012 (so I didn't even have 2012b). Now it's not worth to renew maintenance anymore as Mathworks will make us pay for all these lapsed years. If I want the latest PCT, I better buy a new license, but budget doesn't agree...

Sign in to comment.




2 Answers

Answer by Joss Knight
on 4 Apr 2019
 Accepted Answer

I'm amazed this works at all, frankly, since 2012 is about 5 generations of GPU architecture ago. Anyway, there are known issues with Turing cards and the PTX JIT compilation path. I'm afraid to say, you're going to have to upgrade MATLAB for this to work.


Show 1 older comment
There were issues cropping up as early as Pascal architecture (mid to late 2016), with the Tesla G6 from March 2017, so it could be a bit risky with R2012a.
You can't even get a 'Tesla' card any more, not from NVIDIA. They were discontinued years ago. And NVIDIA don't support them or the generation after (Fermi).
Your best best is to buy a Kepler card, e.g. Tesla K40 (they started naming the entire series Tesla after the first lot of cards that supported double precision arithmetic). That should still work with R2012a. Probably.
Joss is distinguishing above between the "Tesla" architecture, and the "Tesla" brand. NVIDIA markets their non-graphics cards under "Tesla" brand and under "Quattro" brand, but these days the architecture of a Tesla branded card might be even Volta.

Sign in to comment.

Answer by Xinbing Liu on 5 Apr 2019

OK I'll get a trial version of R2019a with Parallel Computing Toolbox and see if the new Quadro card works or not. Then we'll worry about how to pay for it.


Sign in to comment.