※この記事はASCII.jpからの転載です(文中リンクはASCII.jpの記事に飛ぶことがあります)
ストリーミングと録画をCPUに任せると……?
実ゲームでは3DMarkの結果ほどRyzen Threadripperの性能だけが落ち込むことがないということが分かったが、Ryzen Threadripperを買って動かすタスクがゲームだけ、という状況は考えにくい。あえてゲームに超メニーコアCPUを使うのであれば、バックグラウンドで並列作業をさせたいと考えるのではないだろうか。
超メニーコアCPU環境でのゲーミング環境として真っ先に思いつくのは、ゲーム画面の録画やストリーミングである。今はRadeon Media EngineやNVEncといったGPUに組み込まれた機能を使えば低負荷で録画もできてしまうが、GPUの録画機能を利用した場合は、GPU負荷にある程度余裕が必要になる。Ryzen Threadripper環境だと圧倒的に手持ち無沙汰になるCPUにエンコードさせたい。
そこで今回は「OBS Studio」を使い、ゲーム画面をTwitchにストリーミングしつつ録画するという状況を想定してみた。ただ、ストリーミングした映像をそのままローカル保存では面白くないので、ローカルに保存する録画はストリーミング配信時のビットレートよりも高く設定してみたい。具体的にはTwitchストリーミング配信時は9000Kbps(9Mbps)、録画用は50000Kbps(50Mbps)とした。
エンコーダーはCPUで実行される「x264」、プロファイルは「high」とした。x264のCPU使用の設定はストリーミングが「fast」固定とし、録画は「medium」とした。fastだとNVEnc録画と同レベルになるので、高画質で残したいローカル保存用の録画に関してはmediumが良いだろうと考えたためだ。
まずは、先ほど試した「レインボーシックス シージ」と「Borderlands 3」のベンチマークモードを、録画&ストリーミングのエンコード処理と同時実行させた時にどの程度フレームレートが落ち込むか見てみよう。並列度の高いRyzen Threadripperであれば、ゲームの処理と2系統のエンコード処理を重ねてもフレームレートの落ち込みが少なく、逆に8コアのRyzen 7では重くて動かなくなるのではないだろうか?
どちらのゲームもストリーミング&録画処理が入ると平均fpsは下がるが、コア数の多いCPUほど影響が少ないことが分かる。Borderlands 3よりもレインボーシックス シージの方が特にRyzen環境で落ち込みが激しい点にも注目したい。さらに、Ryzen 7 3800Xは3900Xや3950Xよりも落ち込んでいないため、一見すると優秀なCPUのように見えるが、それはフレームレートではそう見える、というだけの話。
今回のように8C/16Tで2系統のエンコード作業(しかも録画はかなり重い)をさせた場合、Ryzen 7 3800XではCPUの処理が追い付かないため、エンコード処理が間欠的にスキップされ、カクカクの動画が生成されてしまう。Ryzen 7 3800Xの場合、全フレームの半分以上はエンコードがスキップされるため、録画は完全に失敗となる。Ryzen 9 3900Xの方がフレームレートが低いのは、CPUでなんとか処理をしようと頑張りすぎてしまうためだ。
Ryzen 9 3900Xとレインボーシックス シージの組み合わせの場合20%前後、Borderlands 3の場合10%前後のエンコードスキップが発生していた。8C/16TのRyzen 7 3800XはGPUエンコード、もしくは軽い設定のCPUエンコードでなら動くが、今回のように重い設定の2ストリームエンコードをする場合は、Ryzen 9 3950X(エンコードスキップ率は0.5%以下)より上のCPUが必要といえる。