如何解决特征值:自定义标量类型的归约运算非常慢
这是issue剖析时的convex optimization library。它使用非原始custom Scalar type。我们发现,像sum()
和squaredNorm()
这样的归约运算与原始循环相比非常慢。
以下是重现此问题的最小示例:
#include "epigraph.hpp"
size_t T = 200;
cvx::OptimizationProblem qp;
cvx::MatrixX u = qp.addVariable("u",1,T);
// this takes very long
cvx::Scalar u_sum = u.sum();
// a raw loop is about 5x faster
cvx::Scalar sum = 0.;
for (int i = 0; i < u.size(); i++)
{
sum += u(i);
}
我进行了一些分析,但由于简化实现有些复杂,因此无法找到问题的根源。我怀疑这与内部优化有关,在这种情况下,内部优化的速度较慢,导致分配大量资源。有没有办法关闭这些优化?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。