次の方法で共有


VM の構成と最適化

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

この記事では、InfiniBand 対応の HB シリーズN シリーズの VM を HPC 用に構成および最適化するためのガイダンスを紹介します。

VM イメージ

InfiniBand (IB) 対応の VM では、RDMA を有効にするために適切な IB ドライバーが必要です。

  • Marketplace の Ubuntu-HPC VM イメージには、適切な NVIDIA IB ドライバーと GPU ドライバーがあらかじめ構成されています。
  • Marketplace の AlmaLinux-HPC VM イメージには、適切な NVIDIA IB ドライバーと GPU ドライバーがあらかじめ構成されています。

これらの VM イメージは、ベースの Ubuntu と AlmaLinux のマーケットプレース VM イメージに基づいています。 ベースのマーケットプレース イメージからこれらの VM イメージを作成するときに使われるスクリプトについては、azhpc-images リポジトリを参照してください。

GPU 対応の N シリーズ VM では、適切な GPU ドライバーがさらに必要です。 これは、次の方法で入手できます。

  • NVIDIA の GPU ドライバーと GPU コンピューティング ソフトウェア スタック (CUDA、NCCL) が事前に構成されている Ubuntu-HPC VM イメージまたは AlmaLinux-HPC VM イメージを使います。
  • VM 拡張機能を通じて GPU ドライバーを追加します。
  • GPU ドライバーを手動でインストールします。
  • Marketplace のその他一部の VM イメージには、NVIDIA からの VM イメージなど、NVIDIA GPU ドライバーがプレインストールされています。

ワークロードの Linux ディストリビューションとバージョンのニーズに応じて、Marketplace の Ubuntu-HPC VM イメージAlmaLinux-HPC VM イメージを使うのが、Azure で HPC と AI ワークロードを使い始める最も簡単な方法です。 また、再利用のために、ワークロード固有のカスタマイズと構成を使用してカスタム VM イメージを作成することをお勧めします。

HPC VM イメージでサポートされる VM サイズ

InfiniBand OFED のサポート

最新の Azure HPC マーケットプレースのイメージには、Mellanox OFED 5.1 以降が含まれています。これは ConnectX3-Pro InfiniBand カードをサポートしていません。 ConnectX-3 Pro InfiniBand カードには MOFED 4.9 LTS バージョンが必要です。 これらの VM イメージでは、ConnextX-5 以降の InfiniBand カードのみをサポートしています。 これらの HPC VM イメージでの InfiniBand OFED の VM サイズ サポート マトリックスは次のとおりです。

GPU ドライバーのサポート

現在は、NVIDIA の GPU ドライバーと GPU コンピューティング ソフトウェア スタック (CUDA、NCCL) が事前に構成されているのは、Ubuntu-HPC VM イメージAlmaLinux-HPC VM イメージのみです。

サポートされている HPC VM イメージでの GPU ドライバーの VM サイズ サポート マトリックスは、次のとおりです。

  • N シリーズ: NVIDIA GPU ドライバーと GPU コンピューティング ソフトウェア スタック (CUDA、NCCL) で NDv2、NDv4 VM サイズがサポートされています。
  • N シリーズの他の "NC" および "ND" VM サイズは、NVIDIA GPU ドライバーでサポートされています。

N シリーズのすべての VM サイズで第 2 世代 VM がサポートされていますが、一部の古いものでは第 1 世代 VM もサポートされています。 第 2 世代のサポートは、イメージ URN またはバージョンの末尾の "01" によっても示されています。

SR-IOV 対応の VM

Ubuntu-HPC VM イメージ

SR-IOV 対応の RDMA 機能付き VM の場合、Ubuntu-HPC VM イメージのバージョン 18.04、20.04、22.04 が適しています。 これらの VM イメージは、RDMA 用の Mellanox OFED ドライバー、NVIDIA GPU ドライバー、GPU コンピューティング ソフトウェア スタック (CUDA、NCCL)、よく使われている MPI ライブラリおよび科学コンピューティング パッケージを使用して事前構成されています。 VM サイズ サポート マトリックスを参照してください。

  • VM イメージの使用可能なバージョンまたは最新バージョンは、CLI または Marketplace を使用して、次の情報と共に一覧表示できます。

    "publisher": "Microsoft-DSVM",
    "offer": "Ubuntu-HPC",
    
  • 基本の Ubuntu Marketplace イメージから Ubuntu-HPC VM イメージを作成するために使用されるスクリプトは、azhpc-images リポジトリにあります。

