前回の記事では、DAW環境にRyzen 9 3900Xを導入した感想について述べた。「全体的にパフォーマンスが向上した」というのが簡単な感想だ。
では、具体的にはどの程度パフォーマンスに差が出ているのか?そもそもCPUの性能差は、Cubaseのパフォーマンスにどのような影響を与えるのか?データを得るために、簡単な検証を行ってみたい。
目次
マシンスペック
新旧のマシンスペックは以下の通り。※CPU・メモリ・マザーボード以外のパーツは、どちらのマシンも全く同じ構成。
旧マシン(2018年に自作)
- CPU:Intel Core i7 8700(6コア)
- メモリ:32GB(DDR4-2666)
新マシン(2020年に自作)
- CPU:AMD Ryzen 9 3900X(12コア)
- メモリ:64GB(DDR4-3200)
CPUの性能差について
そもそもカタログスペック的には、CPUにどのくらい性能差ががあるのか。PassMarkのスコアを見て予測を立てたい。
結果は下記の表の通り。
CPU | PassMarkスコア |
---|---|
Intel Core i7 8700 | 13118 |
AMD Ryzen 9 3900X | 32861 |
新しいCPUである3900Xは、8700の約2.5倍の性能を持つことになる。とはいえ、DAWのパフォーマンスにそのまま当てはまるとは限らない。あくまで参考値と把握しておきたい。
比較条件
Cubase/オーディオインターフェイスの設定
- Cubase 10(ver10.0.60)で検証
- マルチプロセシングは有効に
- ASIO Guardも有効に。レベルは「normal」
- Steinberg Audio Power Schemeは以下の通りに
- 旧マシン:有効
- 新マシン:無効(※ただしWindowsの電源オプションは「高パフォーマンス」に)
- オーディオインターフェイスのバッファサイズは128sample
BIOS(UEFI)の設定
CPUのHyper Threading/Simultaneous Multi-Threadingは、いずれも次の通りに設定。
- 旧マシン:無効
- 新マシン:無効
補足:仮想コアを無効にする理由
Intel Core i7 8700を使っていた頃、「ハイパースレッディングを無効にしないとピアノ音源がプチる」という経験をしたことがある。それ以来、CPUのハイパースレッディングはオフにして、Cubaseを使うようにしている。
※詳しいことは以下の記事で書いている。
Cubase9にもなってハイパースレッディング問題で消耗した話
Ryzen 9 3900Xについても、同等の機能であるSMT(同時マルチスレッディング)は無効にしている。詳しくは後述するが、SMTを無効にしたほうがCPUを有効に使えることが分かっているからだ。
検証その1:歌ものポップスのプロジェクト
プロジェクトの概要
ロックっぽいバンドサウンドに、ブラスやストリングスを乗せたポップ系の曲だ。
使われているインストゥルメント
このプロジェクトでは、
- BFD
- Ivory
- Sample Modeling/Swam
- Sylenth1
- Avenger
といったVSTインストゥルメントが使われている。ベースやギターは生(オーディオデータ)。歌ものポップスにしては、比較的CPU負荷は軽いほうかもしれない。
使われているエフェクト
楽曲完成後のプロジェクトとなっており、各トラックにはインサートFXが色々と挿さっている。FabFilter Pro-Q3は数多くのトラックで使われている。キックやベース等の重要なパートには、Lindel AudioのNeveやら、Arturiaの1176といった負荷が高いプラグインも使われている。
曲の長さ
3分半くらい
ポップス曲のテスト結果
各CPUごとに、以下の4項目を計測する形でテストを行った。
テスト項目 | Core i7 8700 | Ryzen 9 3900X |
---|---|---|
プロジェクトファイルの起動時間 | 1分28秒 | 1分11秒 |
再生時のCPU使用率 | 55~70% | 25~35% |
書き出し時のCPU使用率 | 常時100%張り付き | 65~77%くらい |
書き出しにかかる時間 | 3分7秒 | 1分38秒 |
結果は上記の通り。
まず「再生時のCPU使用率」に注目してみる。8700のときは半分以上CPUを消費している状態だったが、3900Xだと3割前後で済む。だいぶ余裕が出るようになった。
「書き出しにかかる時間」もだいぶ短くなった。8700のときは実時間より多少早いくらい。3900Xでは、実時間の半分以下の時間で書き出せるようになった。
総括すると、3900Xのほうが圧倒的にCPUのパフォーマンスは高いといえる。PassMarkのスコア比較だと性能比は2.5倍だったが、DAW用途でもそのくらいの性能差はあるのかもしれない。
これら2つのCPUの世代差は約2年、購入時の価格差は2万円程度。それなのに、性能がここまで違うのには驚いた。Ryzen(Zen2)がそれだけ革新的なCPUだということがうかがえる。
ポップス曲のCPU使用率
ここではWindowsのタスクマネージャーに表示される、CPU使用率のグラフを見ていきたい。
再生時
8700のCPU使用率を見てみる。CPU使用率は70%程度。6コアのうち、どのコアも同じくらいのCPU使用率になっていることが分かる。
.
3900XのCPU使用率を見てみる。CPU使用率は20~30%程度で、かなり余裕がある状態。コア1にCPUスパイクが出ていたようだが、使用感への影響はなかった。また12コアすべてがきちんと働いてくれていることが分かる。
.
書き出し時
8700のCPU使用率を見てみる。書き出し中は、CPU使用率は100%となり、フル稼働している状態だ。どのコアも100%稼働している。
.
3900XのCPU使用率を見てみる。書き出し中は、CPU使用率は77%くらいまで上昇する。各コアを見てみると、コア1が90%くらい消費されているのに対して、コア9~11は60~70%程度の使用率。全コアが均等に消費されているわけではないが、比較的コアを有効に使い切れているといえそう。
.
検証その2:フルオーケストラ曲のプロジェクト
プロジェクトの概要
2管編成を想定した、フルオケのインストゥルメント楽曲だ。
使われているインストゥルメント
このプロジェクトでは、
- VSL(弦・木管・打楽器・チェレスタ・ハープ)
- Sample Modeling(金管)
といったVSTインストゥルメントが使われている。金管には物理モデリング音源であるSample Modelingを使っているので、その部分のCPU負荷はけっこう高いと思われる。それ以外のパートはVSLなので、CPU負荷はそれほどでもない。
使われているエフェクト
オーケストラアレンジという性質上、音作りに使うインサートFXの数は少なめ。ただし、空間処理のために、全楽器にPrecedenceとBreeze2を挿している。その分の負荷はそこそこ高いと思う。
曲の長さ
2分半くらい
フルオケ曲のテスト結果
テスト項目 | Core i7 8700 | Ryzen 9 3900X |
---|---|---|
プロジェクトファイルの起動時間 | 57秒 | 44秒 |
再生時のCPU使用率 | 88%(最大時) | 40%(最大時) |
書き出し時のCPU使用率 | 80~100% | 50~90% |
書き出しにかかる時間 | 2分36秒 | 1分30秒 |
このような結果となった。総合的に歌ものポップスのプロジェクトのときと、似たような改善結果となった。
「再生時のCPU使用率」を見てみる。フルオケの曲ということもあって、楽器が多い場所ではどうしてもCPU使用率は高くなる。8700のときは、正直CPU使用率には一切の余裕が感じられなかった。仮にここからトラック数を増やすなら、256sampleにバッファを上げなきゃ厳しいかなという感じ。一方3900Xはかなり余裕があって頼もしい。
「書き出しにかかる時間」も大幅に短縮された。8700では実時間以上掛かっていたが、3900Xだと実時間の60%程度の時間で書き出せる。書き出し時間の差は1分程度。こういうのが蓄積していくと、その差も無視できなくなってくる。
フルオケ曲のCPU使用率
再生時
8700のCPU使用率を見てみる。トラック数が多い箇所ではCPU負荷が高くなっていることが分かる。
.
3900XのCPU使用率を見てみる。8700同様、負荷に応じてCPU使用率が変化していることが分かる。オーケストラのプロジェクトであっても、ポップスのプロジェクト同様、12コアすべてがきちんと消費されていることが分かる。
.
書き出し時
8700のCPU使用率を見てみる。書き出し中は、CPU使用率は100%となりフル稼働している。楽器が少ない箇所では負荷が小さいのか、CPU使用率は80%程度に落ち着く。
.
3900XのCPU使用率を見てみる。曲中の負荷に応じてCPU使用率が変化しているのが分かりやすい。12コアすべてがちゃんと働いてくれている。
.
「コアの使い切り」について
CPU比較の話から少しそれるが、ここで「コアの使い切り」について書いておきたい。
しばし「DAWではマルチコアを活かしきれない」「コア数は少なめにしたほうがいい」という説が挙がることある。しかし、今回のテスト結果の通り、CubaseであればマルチコアのCPUでも、すべてのコアを働かせることが可能だということが分かる。言いかえると、「CPUのコアを使い切ることが可能」だということだ。
Intel Core i7 8700と、Ryzen 9 3900X。異なる2つのCPUだが、いずれも全コアが稼働した状態で、再生/書き出しが行われることが分かった。Ryzenのような多コアCPUの導入を検討している人は、今回のテスト結果を参考にしてみてほしい。
考察:RyzenでSMTは必要か?
RyzenにもIntelのCPUと同じように、「1つのコアを2つに見せるテクノロジー」が搭載されている。IntelのCPUではそれをHyper-Threadingと呼ぶが、RyzenではSimultaneous Multi-Threading(SMT)と呼ぶ。
冒頭でも少し触れたが、DAW用途ではSMTをオフにしたほうがいい。そのほうがパフォーマンスが向上する可能性が高いと、僕は判断している。
その根拠について説明する。SMTの有無がもたらす違いについて検証していたところ、次の傾向があることが分かったからだ。
- プロジェクトの再生時は、24スレッドすべてが使用される
- しかし書き出し時は、11スレッドしか使用されない
具体的なデータを見てみよう。
ためしに、「検証その1:歌ものポップスのプロジェクト」を、SMTオン(デフォルト)の状態で再生してみる。するとタスクマネージャーは以下の状態になる。全コア・全スレッドが消費されていることが分かる。
.
しかし、書き出し時には以下の状態になってしまう。
.
11スレッドしか稼働していないことが分かる。ということは、どう見積もったところで、12コアすべては稼働していないことになる。つまり1コアは手持ち無沙汰の状態になっているということだ。
仮にSMTがオフであれば、前述の検証データの通り、12コアすべてが使用されることになる。というわけでRyzen環境においては、SMTを無効にしたほうがコアを有効に使い切ることができると予想される。
まとめると次の通り。
- SMTオン:24スレッドのうち、11スレッドだけが活用される
- SMTオフ:12コアのうち、12コアすべてが活用される
もっとも、今回の2プロジェクトに関しては、実際の書き出し時間について優位な差は確認できなかった。だがそれでも、タスクマネージャーを見る限り、SMTは無効にしておいたほうがいいはず。それが僕の考察だ。