2020上半期時点でのFF11用PC




はじめに&結論


最近、メインで利用しているPCが故障したことを受けて新たなPCを更新する際、FF11を快適に遊べる環境とはどんな環境なのだろうか、と思い、いろいろと調査してみた。以下はその結果のまとめである。

とりあえずまず言えることは、ストレージはSSD以外あり得ないことである。エリアチェンジなどでの待ち時間が短縮されることが誰でもわかるレベルで変わるので、これは外せない。可能ならNVMe接続のSSDだが、実際のところSATA SSDとの差はあまりわからないので、そのあたりは究極を目指すのでなければどちらでも良い。

ストレージについては上記が結論なので置いておくとして、それ以外の要素において、何を基準に FF11 的に快適な環境といえばいいのか?と考えたときに、最初に挙がるだろう指標は「FF11 ベンチ (v3) のスコアが高いこと」であろう。実ゲームでの快適さが最終目的ではあるが、ここでは、この基準に基づいて考えることとした。その結果が下記である。

  • GPUはCPU とメモリ帯域を共有するものは×。10xxG7でもH8000くらいしか行かないので、これはマストである。できるだけGVRAMメモリ帯域が広いものを利用する。なお、SLI/CrossFireは効果が出ないどころか多くの場合スコアが落ちるので×。
  • CPUはできるだけ動作クロックが高いものを選ぶ。コア数はHTオフ状態で4コア以上は無意味(HTはオフにした方がよい)。
  • CPUクーラーは、CPUのスペック(TDP)よりもかなりオーバースペックなものを用意した方が良い。
  • メモリはDDR4の2ch接続以上、8GB以上にする。
  • OSはWindowsXPで動かす方が軽いのは事実だが、最新の環境ではもうWinXPはまともに動作しないので×。Windows10 64bitで良い(上記でメモリ設定が8GB以上なのは、このOSを満足に動作させるため)。

しかしながら、2020年現在で最新世代のCPU+最新世代のdGPUでFF11用の環境を用意する場合、最も重要なことはハードウェアとして何を選ぶかではなくなっていると言っても過言ではなくなっている。ではその最も重要なこととは何かというと、

OSの省電力機能をすべてオフにするなどして、CPUとGPUをできるだけ高い動作クロックでクロックを固定した状態で動かすこと

なのだ。この設定と、それに対応した放熱対策がきちんとできてさえいれば、ミドルクラスの環境でも十二分に高いスコアが出て、快適な環境が得られるのである。


具体的な設定について


過去にMMORPG向けPCでOverClock(以後OC)運用をやってみたことのある人からすると、「高い動作クロックを維持」というと、「OC状態で固定しろってこと?長時間、他人と協力しつつ動き続けるMMOでは、OC動作による不安定さは厳禁だからそんなことはできないよ」と思われることだろう。

しかし、最近のCPU(GPUも)ではそのあたりからして事情が異なるのである。最近のCPUでは、CPUの動作クロックは最○MHz(通常△MHz)とか書いてあり、CPUの動作クロックが最大動作周波数である状態であることはあまりない。それどころか、最大動作周波数でずっと動くことはそもそも想定されていない。最大動作周波数=かつてのマイルドOC状態なのだ。

実際、今どきの CPU は標準状態でもコア温度の高さによる上限リミッターだけでなく、負荷を元に動作周波数を落として発熱(消費電力)を最小限にするようコントロールするし、コア電圧すら自動でコントロールする機能まであるのである。

この「発熱の最小化」が、アプリ単体で見た場合のパフォーマンスを低下させる要因になることがままあるのだが、これは FF11 ベンチ(のような古いアプリ)を動かす場合、ベンチマーク中ですらも発生する事象であることが問題となる。これがFF11用の環境を用意する上で最も大きな障害となる問題なのだ。

では、この問題をどう解決すればいいのかというといくつかあるが、問題の環境がデスクトップPCであるのであれば、Windows10 April 2018 Update以降で実装された電源設定「究極のパフォーマンス」設定を使うというのがお手軽である。