AlmaLinux-HPC VM イメージ

SR-IOV 対応の RDMA 機能付き VM の場合、AlmaLinux-HPC VM イメージのバージョン 8.5、8.6、8.7 が適しています。 これらの VM イメージは、RDMA 用の Mellanox OFED ドライバー、NVIDIA GPU ドライバー、GPU コンピューティング ソフトウェア スタック (CUDA、NCCL)、よく使われている MPI ライブラリおよび科学コンピューティング パッケージを使用して事前構成されています。 VM サイズ サポート マトリックスを参照してください。

  • VM イメージの使用可能なバージョンまたは最新バージョンは、CLI または Marketplace を使用して、次の情報と共に一覧表示できます。

    "publisher": "AlmaLinux",
    "offer": "AlmaLinux-HPC",
    
  • ベースの AlmaLinux Marketplace イメージから AlmaLinux-HPC VM イメージを作成するために使用されるスクリプトは、azhpc-images リポジトリにあります。

さらに、Ubuntu-HPC VM イメージAlmaLinux-HPC VM イメージに含まれるものと、イメージのデプロイ方法について詳しくは、Azure HPC VM イメージを参照してください。

RHEL VM イメージ

Marketplace にあるベース RHEL ベースの非 HPC 基本 VM イメージは、SR-IOV 対応の RDMA 対応 VM で使用するように構成できます。 VM での InfiniBand の有効化MPI の設定の詳細を参照してください。

Ubuntu VM イメージ

Marketplace にあるベースの Ubuntu Server 20.04 LTS と 22.04 LTS の VM イメージは、SR-IOV と非 SR-IOV の両方の RDMA 対応 VM でサポートされています。 VM での InfiniBand の有効化MPI の設定の詳細を参照してください。

Note

Mellanox OFED 5.1 以降は、FDR InfiniBand (NCv3 など) を使用する SR-IOV 対応 N シリーズ VM サイズ上の ConnectX3-Pro InfiniBand カードをサポートしていません。 ConnectX3-Pro カードが搭載された N シリーズ VM 上では、LTS Mellanox OFED バージョン 4.9-0.1.7.0 以前を使用してください。 詳細については、Linux InfiniBand ドライバーに関するページをご覧ください。

SUSE Linux Enterprise Server VM イメージ

Marketplace の SLES 12 SP3 for HPC、SLES 12 SP3 for HPC (Premium)、SLES 12 SP1 for HPC、SLES 12 SP1 for HPC (Premium)、SLES 12 SP4、SLES 15 VM の各イメージがサポートされています。 これらの VM イメージには、RDMA (SR-IOV 以外の VM サイズの場合) および Intel MPI バージョン 5.1 用の Network Direct ドライバーが事前に読み込まれています。 詳細については、VM での MPI の設定に関するページを参照してください。

VM を最適化する

VM のパフォーマンスを向上させるためのオプションの最適化設定を次に示します。

LIS を更新する

機能またはパフォーマンスに必要な場合、サポートされている OS ディストリビューションに Linux Integration Services (LIS) ドライバーをインストールするか更新することができます。特に、カスタム イメージまたは以前の OS バージョン (RHEL 6.x または以前のバージョンの 7.x など) を使用してデプロイします。

wget https://aka.ms/lis
tar xzf lis
pushd LISISO
sudo ./upgrade.sh

メモリを再利用する

リモート メモリ アクセスを回避するためにメモリを自動的に再利用することでパフォーマンスを向上させます。

sudo echo 1 >/proc/sys/vm/zone_reclaim_mode

VM の再起動後もメモリの再利用モードを永続的に保ちます。

sudo echo "vm.zone_reclaim_mode = 1" >> /etc/sysctl.conf sysctl -p

ファイアウォールと SELinux を無効にする

sudo systemctl stop iptables.service
sudo systemctl disable iptables.service
sudo systemctl mask firewalld
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
sudo iptables -nL
sudo sed -i -e's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

cpupower を無効にする

sudo service cpupower status

有効になっている場合は、無効にします。

sudo service cpupower stop
sudo systemctl disable cpupower

WALinuxAgent を構成する

sudo sed -i -e 's/# OS.EnableRDMA=y/OS.EnableRDMA=y/g' /etc/waagent.conf

必要に応じて、HPC ワークロードに VM リソースを最大限使用できるように、ジョブを実行する前に WALinuxAgent を無効にしてから、ジョブ後にそれを有効にすることができます。

次の手順