Error using pagefun with mldivide
Ältere Kommentare anzeigen
Hello all,
I am trying to solve a system of linear equations A*x=B on the GPU. Example code:
l_z = 6401;
B = zeros(80, 1, l_z, 'gpuArray');
B(80,1) = 1;
A = randn(80,80,l_z, 'gpuArray') + 1i* randn(80,80,l_z, 'gpuArray');
x = pagefun(@mldivide, A, B);
Which causes Matlab to throw the following error:
Error using gpuArray/pagefun
Call to zgetrsBatched in CUBLAS failed with error status: CUBLAS_STATUS_INTERNAL_ERROR.
Error in problem_GPU (line 7)
x = pagefun(@mldivide, A, B);
Since this error is somewhat cryptic, I tried several (random) things and was able to narrow it down a bit. The error occcurs only if l_z is greater than 682. That threshold stays the same even when I change the dimensions of A and B from 80 to 100, or when I make B a square matrix. Also, it makes no difference if A is complex or not.
I have absolutely no idea what the problem could be here and would be grateful for some help.
I am running Matlab R2021a with the latest updates and also updated my graphics driver.
>> gpuDevice()
ans =
CUDADevice with properties:
Name: 'Quadro P2200'
Index: 1
ComputeCapability: '6.1'
SupportsDouble: 1
DriverVersion: 11.6000
ToolkitVersion: 11
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize: [1024 1024 64]
MaxGridSize: [2.1475e+09 65535 65535]
SIMDWidth: 32
TotalMemory: 5.3685e+09
AvailableMemory: 4.3240e+09
MultiprocessorCount: 10
ClockRateKHz: 1493000
ComputeMode: 'Default'
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
CanMapHostMemory: 1
DeviceSupported: 1
DeviceAvailable: 1
DeviceSelected: 1
1 Kommentar
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu GPU Computing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!