Diagonal matrix size reduction

1 回表示 (過去 30 日間)
Octavian
Octavian 2015 年 3 月 30 日
コメント済み: Octavian 2015 年 3 月 30 日
Dear All,
I have a loop written for GPU (gpuarrays) with multiple matrix inputs, one of which is a diagonal matrix A with size m (A=eye(m)), with m from 10000-100000. m proves limiting as I get GPU memory errors with higher m values. A is involved in several left and right multiplication steps, and is updated (fills) with each iteration. Is there any matrix decomposition/factorization implementation in matlab that will allow rendering of A as A= a*b (or a*b*c and so on) where a size is (m,n), b size (n,m) etc (n << m) so that I can introduce intermediate code steps using a, b etc in these operations and reduce memory cost? Thank you, as always,
Octavian

採用された回答

Edric Ellis
Edric Ellis 2015 年 3 月 30 日
In R2015a, sparse support was added to gpuArray - perhaps this might help you? mtimes is one of the methods that is implemented for sparse gpuArray.
  1 件のコメント
Octavian
Octavian 2015 年 3 月 30 日
Thank you Edric, I will try what you suggested. My only concern is that, even if A enters the loop as speye(m), as A fills (the number of nonzero elements increases with every iteration), its memory allocation with drastically increase with the last iterations. If there is a quick way to decompose a nonsparse nonsymmetric square matrix to reduce its size, please let me know. Thank you again,
Octavian

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by