具体的には下記の手順を行う。

  1. 「Windows Power Shell」(あるいはコマンドプロンプト)を管理者モードで起動。
  2. powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61を実行。
  3. 「コントロールパネル」を開き、「システムとセキュリティ」→「電源オプション」と開く
  4. 電源プラン選択画面の「追加プラン」に「究極のパフォーマンス」設定が現れているので、それを選択した状態にする。

これにより、すべての省電力モードが動作しなくなって、(基本的には)定格動作状態より下にクロックが下がらなくなる。もちろん消費電力は上がってしまうが、FF11における効果は絶大なので、常用するかは別としても、試せる人はしてみるといい。

なお、ノートPC環境(あるいはノートPCと同様な構成のミニPC等の環境)では、上記を実行しても「究極のパフォーマンス」プランが出てこない(あるいは効かない)ことがある。このような場合は、マザーボードやGPUに付いてくるOC用のutilityを使って、CPU/GPUの動作クロックを固定してやるしかない。これはマザーボード・GPUそれぞれでやり方が異なり、大抵とてもややこしいので、CPU/GPUの動作クロックを表示するツールを使ってベンチマーク中の動作クロックを確認しながら試行錯誤する必要がある。



なんでそんなことになっているのか?


なぜ省電力設定をオフにすればいいという話になっているのか。それを語るには、まずFF11ベンチマークがどんな基準で採点されているかを知る必要がある。

今回の試行錯誤の結果、スコアの基準はおそらく下記のようなものであると思われることが判明した。

  • 300秒の計測時間中に、45fpsのペースでの描画を維持できれば +1ptされ、満点は 45fps×300secで13500pts。
  • 1 フレームでも1/45sec以内に描画が間に合わないと、その次のフレームは飛ばされ、点数が加算されない。
  • L/Hのどちらでも解像度が違うだけで点数基準は同様。

このベンチマークには、640x480の「L」と、1024x768の「H」の2種類のモードがあるわけだが、最新世代のミドルクラスの環境で、普通にFF11ベンチを動作させると、Hが1万点くらいになる。しかし、上記の省電力機能をオフにする手順を行ってからFF11ベンチを動作させると、それだけでLもHも13000点以上になる。

現時点でのハイエンド環境である、Corei9-109x0環境でも、省電力機能をオフにするかOC設定で動作クロックを固定しないとHで13000点を超えられないので、この設定の有無による効果の大きさが絶大だということがわかってもらえると思う。

参考までに、Corei9-10980XE@5.2GHz/DDR4-3800(CL14-16-16-36-666-1T)/Geforce RTX2080Ti@2160MHzCore-8400MHzMem)環境でもL-13497/H-13481と、カンストには至らないらしい。ベンチマーク中のfps推移を見ていると、描画が重いシーン同士でのシーン切り替え時にクロスフェードしているところでfpsが落ちているようなので、満点を取ることはかなり困難だと思われる。


省電力との相性の悪さ


省電力機能をオフにしたらなぜ動作が改善されるのか。それは、今どきのCPU/GPUに搭載された省電力機能と、FF11の描画エンジンの相性が最悪だからである。元々、FF11 のようなマルチコア化以前の古い3Dゲームと最近のCPU/GPUにある省電力機能の相性は良くないのだが、FF11の場合には、普通の古いゲーム以上に相性が悪い要素が存在するため、最悪に相性が悪いのだ。

これがどういうことかを説明するためには、前提として、今時のCPU/GPUにおける省電力機能というものがどういうものであるかから知る必要がある。

例として論理CPUコア数が8個の、1GHzで動作するシステムで考えてみることにする。1GHzで動作するということはつまり、このCPUのコア1個は、1秒の間に1G(1,000,000,000)クロック(1クロック=CPU処理の単位時間)分の処理が可能ということである。よって、このCPUを全力で稼働させると、1秒間で8Gクロック分の処理ができるということになる。

