このソフトウェア パッケージは、インテル(R) リソース ディレクター テクノロジー (インテル(R) RDT) およびインテル(R) I/O リソース ディレクター テクノロジー (インテル(R) I/O RDT) の基本サポートを提供します。以下を含みます。 キャッシュ モニタリング テクノロジー (CMT) 、メモリ帯域幅監視 (MBM)、キャッシュ割り当てテクノロジ (CAT)、コードとデータの優先順位付け (CDP)、およびメモリ帯域幅割り当て (MBA)。
原則として、ソフトウェアはハードウェア スレッド ベースでモデル固有レジスタ (MSR) を介してテクノロジをプログラムします。 MSR アクセスは、標準オペレーティング システム ドライバー (Linux では msr、FreeBSD では cpuctl) を介して調整されます。最も一般的なアーキテクチャ実装では、テクノロジーの存在は CPUID 命令によって検出されます。
CAT が特定の SKU でアーキテクチャ的にサポートされていない (ただし、代わりに非アーキテクチャ (モデル固有) 実装が存在する) という限られた数の特殊なケースでは、ブランド文字列を介して検出できます。このブランド文字列は CPUID から読み取られ、既知のサポート対象 SKU のテーブルと比較されます。必要に応じて、最終チェックとして特定の MSR をプローブしてハードウェア機能を検出しますが、可能な限り CPUID 列挙を使用することをお勧めします。
ソフトウェア バージョン v1.0.0 から、ライブラリには、利用可能な OS インターフェイス (Linux の perf および resctrl) 経由でインテル(R) RDT を使用するオプションが追加されました。ライブラリはこれらのインターフェイスの存在を検出し、構成オプションを通じて優先インターフェイスを選択できるようにします。その結果、「pqos」や「rdtset」などの既存のツールを使用して、OS と互換性のある方法でインテル(R) RDT を管理することもできます。リリース v4.3.0 では、OS インターフェイスがデフォルトのオプションになりました。インターフェイスの選択を支援するために、「pqos」ツール ラッパーが追加されました。 「pqos-os」および「pqos-msr」は、それぞれ OS および MSR インターフェイス操作用です。
PID API コンパイル時オプションが削除され、API は常に利用可能になりました。これらの API が適切に動作するかどうかは、OS インターフェイスの可用性と選択に依存することに注意してください。
このソフトウェア パッケージは、https://github.com/intel/intel-cmt-cat で保守、更新、開発されています。
https://github.com/intel/intel-cmt-cat/wiki には、FAQ、使用例、役立つリンクが含まれています。
パッケージのインストール手順については、INSTALL ファイルを参照してください。
「lib」ディレクトリ:
テクノロジーの検出、監視、割り当てのための API を提供するソフトウェア ライブラリ ファイルが含まれています。詳細については、ライブラリの README (lib/README) を参照してください。
「lib/perl」ディレクトリ:
PQoS ライブラリ Perl ラッパーが含まれています。詳細については、インターフェイスの README (lib/perl/README) を参照してください。
「lib/python」ディレクトリ:
PQoS ライブラリ Python 3.x ラッパーが含まれています。詳細については、インターフェイスの README (lib/python/README.md) を参照してください。
「pqos」ディレクトリ:
インテル(R) RDT へのコマンド ライン アクセスを提供するユーティリティのソース ファイルが含まれています。このユーティリティはライブラリにリンクし、その API を介してテクノロジをプログラムします。詳細については、ユーティリティの README「pqos/README」を参照してください。 「pqos」ユーティリティのマニュアル ページには、ツールの使用法に関する情報も記載されています: $ man pqos
「rdtset」ディレクトリ:
RDT 構成に「タスクセット」のような機能を提供するユーティリティのソース ファイルが含まれています。このユーティリティはライブラリにリンクし、その API を介してテクノロジをプログラムします。詳細については、ユーティリティの README「rdtset/README」を参照してください。 「rdtset」ユーティリティのマニュアル ページには、ツールの使用法に関する情報も記載されています: $ man rdtset
「appqos」ディレクトリ:
アプリを優先度ベースのプールにグループ化できるようにするアプリケーションのソース ファイルが含まれています。各プールには、起動時または実行時に REST API を介して設定できるインテル(R) RDT およびインテル(R) SST 構成が割り当てられます。詳細については、アプリケーションの README「appqos/README」を参照してください。
「appqos_client」ディレクトリ:
アプリ QoS クライアント Web アプリケーションのソース ファイルが含まれています。このアプリは、アプリ QoS が実行されているシステム上でインテル(R) RDT およびインテル(R) SST をリモートで構成するためのシンプルなユーザー インターフェイスを提供します。詳細については、アプリケーションの README「appqos_client/README」を参照してください。
「example」ディレクトリ:
ライブラリ API を介したインテル(R) RDT の C および Perl の使用例が含まれています。詳細については、README ファイル「examples/README」を参照してください。
「snmp」ディレクトリ:
PQoS ライブラリ Perl ラッパー API の使用法を示すために、Perl で記述された Net-SNMP AgentX サブエージェントが含まれています。詳細については、README ファイル「snmp/README」を参照してください。
「ツール」ディレクトリ:
さまざまな操作でメモリ帯域幅を強化するための membw ツールが含まれています。
「srpm」ディレクトリ:
ソフトウェア パッケージの *.src *.rpm および *.spec ファイルが含まれます。
「変更ログ」ファイル:
リリース間の変更点の簡単な説明。
「インストール」ファイル:
インストール手順。
「ライセンス」ファイル:
パッケージのライセンス。
「単体テスト」ディレクトリ:
単体テスト
サポートされている製品は、インテル® リソース ディレクター テクノロジー (インテル® RDT) アーキテクチャー仕様の付録 A に記載されています: https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -director-technology-intel-rdt-architecture-specation.html
付録 B には、モデル固有のインテル® RDT 機能を備えたプロセッサーのリストが含まれています。
注:モデル固有の機能を検出するには、ライブラリおよびユーティリティを使用するときにRDT_PROBE_MSR
環境変数を設定する必要があります。これらの機能は、MSR インターフェイスを使用する場合にのみ使用できます。詳細については、以下の「インターフェイス」セクションを参照してください。使用例については wiki を参照してください。
インテル(R) RDT の詳細については、https://www.intel.com/content/www/us/en/develop/download/intel-64-and で入手可能なインテル(R) アーキテクチャ ソフトウェア開発マニュアルを参照してください。 -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html 特定の情報は、次の場所にあります。 3a 巻、17.18 章と 17.19 章。
Linux は、現時点で主にサポートされているオペレーティング システムです。このソフトウェアには FreeBSD ポートがありますが、検証範囲が限られているため、現段階ではかなり実験的なものです。最新の Linux カーネルにはインテル(R) RDT のサポートが含まれていますが、インテル(R) RDT ソフトウェア パッケージはこれらの拡張機能よりも前から存在しており、カーネル サポートの有無にかかわらず動作できます。インテル(R) RDT ソフトウェアは、機能を追加するために利用可能な場合、これらのカーネル拡張機能を検出して利用できますが、レガシー カーネルとも互換性があります。
Intel(R) RDT の Linux カーネル サポートは、当初、CMT および MBM の Linux perf システム コール拡張機能とともに導入されました。最近では、Resctrl インターフェイスに CAT、CDP、および MBA のサポートが追加されました。最新の Linux カーネルでは、利用可能な場合はカーネル/OS インターフェイスを使用することをお勧めします。これらのインターフェイスの詳細については、resctrl_ui.txt を参照してください。このソフトウェア パッケージであるインテル(R) RDT は、引き続きすべての Linux カーネル バージョンでシームレスに動作します。
インテル(R) RDT ソフトウェア ライブラリとユーティリティは、インテル(R) RDT テクノロジーをプログラムするための 2 つのインターフェイス (MSR および OS インターフェイス) を提供します。
MSR インターフェイスは、ハードウェア (MSR) を直接プログラミングすることでプラットフォームを構成するために使用されます。これはレガシー インターフェイスであり、インテル(R) RDT のカーネル サポートは必要ありませんが、コアごとのリソースの監視と管理に限定されています。
OS インターフェイスは後にパッケージに追加され、選択すると、ライブラリは Linux カーネル拡張機能を利用してこれらのテクノロジをプログラムします。これにより、コア/プロセスごとにリソースを監視および管理できるため、利用可能な場合は使用する必要があります。
インテル(R) RDT 機能 (MSR および OS) のサポートがパッケージに追加された時期の詳細については、以下の表を参照してください。
インテル(R) RDT バージョン | RDT機能が有効になっています | カーネルのバージョンが必要です |
---|---|---|
0.1.3 | L3 CAT、CMT、MBM | どれでも |
0.1.4 | L3 CDP | どれでも |
0.1.5 | L2 CAT | どれでも |
1.2.0 | MBA | どれでも |
2.0.0 | L2 CDP | どれでも |
5.0.0 | I/O RDT | どれでも |
インテル(R) RDT バージョン | RDT機能が有効になっています | カーネルのバージョンが必要です | 推奨インターフェース |
---|---|---|---|
0.1.4 | CMT (パフォーマンス) | 4.1 | MSR (1) |
1.0.0 | MBM (パフォーマンス) | 4.7 | MSR (1) |
1.1.0 | L3 CAT、L3 CDP、L2 CAT (制御) | 4.10 | 割当専用OS(MBAを除く) 割当+監視用MSR(2) |
1.2.0 | MBA(制御) | 4.12 | 割当て専用OS 割当て+監視用MSR(2) |
2.0.0 | CMT、MBM (制御) | 4.14 | OS |
2.0.0 | L2 CDP | 4.16 | OS |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | OS |
参考文献:
インテル(R) RDT の唯一の依存関係は、C および pthreads ライブラリーへのアクセスと、以下のものです。
次の場所でインテル(R) RDT サポートを有効にします。
注: v4.10 より前では、カーネル構成オプションは必要ありません。
つまり、現時点では、Intel(R) RDT または PCM ソフトウェアを Linux perf および cgroup フレームワークと併用することは許可されていません。
残念ではありますが、CMT および MBM には Linux perf を使用し、CAT および CDP には Intel(R) RDT を使用することは許可されていません。これは、Linux のパフォーマンスが動作中に既存の CAT 設定をオーバーライドするためです。
CAT を利用するには、いくつかのオプションから選択できます。
表 4. ソフトウェア相互運用性マトリックス
インテル(R) RDT | PCM | Linuxのパフォーマンス | Linux cgroup | Linux の制限 | |
---|---|---|---|---|---|
インテル(R) RDT | はい(1) | はい(2) | はい(5) | いいえ | はい(5) |
PCM | はい(2) | はい | いいえ | いいえ | いいえ |
Linuxのパフォーマンス | はい(5) | いいえ | はい | はい(3) | はい |
Linux cgroup | いいえ | いいえ | はい | はい(3) | いいえ |
Linux の resctrl (4) | はい(5) | いいえ | はい | いいえ | はい |
参考文献:
Intel(R) RDT からの pqos モニタリングは、システム内の他の pqos モニタリング プロセスを検出できます。 Intel(R) RDT の rdtset は、rdtset で開始された他のプロセスを検出し、その CAT/CDP リソースを使用しません。
Intel(R) RDT の pqos は、PCM がコアを監視していることを検出でき、強制されない限りコアをハイジャックしようとしません。ただし、最初に pqos モニタリングが開始され、次に PCM が開始される場合、後者は pqos からモニタリング インフラストラクチャをハイジャックして使用します。
Linux cgroup カーネル パッチ https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Linux カーネル バージョン 4.10 以降。 Intel resctrl の Wiki は、https://github.com/intel/intel-cmt-cat/wiki/resctrl から入手できます。
選択した OS インターフェイスを備えた Linux カーネル バージョン 4.10 (以降)、インテル(R) RDT バージョン 1.0.0 (以降) のみ。「man pqos」または「pqos-os」の「-I」オプションを参照してください。
PCM は https://github.com/opcm/pcm から入手できます。
表 5. インテル(R) RDT ソフトウェアの有効化ステータス。
コア | タスク | CMT | MBM | L3 キャット | L3 CDP | L2 CAT | MBA | |
---|---|---|---|---|---|---|---|---|
インテル(R) RDT | はい | はい(7) | はい | はい | はい | はい | はい | はい |
Linuxのパフォーマンス | はい(6) | はい | はい(1) | はい(2) | いいえ(3) | いいえ(3) | いいえ(3) | いいえ |
Linux cgroup | いいえ | はい | いいえ | いいえ | はい(4) | いいえ | いいえ | いいえ |
Linux の resctrl (5) | はい | はい | はい(8) | はい(8) | はい | はい | はい | はい(9) |
伝説:
参考文献:
このソフトウェアはインテルにより「現状のまま」提供されます。明示的か黙示的か、禁反言かどうかにかかわらず、使用を通じていかなる知的財産権に対するライセンスも付与されません。インテルの販売条件に規定されている場合を除き、インテルは一切の責任を負わず、インテル製品の販売および/または使用に関して、明示的または黙示的を問わず、適合性に関する責任または保証を含め、いかなる保証も否認します。特定の目的、商品性、または特許、著作権、その他の知的財産権の侵害。