コンテンツにスキップ

CPU と GPU の負荷

目次

PCBenchmarkXは各リピートで固定された作業量の合成負荷を実行するため、異なるシステム間で比較できます。これらのテストではゲームの記録は使用されず、最終的な数値は「特定のゲームでのFPS」とは異なります。完全な測定サイクルは方法論に記載されています。

現在、エンジン0.5.2と負荷phase4.6-dev-1が適用されています。バージョンは念頭に置く必要があります。シナリオが変わると、異なるリリースの結果は直接比較できなくなります。

CPU: オブジェクトのシミュレーション

Section titled “CPU: オブジェクトのシミュレーション”

CPUブロックでは、座標、速度、フラグを持つ65 536個のオブジェクトが作成されます。各ステップで移動、境界からの反射、可視性が再計算されます。メインスレッドはまず8 192個のオブジェクトを連続して処理し、その後残りの部分をワーカースレッドに渡し、並行して準備を行います。その後、スレッドが同期されます。

ワーカースレッド数は次のルールで選択されます:

workers = clamp(physical_cores − 1, 1, 6)

物理コア数が不明な場合は、論理プロセッサによる推定値が使用されます。スレッド用のコアは手動で固定されません。このアプローチは、すべてのコアでの完全な並列実行ではなく、限られた支援を伴う「単一リーダー」スレッドのモデルを模倣しています。

オブジェクトの状態と走査順序は決定論的です。各CPUセクションの測定前にリセットされ、512の準備フレームをカウント外で実行し、前回の実行からの残留状態をシリーズに持ち込まないようにします。

負荷の決定論は、同じ実行時間を意味するものではありません。周波数、温度、スケジューラ、バックグラウンドプロセスは引き続き測定に影響します。

GPU部分はDirect3D 12を通じて動作します。内部作業テクスチャは、ウィンドウとデスクトップのサイズに関係なく、固定サイズ1920×1080です。

負荷 計算作業 何を区別するのに役立つか
Geometry 9 216インスタンスのシーン描画6回とポストプロセス2パス ジオメトリ処理とグラフィック作業の供給
Shader シーン描画1回、ポストプロセス16パス、シェーダー複雑度パラメータ24 ピクセルおよびテクスチャ負荷
Compute グリッド1920×1080、グループ8×8、96イテレーションの整数演算 コンピュートシェーダーの実行
Combined CPUシミュレーションと固定グラフィックパイプライン CPU、ドライバー、GPUの協調動作

これらは作業量の異なる個別のシナリオです。例えば、Computeの8 000の仮想フレームは、ゲームでの8 000 FPSとして読んだり、Geometryの800フレームと直接比較したりすることはできません。統合には、スコア計算に記載されているシナリオごとの正規化が適用されます。

負荷は移植可能な機能レベルで書かれています: shader model 5.0とfeature level 11_0で、ベンダー拡張はありません。同じコードが異なる世代とメーカーのビデオカードで実行され、特定のベンダー向けの個別ブランチはありません。

測定後、エンジンは各GPU負荷の出力を検証します: Geometry、Shader、Compute、Combined、およびロードされたレイテンシテストについて、制御シグネチャ — 結果の小さなフラグメントの期待される形式 — が記録されています。完了後に読み取られたフラグメントは期待値と比較されます。不一致は負荷が正しく実行されなかったことを意味し、実行を不適格にします。検証はカウント対象の測定後に行われ、数値自体には影響しません。

このセットには、ディスク速度とRAM帯域幅の個別テストはありません。メモリとドライバーは負荷の実行に影響しますが、ベンチマークはSSDとRAMの個別評価を計算しません。

5つのパフォーマンス負荷は、順序を入れ替えながら3ラウンドで実行されます:

ラウンド 順序
1 CPU → Geometry → Shader → Compute → Combined
2 Shader → Compute → Combined → CPU → Geometry
3 Combined → CPU → Geometry → Shader → Compute

各負荷のシーケンス内の位置はラウンドごとに変わります。これにより、比較への影響が減少します。ウォームアップは依然として結果を変える可能性があるため、ブロックについて実行速度のばらつきと最初のブロックから最後のブロックへの変化が追加で保存されます。

シナリオの評価には、その3つのブロックのthroughputの算術平均が使用されます。ブロックの中央値と幾何平均は追加の診断として確認できますが、最終的な指標は依然としてこの平均に基づきます。

なぜ低解像度がメインテストを軽くしないのか

Section titled “なぜ低解像度がメインテストを軽くしないのか”

CPU、GPU、Combinedの負荷は画面バッファ外で実行されます。それらのコマンド送信パスはPresentを引き起こさず、表示キューの制限を待ちません。デスクトップが800×600に切り替えられても、内部テクスチャは1920×1080のままです。

インターフェースとレイテンシテストは別の出力パスを通じて動作します。したがって、デスクトップの解像度を変更しても、負荷自体は軽くなりません。それでも、どの解像度でも「完全に同じ」結果を読み取ることはできません。出力部分にはドライバーとシステムの現在の状態が関与します。

1920×1080、1280×768、800×600での実用的な検証は、再現性に関する記事に記載されています。

説明された実装について検証済み: 2026-09-20。