64C/128Tの「Ryzen Threadripper 3990X」のパワーがLinuxでどこまで活きるか検証

文●加藤勝明(KTU) 編集● ASCII

2020年04月23日 11時00分

Ryzen Threadripper 3990XをLinux環境でベンチマーク

 これまでRyzen Threadripper 3990Xのパフォーマンスをさまざまな側面から検証してきた。前々回はクリエイティブ系アプリで、前回はゲーム&ストリーミング&録画というメガタスク環境下で動かしてみた。

 そして、本稿ではLinux環境でのパフォーマンス検証に入る。Windows 10では1プロセスあたり64スレッドまでしか使えないという「プロセッサーグループ」があるが、これが64コア(C)/128スレッド(T)のRyzen Threadripper 3990Xをいくばくか使いにくくしていると考えている人もいるだろう。

 もちろんWindowsのアプリで対応することでプロセッサーグループの壁を越えることもできるが、プロセッサーグループの壁がそもそも存在しないLinux環境ではどうなのだろうか?

検証にはManjaro Linux環境を準備した

検証環境は?

 Linux環境は筆者の好みから「Manjaro Linux」をチョイスした。検証時のバージョンは18.1.5、カーネルは「5.4.28-1」となる。

 ここでの検証環境は前回ゲーム編とほぼ同一だが、ストレージはウエスタンデジタル製「WDS100T2X0C」を使用している。

【検証環境】
CPU AMD「Ryzen Threadripper 3990X」
(64C/128T、最大4.2GHz)
AMD「Ryzen Threadripper 3970X」
(ES版、32C/64T、最大4.5GHz)
AMD「Ryzen 9 3950X」
(16C/32T、最大4.7GHz)
AMD「Ryzen 9 3900X」
(12C/24T、最大4.6GHz)
AMD「Ryzen 7 3800X」
(8C/16T、最大4.4GHz)
マザーボード ASRock「TRX40 Taichi」
(BIOS P1.60)
GIGABYTE「X570 AORUS MASTER」
(BIOS F11)
メモリー G.Skill「F4-3200C16D-32GTZRX」×2
(DDR4-3200、16GB×4)
ビデオカード NVIDIA「GEFORCE RTX 2080 Ti Founders Edition」
ストレージ ウエスタンデジタル「WDS100T2X0C」
(NVMe M.2 SSD、1TB)
電源ユニット Super Flower「Leadex Platinum 2000W」
(2000W、80Plus Platinum)
CPUクーラー CRYORIG「A80」
(簡易水冷、280mmラジエーター)
OS Windows10 Pro 64bit版
(November 2019 Update)

 また、各種ベンチマーク環境は「Phoronix Test Suite」で構築した。

CGレンダリング系の傾向はWindowsと同じ

 まずCG系から検証してみよう。使用したテストは「C-Ray」「POV-Ray」および「V-Ray」レンダラーを利用したテストだ。

「Phoronix Test Suite」によるCGレンダラー系ベンチマークの結果

「Phoronix Test Suite」による「V-Ray」ベンチマーク(スタンドアロンのV-Ray Next Benchmarkと同じもの)の結果

 コア数が多いCPUほど速い、というごく当たり前の結果をなぞっただけのように見えるが、Linux版POV-RayはRyzen Threadripper 3990Xでも3970Xより速い点に注目。Windows版POV-Rayの公式ビルドでは64スレッド制限があるため、Ryzen Threadripper 3990Xと3970Xで差は付かず、128スレッド対応の特別ビルドを使ってはじめて差がついた。Linux版のPOV-Rayはその制約がないため、Ryzen Threadripper 3990Xの性能を引き出せている。

Linux版POV-Rayでは128スレッドに処理が分散される。図は「htop」を使って全コアの利用状況をチェックしたところ

エンコード系では下位CPUが優越することもある

 続いてはエンコード系を試してみよう。動画エンコーダーは「x264」「x265」「SVT-VP9」「libvpx」の4つ。テストの内容はPhoronix Test Suiteに準じているが、SVT-VP9のように選択肢(画質)がいくつか用意されているものについては、デフォルトと明示されているものを選択した。即ちSVT-VP9は「PSNR/SSIM Optimized」、libvpxは「Speed 5」としている。

「Phoronix Test Suite」による動画エンコード系ベンチマークの結果。処理時間ではなくエンコードのフレームレートであるため、バーが長い方が高速

x264のテスト中のCPU占有率(の高いとき)。128コア全てに仕事が割り当てられるのではなく、ところどころほぼ無負荷なコアも出現している

 エンコーダーの違いで傾向もかなり違っているのが面白い。まず、x264はRyzen勢よりもRyzen Thradripper勢の方が圧倒的に高速だが、3970Xと3990Xの間に差はほとんどない。Ryzen勢ではRyzen 7 3800Xがひときわ遅いものの、3900Xと3950Xの間に差はない。コア数だけでは頭打ちになるが、Ryzen Threadripperが特に速いのはメモリー帯域の差のようだ。

 これに対しx265はどれも僅差。トップに立ったのはRyzen 7 3800Xなので、コア数やメモリー帯域はほとんど効かないエンコードだったことが分かる。同様の傾向はlibvpxにも言える。

 最後にSVT-VP9はRyzen Threadripper勢が高速でx264に近い結果だが、ここでは3970Xが群を抜いて速い。Windows環境でのエンコード検証ではRyzen Threadripper 3990Xはあまり有効ではないが、Linux環境ではエンコーダー次第な面もあるが、3970Xより遅い時もあるといった感じだろう。

