どうすれば matlab で 2 つの行列を高速に乗算できるのだろうと思っていました。2 つの NxN 行列を乗算すると、N^3 の乗算が実行されます。Strassen Algorithmを使用してもN^2.8 の乗算が必要であり、これは依然として多数です。次のテストプログラムを実行していました。
a = rand(2160);
b = rand(2160);
tic;a*b;toc
2160^3=~10^10 ( a*b は約 10^10 の乗算である必要があるため) 2160 が使用されました。
私が得た:
Elapsed time is 1.164289 seconds.
(私は 2.4Ghz ノートブックで実行しており、スレッド化は発生しません) つまり、私のコンピューターは 1 秒強で ~10^10 の操作を行いました。
これはどうしてでしょうか??