gpt4 book ai didi

c++ - 在 C++ 中使用 Armadillo 库将条目分配到稀疏矩阵的任何更快的方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:57 24 4
gpt4 key购买 nike

从字面上看,我想将条目 - maaaaany 条目 - 放入 armadillo 模块提供的稀疏矩阵中。如果我这样做如下(B 是 Na X N^2 矩阵)

sp_cx_mat BB(Na*Na, N*N*Na);    
for (int i = 0; i < Na; i++){
BB(span(i*N, (i + 1)*N - 1), span(i*N*N, (i + 1)*N*N - 1)) = B;
}

做这个要花很多时间。 (N和Na大概是64或者更像128~)有什么有效的方法可以使它更快,包括内核或优化设置?我已经在使用 Open BLAS 内核和 AVX 优化设置。

最佳答案

处理稀疏矩阵会产生开销。它们仅适用于绝大多数元素 (90%+) 为零的非常大的矩阵。内部表示本质上是一个 compressed矩阵的版本。

如果元素总数(零和非零)适合可用内存,使用普通的密集矩阵可能会更快。密集矩阵没有压缩开销。

有时,安装更多内存或在更大的机器上运行算法会更容易。

关于c++ - 在 C++ 中使用 Armadillo 库将条目分配到稀疏矩阵的任何更快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36501851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com