テストコード
for i in range(1,10):
a,b = np.random.random(10**i),np.random.random(10**i)
%timeit a+b
実行にかかった時間を見てどのくらい早くなるか比べる。
PCスペック(メモリ以外)
- マザボ: ASRock z390 Taichi
- CPU: intel i9-9900k
比較するメモリ
-
Team Group 16GB (DDR4-2400)×2
- こちらは定格動作で2400 MHz 出てる。
-
Kingston HyperX FURY RGB 16GB (DDR4-3200)×2
- XMP profile 1 (3200 MHz) だと相性が悪いのか(メモリOC初めてなので何かしくじっているのかも)起動しない…ので仕方なく profile 2 (3000 MHz) で運用。
実行結果
2400 MHz
292 ns ± 1.41 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)|
306 ns ± 1.72 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)|
553 ns ± 2.19 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)|
3.21 µs ± 12.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)|
34.3 µs ± 157 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)|
762 µs ± 2.09 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)|
23 ms ± 109 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)|
223 ms ± 1.56 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)|
2.19 s ± 5.48 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)|
3000 MHz
311 ns ± 0.858 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
328 ns ± 1.73 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
565 ns ± 3.43 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
3.49 µs ± 9.72 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
37.1 µs ± 74.3 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
672 µs ± 3.92 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
22 ms ± 286 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
209 ms ± 487 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
2.1 s ± 4.34 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
結果?
微ッッッッッッ妙〜〜〜〜〜〜…………(しかも計算量少ないときはちょっと遅くなってるし……)
一応計算量が増えるに従って若干パフォーマンスはよくなってはいるが、単純に 2400/3000 = 0.8 で 20% 速くなるわけではないみたい
(2.1/2.19 = 0.96 で実際は 4% くらいしか変わってない)。
マザボの上限いっぱいの 4000 MHz まで上げれば何か変わるか…???
再実験
よくよく見るとXMPがちゃんと反映されてない(メモリ電圧が1.35 Vじゃなくて1.20V のままになっているので、なんかOCをしくじっている可能性も(大いに)ある。後々また検証しよう。