Windows等のリッチなOS環境では元々、同時に複数のプログラムが動作しているように見せるために、一定間隔でCPUがどのプログラムの処理を進めるかを切り替えながら動作させているために、一つのプログラムが利用できる最大CPU時間は低いのだが、CPUコアが増えると、これを複数のコアへ割り当てることによって、一つのプログラムが利用できる最大CPU時間が増えるようになる。

しかし、プログラム側でマルチコア対応していない限り、そのプログラム単体では1コア分以上のCPU時間を利用することはできない。これは、原理上マルチコア環境では全く同時に同じ場所のメモリに違う値を書き込みに行くことが可能になるために、処理結果が不定になるケースが発生する問題があり、これを回避するにはかなり根本的なところからプログラムの構造を変更する必要があるからだ。

この構造変更は必ずしもうまくいくものではないので、総キャッシュ量などが同一なのであれば、1GHz動作するCPUコア×8個よりも、8GHz動作するCPUコア×1個で処理した方が多くの場合速くなる。なぜそうしないかと言えば、コア数をn倍に増やす方が動作クロックをn倍に増やすより簡単であり、多少効率が悪くなってもその方が処理可能なクロック数が多くなるからである。

ともかくマルチコア化が進んだことにより、CPUの消費電力効率が悪くなり、発熱量も大きく増えたため、発熱量の抑制のために省電力機能の強化が図られた。では省電力機能は何をやっているのかと言うと、動作クロックの調整である。簡単に言えば、動作クロックを低くすれば消費エネルギー量はその分減るからだ。

1秒間の間に「CPUが実際に動作していたクロック数」を、「そのCPUが最大で利用可能なクロック数」で割った数を一般的に「CPU使用率」と言うが、CPUの省電力機能は、CPU使用率などを見て、使用率が低いときには動作クロックを落としてしまうわけである。先ほどの8コア1GHzなCPUでCPU使用率が10%だった場合、1秒間に必要だったクロックは8G×0.1=800Mクロックだ。よって、CPUを1GHzの1/5の200MHzで動作させたとしても、最大利用可能クロック数は200M×8=1600Mクロックになり、需要(800Mクロック)を満たせる。CPU使用率は50%になる代わりに1/5の電力消費=発熱量で動作させられるという理屈である。

ただ、FF11はマルチコア対応していないので、全力稼働できたとしても、例示した8core環境では1core分しか使えないので、CPU利用率は最大でも12.5%止まりとなってしまう。もちろん、ここまでであれば、省電力機能を作る側としても想定内であるので、ある程度の対策は取られているわけだが、FF11では、これとはまた別の問題があるために、さらにひどいことになっているのである。

3D描画を行う際には、まず座標計算を行い、画面内での各物体の座標を求めたあと、3次元的な配置や採光状態等をもとに彩色する「レンダリング」という作業を行うわけだが、今時の3Dゲームだと、レンダリング処理はGPU側で全てを行う(というか、その前段たる座標計算の段階からGPUを使って行う)ようになっているのだが、FF11がPCへ移植された時点では、レンダリングを行うにあたって必要な一部の機能がまだGPUに実装されていない部分があったため、この一部の処理をCPU側で行っているのだ。このため、GPUはGPU担当分の描画が完了したらCPU側による処理が終わるまで待ち、終わったら残りの処理(メニュー等の合成)を行うという仕組みになっている。

さて、この状況下でGPUについての使用率を考えるとどういうことになるだろうか。CPU側の処理が行われている間、GPUは何もしていないので、1フレーム全体の描画にかかる時間をベースに考えると、GPUとCPUで半々くらいの時間を使っているとしても、GPUは半分くらいの時間はCPU側の処理待ちで何も処理していない状態になる。このため、GPU使用率は惨憺たる数字になってしまうのだ。実際にはCPUの方が多くの時間を使っているので、この影響はさらにひどいことになっているのである。

