Tracker for canonicalization performance, matrix stuffing and getting rid of cvxcore #3221
Transurgeon
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This is a discussion/issue tracker which relate to matrix stuffing and canonicalization.
This is inspired by #704 from Akshay. (it is a sort of follow-up as well).
Context
I want to explore speeding up the backend using the diffengine and also would like to clean up historical issues in cvxpy.
Having a tracker will help centralize this work, and also permit us to find benchmark problems which can lead to more general improvements.
In addition, we eventually want to get rid of cvxcore, so it will be quite helpful to find all the issues relating to bugs in it.
Some clarification on terminology
Canonicalization refers to the entire process of taking a user-specified problem, converting it to standard conic (quadratic) form and passing it to a solver. MatrixStuffing or coefficient extraction refers to the final step of canonicalization, which involves forming the problem data matrices (
A,Pfor quadratic objectives, and others) before calling a solver.When we talk about canonicalization performance, this usually involves the entire process, from handling expression trees to the depth-first parse to "canonicalize" the problem during reductions.
However, most issues about performance are related to matrix stuffing being slow.. but in some cases (i.e. when the problem is not vectorized) it can be about the more general term "canonicalization".
Issues related to cvxcore
cvxpy/cvxcore/src/ProblemData.cpp#2519Canonicalization performance issues (replicable instances)
Canonicalization performance issues (could potentially be closed?)
Beta Was this translation helpful? Give feedback.
All reactions