0
有没有办法加快以下代码的运行时间?特征库加速矩阵初始化
Matrix<double, 10, Dynamic> A(10,n);
A << a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
这里,n是唯一已知的在运行时,与A1,A2,等等是长度为n的矢量。我试着近似矩阵的最大尺寸,然后用double,10,Dynamic,0,10,10000,但是这并没有增加速度。
有没有办法加快以下代码的运行时间?特征库加速矩阵初始化
Matrix<double, 10, Dynamic> A(10,n);
A << a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
这里,n是唯一已知的在运行时,与A1,A2,等等是长度为n的矢量。我试着近似矩阵的最大尺寸,然后用double,10,Dynamic,0,10,10000,但是这并没有增加速度。
如果您使用A中的RowMajor矩阵,则副本会快很多得益于更好的缓存一致性和矢量:
Matrix<double,10,Dynamic,RowMajor> A(10,n);
然而,这可能还包括其他业务放缓。
最后,确保你与优化(例如,-O2用gcc)编译,这可能是稍快,以避免与逗号初始化语法:
A.row(i) = a_i;
(不知道,因为这取决于编译器,但这是值得尝试,如果该副本是一个瓶颈)
谢谢!我已经完成了最后两件事。你提到的第一件事带来了很大的提速。 –