manopt 5.0 issues

31 views
Skip to first unread message

stum...@gmail.com

unread,
Sep 16, 2018, 11:28:49 PM9/16/18
to Manopt
** I get the following error when I try to put problem data on the GPU and call checkgradient.

The following error occurred converting from gpuArray to double:
Conversion to double from gpuArray is not possible.

Error in identify_linear_piece (line 27)
residues(i) = meta.normr;

Error in checkdiff (line 131)
[range, poly] = identify_linear_piece(log10(h), log10(err), window_len);

Error in checkgradient (line 70)
checkdiff(problem, x, d, true);

Error in angus4 (line 109)
checkgradient(problem);


** When I put problem data on the GPU and invoke the arc solver, I get the following error:

iter cost val grad norm sigma #Hess
0 +1.9818504819734756e+11 1.21841901e+10 5.03e-01The following error occurred converting from gpuArray to double:
Conversion to double from gpuArray is not possible.

Error in arc_lanczos (line 127)
T(1, 1) = alpha;

Error in arc (line 249)
options.subproblemsolver(problem, x, grad, gradnorm, ...

Error in angus4 (line 116)
[x, xcost, info] = arc(problem,x0);

Nicolas Boumal

unread,
Sep 17, 2018, 9:15:18 AM9/17/18
to Manopt
Hello,

Thanks for reporting this.

Could you please share your code that generates these issues (possibly stripped down)?

From the error messages, it seems that some quantities (perhaps scalars) are on the gpu but shouldn't be, or the other way around.

Thanks!
Nicolas

Nicolas Boumal

unread,
Sep 17, 2018, 10:42:46 PM9/17/18
to Manopt
Hello,

Thanks for sending the code to me. The issue is as follows: when creating the manifold on the GPU, call

manifold = complexcirclefactory(n, 1, true);

instead of

manifold = complexcirclefactory(n, true);

This is because the first two inputs to that factory define the size of the matrix of phases (n x m). This is a change from Manopt 4.0, where that factory only allowed to have vectors of phases.

One way to diagnose this issue is to call manifold.name(): a GPU manifold will have the (GPU) tag in the name string.

Best,
Nicolas
Reply all
Reply to author
Forward
0 new messages