Kron error when dealing with sparse gpuarrays
Show older comments
When I attempt to use kron with a sparse gpu array as an input on R2019a, I get the following error:
"Error using matlab.internal.sparse.kronSparse
Input must be a sparse matrix."
This indicates to me that MATLAB is having issues either making or recognizing when gpuarrays are made sparse, since I've done the simple test case:
a = gpuarray([1 2]);
b = gpuarray([1 2]);
test1 = kron(a,b)
a = sparse(a)
test2 = kron(a,b)
and only the assignment of test2 gives the error. Does anyone know if there's a workaround for this, or am I stuck with using my cpu for these calculations?
3 Comments
Walter Roberson
on 17 Oct 2019
b is not sparse in your test2 call.
Matt J
on 17 Oct 2019
Also, what operations will be done subsequently with kron(a,b) once it is computed? Knowing that, one can often find workarounds that avoid computing the Kronecker product altogether.
Henry Abrahamson
on 17 Oct 2019
Edited: Henry Abrahamson
on 17 Oct 2019
Answers (1)
You may want to look at,
which allows you to do many kinds of manipulations with Kronecker products without computing them in explicit matrix form. It should work with gpuArray operands.
Categories
Find more on Matrix Indexing 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!