CPU のマイクロアーキテクチャファミリと命令セットの判定方法
はじめに
InterSystems は、最新の CPU 命令セット拡張機能を活用するために、IRIS を最適化したいと考えています。製品のパフォーマンスに対しては素晴らしいことですが、CPU が新しい IRIS ビルドにサポートされるかを知るにはどうすればよいでしょうか。ここでは、CPU のマイクロアーキテクチャファミリと CPU の特定の命令セット拡張機能を知る方法について説明します。
CPU のマイクロアーキテクチャを調べる
ステップ 1 – CPU モデルを知る
最初のステップは、IRIS サーバーの特定の CPU モデルを調べることです。調べるには、オペレーティングシステムに応じて様々な方法がありますが、IRIS そのものからこの情報を取得するには、次のようにします。
IRIS ターミナルセッションで、do $system.CPU.Dump() を実行します。 すると、以下のような結果が出力されます。
Architecture: x86_64
Model: Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
Vendor: Intel
# of threads: 8
# of cores: 4
# of chips: 1
# of threads per core: 2
# of cores per chip: 4
MT supported: 1
MT enabled: 1
MHz: 2300
必要な CPU モデル情報は上記の Model フィールドにあります。
ステップ 2 – 普段使用している生成 AI エンジンにマイクロアーキテクチャファミリを尋ねる
調べたモデル番号は、別のプラットフォームやプロセッサの世代によって非常に異なりますが、生成 AI であればその違いをうまく埋められます。
最近は、生成AI として Bing の GTP-4 インターフェースをを使用しています。それを使用して、
<ここに CPU モデルを挿入> CPU はどのマイクロアーキテクチャファミリに属しますか?
たとえば、次のようにします。
“Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz” CPU はどのマイクロアーキテクチャに属しますか?
次のような結果が返されます。
「Intel® Core™ i7-1068NG7 CPU @ 2.30GHz」は、Ice Lake マイクロアーキテクチャに基づく第 10 世代 Intel® Core™ i7 プロセッサに属します。
この情報は適宜、Intel または AMD で確認可能ですが、同じマイクロアーキテクチャファミリに使用されるマーケティング名が複数使用されていることがあるため、調べるには少々時間がかかることがあります。たとえば、AMD の EPYC ラインのプロセッサには、Milan や Rome などのサブラインが 2 つあります。
CPU はどの命令セット拡張機能をサポートしていますか?
CPU のマイクロアーキテクチャファミリを調べて、サポートされている CPU ファミリのリストと比較するのではなく、必要となる特定の拡張機能が CPU に備わっていることを確認する場合があります。
Linux
Linux で、シェルを開いて lscpu コマンドを実行します。結果の Flags セクションに、CPU がサポートする拡張機能のリストが含まれています。
macOS
Mac では、sysctl コマンドを使ってサポートされている拡張機能を確認できます。シェルを開いて sysctl -a を実行すると、machdep.cpu.features と machdep.cpu.leaf7_features の行で CPU がサポートされている拡張機能を調べられます。
Windows
coreinfo ユーティリティを使用すると、CPU の命令セット拡張機能のリストが読みやすく表示されます。