結果どうなるかというと、GPUの省電力機能が常に全力で働いた状態になってしまうのだ。具体例として言えば、基本動作クロック1350MHz、ブースト時クロック1545MHzで動作するはずのRTX 2080Tiでは、動作クロックは300MHz固定状態になる。ブーストクロックどころか、ベースクロックまで上がることすらない。ざっくり言って本来の1/5の性能しか発揮できないのだ。

FF11ではGPUのメモリバス帯域が重要なのだが、上記の通りクロックが落とされてしまうので劇的に性能は劣化する。しかし、実際には動作しているときには全力稼働して、可能な限り処理時間を短縮し(GPU使用率を落とし)、CPU側が処理に使える時間を稼ぐ必要があるのだ。だからGPUの本来の性能を引き出すには、省電力機能は全く働かないようにしなければならないし、なんならブーストクロック状態で動作クロックを固定してやる必要があるのである。



以後では、以上の条件を満たした前提の上での、パーツごとの選定基準について解説していく。


ストレージ


「ストレージはSSD以外ありえない」と書いたが、なぜそうなるかというと、FF11ではランダムアクセス速度による影響が大きいからだ。この点においてはHDDよりもSSDの方が桁違いに高速であるため、HDDを使う余地はない。

もちろん、性能的な究極を求めるならRAMディスク上にインストールするのが最強であるのは確かなのだが、FF11のようなMMORPGでは、プレイ中にPCがクラッシュ/不調になってPCを再起動するというシチュエーションがそれなりにあるため、復帰に結構な時間がかかるRAMディスク環境は採用しづらい。このためにSSD一択となるという話なのである。

高速なストレージといえばRAIDアレイはどうなのか?と思う人もいるかもしれない。しかし、RAIDで高速になるのは巨大なファイルの転送を行う際に効いてくるシーケンシャルアクセス性能なのであって、ランダムアクセス性能は基本的に単体の時より落ちるのだ。よってランダムアクセス性能が全てなFF11に関して言うなら、「RAIDはある方が遅い」という話になるため、採用できない。

なお、SSDと言ってもSATAかNVMe接続かがあるだろう、という話もあるが、意外にもその答えは「どっちでも良い」となる。FF11ではファイル1つのサイズが小さいためか、SATA接続のSSDの時点で十分に高速であり、それ以上に高速なNVMe接続のSSDに変更しても大差は付かないのだ。もちろん、ランダムアクセス性能が高い、性能重視のSSDである必要はあるが。

実際のところ筆者はこの点での改善の余地があるかを確認するため、現時点でRAMディスクを除いて最強のランダムアクセス性能を持つストレージデバイスである、「Intel Optane 905P」(3D-Xpointメモリをキャッシュメモリではなく直接SSDとして使うストレージ)をNVMe接続(PCIe3.0-x4接続)で使ってみたのだが、確かに高速にはなるものの、体感上はSATA-SSDの場合と大差はなかったorz



メモリ


実際問題として、GPUに専用メモリが付いている環境では、DDR4-2933 の 2ch 状態から、DDR4-4000 の 4ch にしてもベンチマークスコアで大差はつかなかった。よってDDR4であれば定格の 2ch で十分な性能があると考えて良いものと思われる。

もちろん全く変わらないわけではないが、費用の割には効果は薄いので、優先順位としては低めである。もちろん究極スコアを目指すならやったほうがマシではあるのだが、2ch構成を4ch構成にする時点で帯域は倍なのに、さらに1.33倍のクロックにした(変更前後でメモリのCL値は同じ)のにスコアの伸びはかなり微差だったことは知っておいてほしい。

なお、iGPU環境(GPUが専用メモリを持たず、メインメモリを利用する環境)では、GPUの項目で後述予定の理由から、メモリ帯域はあればあっただけ高速になる可能性が高いので変更する意味はあると考えられる。



CPU


最新世代である第10世代CPUは、Celeronですら4コアだったりするが、FF11は同時には1コアしか使えないので、CPU選択の際に、コア数にはほぼ意味がない。では重要なのは何かというと、動作周波数の高さとキャッシュメモリの量である。

