1
以下程序陷阱。大矩陣乘法核轉儲
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();
}
上述程序正在使用的g ++ 4.8與fopenmp標誌編譯和ubuntu上的64位與384GB RAM運行。我正在使用openblas。 W和H是任意隨機正矩陣。
上述代碼在乘法運算期間捕獲並創建核心轉儲。該代碼直到A.zeros()成功。我檢查了ulimit,它顯示無限。我也試圖創造A作爲W和H向量的外積的總和。它也是陷阱。而且,當W和H是SMALL時,代碼正在工作並且不會陷入困境。
我怎樣才能多個兩個大矩陣?是否有任何大小限制?
你得到了什麼確切的錯誤信息? – PMF
分割錯誤(核心轉儲) –
先嚐試使用正常的Blas,以確保問題不在OpenBlas中。另外,你可能想編輯include/armadillo_bits/config.hpp並啓用[ARMA_64BIT_WORD](http://arma.sourceforge.net/docs.html#config_hpp) – mtall