計算ブロックの順序最適化|行列積高速化#12
この記事は、以下の記事を分割したものです。
[元の記事]行列積計算を高速化してみる
一括で読みたい場合は、元の記事をご覧ください。
前節で行列Aのブロック単位のコピー回数を削減しましたが、計算順序を工夫することによって、さらに削減することができます。
12-1. 計算順序の再設計
3x3ブロックを例にすると、現在のプログラムでは、下図のようにコピーを行っています。
黄色いマスが計算に使用しているブロックで、数字はコピーの順番を表しています。数字のない黄色いブロックは、コピーを行わずにそのまま保持し続けているブロックです。行列Aのコピーはj2ループの外側で行われるため、j2ループが反復している間は行列Aのコピーは行わないことを示しています。
上図から、無駄なコピーの存在が見えてきます。
例えば、4番目のブロックは8番目でも再度コピーしていますが、6番目のブロックをコピーせずに4番目をそのまま使えば、8番目のコピーは不要だったはずです。
解決方法については、有料にさせていただきます。
ここから先は
9,980字
/
1画像
¥ 100
期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?