いくらFF11が1コアしか使えないとはいえ、CPUは4コアより少ない環境だと、あからさまにFF11以外の処理にCPUリソースを食われてスコアが落ちる。逆にいえば、それ以上にコア数が増えてもほぼ何も変化しない。上述の通り、Celeronですら4coreなので、何を選んでもコア数下限はクリアできているのである。ただ、Cerelonはキャッシュが少ないせいか、ゲーム全般において動作周波数の割にスコアが悪いことは覚えておいた方がよい。最近はL2/L3キャッシュあたりがコア間で共用されるようになっていることもあり、コアが多いとその分キャッシュ総量がが増える分優位になるが、逆に言えばその程度の差でしかなく、その差も総量が一定より多くなれば差はほぼなくなる。

長時間プレイする前提も合わせて考慮すれば、重要なのは常用可能な「ベース動作周波数」の高さということになる。現時点で最新の第10世代のIntel Coreプロセッサだと、下記あたりが最高であると期待できる。

  • Core i7-10700K(F)(8C16T/16MBcache/3.8GHz-5.1GHz)
  • Core i5-10600K(F)(6C12T/12MBcache/4.1GHz-4.8GHz)

省電力機能をオフするだけで、特にクロック固定指定をしないのであれば、i5-10600KFの方がベース動作周波数が高い分優位である可能性が高い。ついでに言えば、HTも要らないのでoffにするのが良い。なお、i3だと、ベース3.8GHzなのはいいとしてもキャッシュが8MBとなるため、i5はもちろん、i7には劣ることも重要である。

今性能が良いというので売れている、AMD Ryzen 3xxxシリーズの方は実際には試せていないので断言はできないのだが、Cinebench等の結果を見る限り、シングルコア性能はCPUコアが増えすぎない分には良い(16C32Tとかだと1CPUあたりのメモリ帯域が減る影響か、コア数が少ないCPUよりもスコアが落ちる傾向があるようだ)ため、いいスコアが期待できるのは間違いない。

なお、CoreX系(X299マザー)を採用しても、メモリの項でも書いたとおり「4chメモリ」にすることによるメリットはあまり出ないし、NVMe-SSDを複数つないでRAIDしてもランダムアクセス性能は上がらないために意味がないので、プレイ動画を(リアルタイム)配信するのでもなければ特に優位点はない。



CPUクーラー&電源


CPUクーラーとしては、240mm以上、できれば280mm/360mmのラジエータが付いた簡易水冷を、音が気にならないギリギリまでファンの回転数を上げた状態を最低ラインの回転速度として設定して使うのが良い、というのが結論である。

もちろん簡易水冷なら何でも良いわけではない。安物の簡易水冷は冷却能力が劣るものが結構あるようなので注意が必要である。具体的な製品としては、現時点ではCorsair製の「iCUE H115i/H150i RGB PRO XT」が最も良いようだが高い。NZXT の Kraken X系、ThermaltakeのWatercool 3.0系あたりのCPUユニットがCorsairが使っていたAsetekOEMのモノであるらしく、安いが性能は良いそうなので狙い目である。

(簡易)水冷のメリットは、熱源から熱交換する場所をある程度の自由度をもって発熱部より離すことを可能とすることで、より効率よく熱交換できる位置で熱交換させることができることにあるのであって、同等のサイズのラジエータ(空冷の場合ヒートシンクとかフィンと呼称される部分、以後フィン)を使った場合、冷却性能は普通に水冷の方が劣る点に注意が必要である。よって、120cm/140cmのCPU用簡易水冷ユニットは、よほど小さいケースであるなどで、大きめの空冷CPUクーラーが装着できないとかいう特殊な事情がない限り無意味である。

