【发布时间】:2018-11-14 10:48:16
【问题描述】:
我需要分解 ~1e05 个最大 变量 大小为 20x20 的小矩阵。使用 HpcToolkit 分析矩阵分解显示代码中的热点位于 Eigen::internal::partial_lu_inplace。
我检查了Eigen documenation on the inplace matrix decomposition,我了解大型矩阵使用就地分解、重用内存和提高缓存效率可能很重要。
我目前正在计算这样的分解:
// Factorize the matrix.
matrixFactorization_ = A_.partialPivLu();
使用HpcToolkit 进行分析表明原地分解是热点:
是否可以禁用就地分解并测试代码对于我正在处理的小矩阵是否会更快?
注意:如果您查看图像上列中的 CPU 时间,您会注意到运行时间以秒为单位:我这里没有经过微秒优化,计算总共需要大约 4 秒。
编辑:HPCToolkit 统计分析代码处于完全优化模式 -O3 ,但包含将测量映射到源代码-g3 所需的信息。
【问题讨论】:
标签: eigen