見出し画像

計算ブロックの順序最適化|行列積高速化#12

この記事は、以下の記事を分割したものです。
[元の記事]行列積計算を高速化してみる
一括で読みたい場合は、元の記事をご覧ください。

前節で行列Aのブロック単位のコピー回数を削減しましたが、計算順序を工夫することによって、さらに削減することができます。

12-1. 計算順序の再設計

3x3ブロックを例にすると、現在のプログラムでは、下図のようにコピーを行っています。

ブロックコピー回数(for文)

黄色いマスが計算に使用しているブロックで、数字はコピーの順番を表しています。数字のない黄色いブロックは、コピーを行わずにそのまま保持し続けているブロックです。行列Aのコピーはj2ループの外側で行われるため、j2ループが反復している間は行列Aのコピーは行わないことを示しています。

上図から、無駄なコピーの存在が見えてきます。

例えば、4番目のブロックは8番目でも再度コピーしていますが、6番目のブロックをコピーせずに4番目をそのまま使えば、8番目のコピーは不要だったはずです。

解決方法については、有料にさせていただきます。

ここから先は

9,980字 / 1画像

¥ 100

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?