見出し画像

Alder Lake, PコアとEコア - 3

プロセス数 と 使用されるCPUコア(物理コア, 論理コア)の関係(*1)について説明します.
Windows 10における話です。

ハイパースレッディングとは

ハイパースレッディングは、1つの物理コアを、仮想的に2つの論理コアに見せる手法です。
1つの物理コアの2個の論理コアを使っても完全に2倍の性能は出ません.

コアの特徴と割当ポリシー

1つの物理コアの2個の論理コアに割りあてるよりも、
異なる2個の物理コアの論理コアに割り当てた方が良いです。
また、当然ながら、EコアよりもPコアに割り当てた方が高い性能が得られます。
Pコアはハイパースレッディング対応で、2個の論理コアが見えます。
Eコアはハイパースレッディング非対応で、1個しか論理コアか見えません。

プロセス数と割当CPUコア

Core i9-12900kfの例で説明します。
Pコア8個(16論理コア)、Eコア8個あり、合計24個の論理コア(スレッド)があります。

1プロセス CPU0
2プロセス CPU0, 2
3プロセス CPU0, 2, 4
4プロセス CPU0, 2, 4, 6
5プロセス CPU0, 2, 4, 6, 8
6プロセス CPU0, 2, 4, 6, 8, 10
7プロセス CPU0, 2, 4, 6, 8, 10, 12
8プロセス CPU0, 2, 4, 6, 8, 10, 12, 14
ここまでは簡単です。
次のプロセスが難しいです。
あるPコアの2個目の論理コアに割り当てるべきか、空いているのEコアに割り当てるべきか。
これは、基本的にPコアの2個めの論理コアに割り当てられますが、時分割されて、Eコアにも割り当てられ、定まっていないです。

Task Manager

CINEBENCH実行時の各CPUコア(論理コア)の使用率です。

1プロセス
2プロセス
8プロセス
各Pコアの1個の論理コアにプロセスを割り当てている
9プロセス
9個目のプロセスは基本的にCPU1(物理コア0の2個目の論理コア)に割り当てられているが,物理コアを共有するCPU0とCPU1は,CPU使用率が100%にならず,処理は他のコア(特に8個のEコア)にも割り当てられている.
10プロセス
11プロセス
12プロセス
13プロセス
14スレッド

(*1)本記事では、プロセスとアプリケーションスレッドは同じです。論理コアとCPUスレッドは同じです。単にスレッドと書くと、アプリケーションスレッドなのか、CPUスレッドなのか分かりづらいので、本記事では使っていません。

この記事が気に入ったらサポートをしてみませんか?