tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

Ryzen 3950x でPC組んだ

欲しかったので買いました。16コア32スレッド、やばい!(語彙力)

自分のDesktop用にPCを組むのは4台目、初めてのAMD CPUです。
さすがにコア数が多いので、簡易水冷に挑戦してみた。
GPUもかなり強いやつにしてみました。が、残念なことにこれは使えなかった、、、
あとケースは完全に失敗。

良いPC組もうって気持ちよりも、早く3950x使ってみたくなってしまって、雑にネットで良さげなものを調達したのが敗因。
まあ問題なく動いているし、やりたいのはこの環境でコード読み書きすることなのでもういいや。

構成

  • CPU: AMD Ryzen 9 3950X
  • GPU: MSI GeForce RTX 2060 AERO ITX 6G OC-JP
  • MEM: DDR4 PC4-25600 (3200MHz) 1.35V 32GBキット- PVS432G320C6
  • SSD: M.2 2280 NVMe PCI-E Gen.4 x 4(NVMe 1.3) PG3VNFシリーズ 1TB CSSD-M2B1TPG3VNF
  • M/B: MSI MEG X570 UNIFY
  • Cooler: Corsair H115i PRO RGB 水冷CPUクーラー
  • PSU: Corsair RM650x -2018-650W (GOLD)
  • Case: Thermaltake VIEW 71 TG RGB フルタワー型PCケース

総額25万くらい。iMac ちょっとカスタマイズしたら余裕で超えるので、まあ安い(?)
MSI MEG X570 UNIFは8pinのCPU電源ケーブルが2つつけられて、コア数が多いCPUでも安定した電源を供給できる。ただCorsairのPSU 650Wだと8pinのCPUケーブル1つしか入っていないので注意。

ケースのサイズずれの問題でグラボがつかず、前回のPCから持ってくる事になった、、、 で、気づいたけどほとんどCUIベースで触ってんのに2060のGPUいらない。。。

f:id:tom__bo:20200204004638j:plain

Install

ubuntu 19.10ならkernelも5.xなので、簡単かなと思ってたとおり。
起動オプションに nomodeset つける必要はある。
あとはmemoryをちゃんと3200MHzで動かすためにOC optionを有効にしたくらい。

ケースががどうも不良品だったみたい、、、M/Bをつけるために外枠にあたってしまって0.5mmくらいずれてる。 回路を配置してるM/Bがずれることは考えづらいので、ケースのせいだと思う。 説明書が結構汚くて、なんだこれ?とおもったけど何度か返品されてるのではと疑っている。。。

返品しようか悩んだけど、M/B側のフレーム外せばつけられたのと返品が面倒臭すぎるので、諦めた。

hwloc, htopの様子

hwloc

f:id:tom__bo:20200204010012p:plain

いやーすごい

htop

f:id:tom__bo:20200204010045p:plain

今使ってるDesktop PC組んだIntel Core i7 8700のときがこれ。

f:id:tom__bo:20200204010025p:plain

tombo2.hatenablog.com

MySQL build

とりあえずセットアップもしてないけどMySQLのビルド時間を比較する。

ここからがこのPC組んだ目的。

git clone https://github.com/mysql/mysql-server
cd mysql-server
mkdir bld
cd bld

cmake .. -DWITH_INNODB_EXTRA_DEBUG=1 -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O0 -g" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -g" -DDOWNLOAD_BOOST=1 -DWITH_BOOST=~/workdir/src/mysql-server/myboost -DENABLE_DOWNLOADS=1 -DWITH_DEBUG=1

これくらいの設定でdebug buildする。 g++のバージョンが違うとかやや違いはあるけどまあ、使う環境で時間差を見てみる

time make -j 6
real    9m1.506s
user    45m36.098s
sys 4m8.244s
  • 今後(3950x)
    • make -j 16
time make -j 16
real    4m15.030s
user    52m33.496s
sys 5m33.907s

半分以下! IDEでシンボルを読み込むのもcode jumpするのも結構速くなった。最高!