画像処理系はメモリー帯域が効く

 次は画像処理系のベンチマークを試してみよう。まずはフリーのRAW現像アプリ「darktable」を利用したベンチだ。3種類のRAW画像に様々な補正処理を施す時間を比較する。GPU(OpenCL)を利用せず、CPUのみで実行した時の時間を比較した。

「Phoronix Test Suite」によるdarktableベンチマークの結果

darktableの処理中はCPU負荷が激しく上下するが、負荷がかかるときはきっちりと全コア踏んでくれるようだ

 ここでもRyzen勢とRyzen Threadripper勢の間に深い溝があるが、Ryzen 9 3900Xと3950Xの間に差はなく、かつRyzen Threadripper 3970Xの方が3990Xより若干速いという点から、コア数はあまり効果がなく、メモリー帯域の太さが重要であると読み取れる。

 次はフリーの画像編集アプリ「GIMP」を利用した検証だ。Phoronix Test Suiteで用意されている「リサイズ」「回転」「自動レベル」「アンシャープマスク」の4項目についてテストを実施した。

「Phoronix Test Suite」によるGIMPベンチマークの結果

 どのCPUもほぼ横ばいなのがリサイズと回転なのに対し、自動レベルとアンシャープマスクについてはリサイズを除けばRyzen Threadripper勢の方がRyzen勢よりも「遅い」点に注目。スレッド分割によるオーバーヘッドが大きいのか、コア数が多いほど遅いという興味深い結果となった。

大規模開発にRyzen Threadripper 3990Xは効くか?

 次はやや方向性を変えてgccを利用したコンパイル時間を比較する。コンパイルするバイナリは「Apache」「gcc」「LLVM」「Linuxカーネル」の4種類をチョイスした。

「Phoronix Test Suite」によるコンパイル時間の比較

Linuxカーネルコンパイル時のCPUの利用状況のいちシーン。CPUを使う時は全コアほぼ限界まで踏んでくれる

 Apache以外はどれもコア数が多い方が速く、特にRyzen Threadripper勢はLLVMやLinuxカーネルのビルドにおいて圧倒的に速い。ただ、Ryzen Threadripper 3990Xは速いことは確かだが、3970Xに対して圧倒的か、と言われると回答に苦しむ。gccのコンパイル時間ではそれが顕著だ。

 ただ、巨大なソースから何度もビルドするような状況では、1秒でも早く待ち時間を短縮するためにRyzen Threadripper 3990Xという選択肢はありかもしれない。最も時間のかかる8C16TのRyzen 7 3800Xから乗り換えると仮定すると、12C24Tの3900Xに乗り換えるだけでジャンプアップが感じられるが、Ryzen Threadripper環境だと絶大な効果を得られるが、ビルドする対象によりジャンプアップ率は大きく変わるといったところだ。

 最後におまけとして7-Zipによる圧縮処理も試してみた。7-Zipの処理はマルチスレッド化されており、Windows版だとベンチマーク機能も搭載されている。今回はPhoronix Test Suiteに組み込まれたCLI版7-Zipを使って同様のベンチを実施する。

「Phoronix Test Suite」による圧縮処理のパフォーマンス比較

 グラフの数値はMIPS単位であるため、大きいほどより高速に圧縮できる。Ryzen 7 3800Xから見るとコア数の多いCPUほどMIPSも大きくなるが、Ryzen Threadripper 3990Xは3970Xよりもやや低く出ている。コア数が多すぎても使い切れないシーンは各所に存在するのだ。

まとめ:Ryzen Threadripper 3990Xは
現代計算機工学の限界を突きつける

 以上で今回の検証は終了だ。実売50万円近い値段のRyzen Threadripper 3990Xだが、その投資に対し処理性能向上というリターンを得るには、相当に処理の内容を吟味する必要があることがわかった。プロセッサーグループの壁があるWindows 10(Enterprise版でもこれは存在する)が足かせでないことは、Linux環境でのベンチ結果が物語っている。

 今のソフトウェア技術の下では、CPUコア数のスイートスポットはRyzen 9 3900X〜3970Xのどこかに着弾する。メモリー帯域が効くRAW現像系ならRyzen Threadripperだし、ゲーム単体で遊ぶならRyzen 9が好適だ。

 Ryzen Threadripper 3990Xの発売からこのかた、さまざまな分野で多種多様ななベンチマークをしてきたが、3990Xは輝けるシーンが非常に限られている。(前にも書いたが)構造的に性能が出ないのではなく、それを活かすためのソフトウェア技術が個人で持てる論理128コアCPUに追い付いていない(使い切れない)のだ。

 複数のソフトウェアを同時に動かすマルチタスクならRyzen Threadripperのコア数を活かせそうではある。それこそ、分散コンピューティングもそのひとつかもしれないので、次回試してご報告したいと思う。

 古参の自作PCユーザーなら4コアや8コアのHEDT CPUが出た時にもマルチスレッド化の壁を痛感させられた覚えがあると思うが、Ryzen Threadripper 3990Xはその壁をとてつもない高さで復活させてしまった。Ryzen Threadripper 3990Xが凄いのは価格やスペックはもちろんだが、いち個人にも現代計算機工学の限界を感じる事ができること、ではないだろうか。

●関連サイト

■関連記事