CUDA Cを使用して次の式を計算する最も効率的な方法は何ですか?
(A - B(D^-1)B^T)^-1
ここで、Dは非常に大きな対称行列で、Aは小さな対称行列です。これにより、BとB^Tは中サイズの長方形の非対称行列になります。もちろん、(^-1) と (^T) はそれぞれ逆演算と転置演算です。
CUDA Cを使用して次の式を計算する最も効率的な方法は何ですか?
(A - B(D^-1)B^T)^-1
ここで、Dは非常に大きな対称行列で、Aは小さな対称行列です。これにより、BとB^Tは中サイズの長方形の非対称行列になります。もちろん、(^-1) と (^T) はそれぞれ逆演算と転置演算です。
「低」レベルのプログラミングが可能な場合は、行列反転をCULAまたはMAGMAライブラリで実行できます。
CULA Dense には、システム ソルブ、線形最小二乗法ソルブ、および制約付き線形最小二乗法ソルブの単一 (実数または複素数) 精度が含まれています。CULA Sparse は、スパース行列の反復ソルバーのコレクションです。Magma には、正方倍精度行列の逆数を計算するためのdgetrf
とが含まれています。dgetri
転置を含む行列の乗算では、cuBLAS
ルーチンを使用できます。
「より高い」レベルのプログラミングを好む場合は、ArrayFireを使用すると、行列の乗算、逆変換、転置、線形システムの解法、要素ごとの演算をより自然な数学的構文で実行できます。また、Matlab にはNVIDIA CUDA 対応 GPU の GPU コンピューティング サポートがあります。