背景 最近Ryzen 9 7950xを載せたPCを作ったのですが思ったより数値計算の速度が出なかったので、よく出てくる基本的な演算性能を調べてみました。今回は巨大なベクトルの内積の計算速度を対象とします。なお筆者はHigh-performance computingの専門家ではないので以下には間違いが含まれているかもしれません。 測定対象 10億次元のベクトルの内積を倍精度で計算する以下のプログラムの計算速度を測ります。特にOpenMPを用いた並列化のよりどの程度速くなるかを主眼としています。 #include <vector> #include <iostream> #include <omp.h> #include <chrono> #include <ios> #include <iomanip> template<typename RealType> void vec_inner_
![Ryzen 9 7950XおよびApple M1 Maxの内積計算速度について - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/06f13652bd92ba18898c257be2f84b36901c1c58/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Unl6ZW4lMjA5JTIwNzk1MFglRTMlODElOEElRTMlODIlODglRTMlODElQjNBcHBsZSUyME0xJTIwTWF4JUUzJTgxJUFFJUU1JTg2JTg1JUU3JUE5JThEJUU4JUE4JTg4JUU3JUFFJTk3JUU5JTgwJTlGJUU1JUJBJUE2JUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iZjkyYmNkZDc5MzVhY2MxNzZlZGZmZTgzMmQwMWMxMQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwUGFnbGlhY2NpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04MDI1OTE3NTZjNzJiZTVlMmM0ZGQ4YTkwY2I2ZGJiZA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D611c3529c04a1bcb330416945f22e753)