ハイエンド空冷は、140cmファン×2と、そのファンと同等のサイズのフィンを持つので、一見240mm水冷の方が不利に見えるかもしれない。しかし、ハイエンド空冷は、利用可能な空間の制約上、1つのフィンを通過した、熱くなった空気を2つめのフィンに通す形しか取れず、実質として140mm×140mmの、倍の厚さのフィンを使って冷やしているようなものでしかない。熱交換は、温度差が大きいほど効率よく行われるものなので、ケース内の気温の空気が直接当たる面積が広い水冷ラジエータの方が、空冷フィンよりも熱交換効率としては優位となる。

特にCore-i7以上の上位のCPUを使う場合、コア数が増えたことで単純に発熱量が増えていることもあり、もはや空冷では厳しいと言わざるを得ない。CPUの冷却能力はあればあるだけ、ベース周波数より高い動作クロックで動作する時間が延びるので、ここをケチるくらいならCPUのグレードを落とした方がマシなくらいである。

なお、空冷・水冷いずれにせよ、熱くない時にファンを停止する機能は使わず、上記のように、音が気にならない範囲での最高回転数で回している状態にしておいた方が良い。これはなぜかというと、省電力機能の進化でCPUの動作が極端になっているため、CPU動作クロックの乱高下に冷却ファンの速度変化では間違いなく付いてこれないからだ。実際、ファンがサボっている状態からだと、CPUの温度が40度の状態から1秒で80度になってスロットリングどころか青窓になることも珍しくない。仮にそうならないとしても、その瞬間、ファンは全力でCPUを冷やしにかかるしかなく、全開で回るしかなくなるので超うるさいし、頻繁にそんなことになったり止まったりすると、爆音が安定して発生し続けるよりも耳障りだからだ。

同様な理由(瞬間的に負荷が増減する)から、電源ユニットはプラチナ電源で容量多めのものを選んだ方が良い。例として言うなら、CoreX系CPU(X299)だとSLI/Crossfireしなくても850W電源が最低ラインだし、物理8coreあるCore i9でも同様である。なにしろ最近のIntelCPUの最大クロック=電圧までいじったOC状態なので、電源容量に余裕がないと普通に不安定になるからだ。



GPU


GPUは、FF11が元々PS2用として作られた描画エンジンをPC用に移植したものであること、そして利用しているDirectX APIが古いバージョンのものであること、の2点の理由により、メモリバス性能が高いものが優位である可能性が高い。

前者がどういう話なのかから解説すると、PS2はVRAM全体を1秒間に12000回書き換えられるという、超絶に高性能なメモリバスを持ったハードウェアだったため、PS2用に作られた描画エンジンは、必然的にその超高性能なメモリバス性能を前提として作られていたのである。このため、移植時にある程度の緩和はしたにせよ、それでも高いメモリバス性能を要求する傾向があるからだ。

そして後者は、FF11が、PC版FF11が世に出た後に大きく進化した効率の良いAPIを使えないということである。3Dレンダリング処理においては、「効率がいい」というのは、基本的に「見た目同等な結果を得るために必要なメモリアクセス量をどう減らしたか」という方向性での進化になるため、効率の悪いAPIしか使わないFF11は、非常にメモリアクセス量が(レンダリングの質に比して)多い傾向があるという話である。

以上から、GVRAMのメモリバス帯域が高速なGPUが良いということになるのだが、困ったことに、GPUの価格はGPUに搭載されたメモリの価格で決まると言っても過言ではないのが現実であるため、コストパフォーマンス改善に繋げづらいのも事実である。実際問題としてGPUのラインナップでは基本的に上位のモノほどメモリバス帯域が広いため、最善は最上位のGPUになる。NVIDIAならRTX2080TiもしくはTITAN RTX、RADEONならRADEON VIIである。RADEON VIIのメモリバス帯域はTITAN RTXより上であるため、最高のスコアが出る可能性があるが、RADEONのドライバは最新世代のゲームについてはともかく、過去のゲームはまともに動かないことも多い関係から選びづらく試せていないので、実際のところどうなのかはわからない。

タグ:

+ タグ編集
  • タグ:
最終更新:2020年10月10日 09:38