12
なぜ、MATLABは行列乗算でこれほど高速なのですか?
CUDA、C ++、C#、Javaでベンチマークを作成し、検証とマトリックス生成にMATLABを使用しています。MATLABで行列乗算を実行する2048x2048と、さらに大きな行列がほぼ瞬時に乗算されます。 1024x1024 2048x2048 4096x4096 --------- --------- --------- CUDA C (ms) 43.11 391.05 3407.99 C++ (ms) 6137.10 64369.29 551390.93 C# (ms) 10509.00 300684.00 2527250.00 Java (ms) 9149.90 92562.28 838357.94 MATLAB (ms) 75.01 423.10 3133.90 CUDAだけが競争力がありますが、少なくともC ++はやや近づき、60倍遅くなるとは思いませんでした。また、C#の結果についてどう考えればよいかわかりません。アルゴリズムはC ++およびJavaとまったく同じですが、2048からの大きなジャンプがあり1024ます。 MATLABは行列乗算をどのように高速に実行しますか? C ++コード: float temp = 0; timer.start(); for(int j = 0; j …