大矩阵乘法核心转储

时间:2014-01-14 13:36:28

标签: blas armadillo

以下程序正在陷阱。

void main(){  
 fmat A,W,H;  
 W.load("w.csv"); //W is of size 150000x100  
 H.load("h.csv"); //H is of size 300000x100 
 A.set_size(W.n_rows,H.n_rows);  
 A.zeros();  
 A=W*H.t();  
}  

上面的程序是使用带有fopenmp标志的g ++ 4.8编译的,并在带有384GB ram的ubuntu 64位上运行。我正在使用openblas。 W和H是任意随机正矩阵。

以上代码在乘法过程中捕获并创建核心转储。代码成功直到A.zeros()。我检查了ulimit并显示无限制。我还尝试创建A作为W和H的向量的外积之和。它也是陷阱。此外,当W和H为SMALL时,代码正在工作且不会陷阱。

我怎样才能复制两个大矩阵?有任何尺寸限制吗?

1 个答案:

答案 0 :(得分:1)

@ mtall在上述评论中的回答是答案。在include / armadillo_bits / config.hpp中启用ARMA_64BIT_WORD。 include目录可以在安装armadillo的地方找到。例如,在我的情况下,它位于/ usr / local。

相关问题