OCIチュートリアル
タグ検索 トップページへ戻る

パフォーマンスに関連するベアメタルインスタンスのBIOS設定方法

タグ: #hpc

注意 : 本コンテンツ内の画面ショットは、現在のOCIコンソール画面と異なっている場合があります。

0. 概要

ベアメタルインスタンスは、作成時にBIOS設定を指定することが可能ですが、この中にはHPCワークロードの実行時パフォーマンスに影響する以下の項目が含まれます。

  • NUMA nodes per socket (以降 NPS と呼称します。)
    NPS は、CPUソケット当たりの NUMA(Non-Umiform Memory Access)ノード数を指定するBIOS設定です。
    サーバ用途のCPUでメモリ性能を向上させるために採用されているメモリインタリーブは、インターリーブするメモリチャネルを同一NUMAノードに接続されるものに限定します。このため、 NPS を適切に調整することで、あるCPUコアから見て距離的に同じメモリチャネルのみをインターリーブし、 STREAM ベンチマークのようなメモリアクセスパターンを持つアプリケーションの性能を向上させることが可能でです。
    例えば、AMD EPYC 9654プロセッサと同じアーキテクチャの BM.Standard.E5.192 のプロセッサは、12個の CCD(Core Complex Die)と、 I/O Die 内の UMC(Unified Memory Controller)が下図 (出典: AMD EPYC 9004 Series Architecture Overview)のように構成されており、最も距離が近い関係(ローカル)にある3個の UMC が1グループを構成し、12個の UMC が4グループに分かれています。
    画面ショット
    このため、 NPS を4に設定することで、最も距離の近い3個の UMC のグループ内にメモリインターリーブを限定し、 NUMA ノード内のメモリアクセス性能を向上させることが可能となります。
    指定可能な NPS 値は、対象のシェイプ毎に異なり、HPC/機械学習ワークロード向けベアメタルシェイプでは下表のようになっています。

    シェイプ サポートする NPS
    BM.Optimized3.36 1(デフォルト), 2
    BM.Standard.E5.192 0(※1), 1(デフォルト), 2, 4
    BM.Standard.E6.256 0(※1), 1(デフォルト), 2, 4
    BM.GPU4.8 0(※1), 1, 2, 4(デフォルト)
    BM.GPU.A100-v2.8 0(※1), 1, 2, 4(デフォルト)

    ※1)2CPUソケットを1 NUMA ノードとして構成

  • Simultanious Multi Threading (以降 SMT と呼称します。)
    SMT は、CPUコア当たりに2個の論理スレッドを割当てるかどうかのBIOS設定です。
    HPCワークロードにみられるCPUインテンシブなアプリケーションは、この SMT を無効化する(CPUコア当たりに1個の論理スレッドを割当てる)ことで、性能が向上することがあります。
    BIOS設定上 SMT を有効化してインスタンスを作成した場合でも、OS設定でこれを無効化することが出来ますが、BIOS設定上 SMT を無効化してインスタンスを作成した場合、 SMT を有効化するためにはインスタンスを再作成する必要があります。

以降では、 NPSSMT のBIOS設定を指定して、計算/GPUノード用途のベアメタルインスタンスを作成する方法と、作成したベアメタルインスタンスのBIOS設定を確認する方法を解説します。

ベアメタルインスタンス作成時のBIOS設定に関するOCI公式ドキュメントは、 ここ を参照してください。

1. BIOS設定を指定したベアメタルインスタンスの作成

1-0. 概要

本章は、ベアメタルインスタンス作成時のBIOS設定方法を解説します。

ベアメタルインスタンスのBIOS設定は、 OCI HPCチュートリアル集 で解説している構築手法を前提としたHPC/GPUクラスタの計算/GPUノードの場合、以下の方法で指定します。

  • インスタンス構成 で指定
    OCI HPCチュートリアル集 のOCIコンソールを使用する手動構築でHPC/GPUクラスタを構築する場合、構築手順中で作成する インスタンス構成 にBIOS設定を指定します。
  • Terraform スクリプトで指定
    OCI HPCチュートリアル集Terraform を使用する自動構築でHPC/GPUクラスタを構築する場合、構築手順中で作成する Terraform スクリプトにBIOS設定を指定します。

なお、 OCI HPCチュートリアル集HPCクラスタスタック を使用する自動構築でHPC/GPUクラスタを構築する場合、 HPCクラスタスタック がBIOS設定に対応していないため、計算/GPUノードのBIOS設定を変更することが出来ません。

また、単一インスタンスをOCIコンソールから作成する場合は、インスタンス作成画面でBIOS設定を指定します。

以降では、BIOS設定の指定方法を以下3タイプに分けて解説します。

  • インスタンス構成 で指定
  • Terraform スクリプトで指定
  • 単一インスタンス作成時にOCIコンソールで指定

1-1. インスタンス構成でBIOS設定を指定する方法

インスタンス構成 を作成する際の以下 イメージとシェイプ フィールドで、

画面ショット

シェイプの変更 ボタンをクリックして表示される以下 すべてのシェイプの参照 サイドバーで ベア・メタル・マシン をクリックして表示される所望のシェイプ(ここでは BM.Optimized3.36 )を選択し 詳細BIOS設定 ボタンをクリックし、

画面ショット

表示される以下の 詳細BIOS設定 フィールドで NPSSMT を所望の値に設定し、 シェイプの選択 ボタンをクリックします。

画面ショット

1-2. TerraformスクリプトでBIOS設定を指定する方法

OCI HPCチュートリアル集Terraform を使用する自動構築でHPC/GPUクラスタを構築する際のBIOS設定を適用する方法は、HPCクラスタの場合は OCI HPCチュートリアル集HPCクラスタを構築する(基礎インフラ自動構築編)0-1-2. スタック作成リソース・マネージャ を使用する場合)か 0-2-3. Terraformスクリプト作成Terraform CLIを使用する場合)を、GPUクラスタの場合は OCI HPCチュートリアル集GPUクラスタを構築する(基礎インフラ自動構築編)0-1-2. スタック作成リソース・マネージャ を使用する場合)か 0-2-2. Terraformスクリプト作成Terraform CLIを使用する場合)を参照してください。

1-3. 単一インスタンス作成時にOCIコンソールで指定する方法

コンピュート・インスタンスの作成 画面の以下 イメージとシェイプ フィールドで、

画面ショット

シェイプの変更 ボタンをクリックして表示される以下 すべてのシェイプの参照 サイドバーで ベア・メタル・マシン をクリックして表示される所望のシェイプ(ここでは BM.Optimized3.36 )を選択し 詳細BIOS設定 ボタンをクリックし、

画面ショット

表示される以下の 詳細BIOS設定 フィールドで NPSSMT を所望の値に設定し、 シェイプの選択 ボタンをクリックします。

画面ショット

2. 作成したベアメタルインスタンスのBIOS設定確認

本章は、作成したベアメタルインスタンスのBIOS設定を確認します。

OCIコンソールで当該ベアメタルインスタンスの インスタンスの詳細 画面を表示し、以下の BIOS設定 フィールドで NPSSMT の設定を確認します。

画面ショット