メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux 高速コンピューティングインスタンス

高度な処理機能が必要な場合は、高速コンピューティングインスタンスを使用すると、Graphics Processing Units (GPUs) や Field Programmable Gate Arrays (FPGAs) などのハードウェアベースのコンピューティングアクセラレーターにアクセスできます。高速コンピューティングインスタンスでは、大量の演算を行うワークロードでさらに多くの並列処理が可能となり、より高いスループットが得られます。

GPU ベースのインスタンスでは、数千のコンピューティングコアを持つ NVIDIA GPU にアクセスできます。GPU ベースの高速コンピューティングインスタンスを使用すると、CUDA または Open Computing Language (OpenCL) パラレルコンピューティングフレームワークを活用することにより、サイエンス、エンジニアリング、およびレンダリングアプリケーションを高速化できます。また、ゲームストリーミング、3D アプリケーションストリーミング、およびその他のグラフィックスワークロードを含む、グラフィックアプリケーションにも使用できます。

FPGA ベースのインスタンスでは、数百万の並列システム論理セルを持つ大きな FPGA にアクセスできます。FPGA ベースの高速コンピューティングインスタンスを使用すると、カスタムハードウェアアクセラレーションを活用することにより、ゲノム解析、財務分析、リアルタイム動画処理、ビッグデータ解析、およびセキュリティワークロードなどのワークロードを高速化できます。Verilog や VHDL などのハードウェア記述言語を使用するか、または OpenCL パラレルコンピューティングフレームワークなどの高レベル言語を使用して、これらの加速度を開発できます。ハードウェアアクセラレーションコードを自身で作成することも、AWS Marketplace からハードウェアアクセラレーションを購入することもできます。

重要

FPGA ベースのインスタンスは、Microsoft Windows をサポートしていません。

高速コンピューティングインスタンスをプレイスメントグループにクラスター化できます。プレイスメントグループは、1 つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯域幅の接続を実現します。詳細については、「プレイスメントグループ」を参照してください。

Windows 高速コンピューティングインスタンスについては、「Windows 高速コンピューティングインスタンス」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。

高速コンピューティングインスタンスファミリー

高速コンピューティングインスタンスファミリーは、ハードウェアアクセラレーターやコプロセッサーを使用して、浮動小数点数計算、グラフィック処理、データパターンマッチングのような機能を CPU で実行されるソフトウェア以上に効率的に実行します。次の高速コンピューティングインスタンスファミリーを Amazon EC2 で起動できます。

F1 インスタンス

F1 インスタンスは Xilinx UltraScale+ VU9P FPGA を使用し、汎用 CPU に適さないデータフローや高度な並列処理のような計算集約型のアルゴリズムを高速化するように設計されています。F1 インスタンスの各 FPGA には、約 250 万の論理要素と約 6,800 のデジタル信号処理 (DSP) エンジン、ローカルの 64 GiB DDR ECC 保護メモリが含まれ、専用の PCIe Gen3 x16 接続によってインスタンスに接続されています。F1 インスタンスは Elastic Network Adapter (ENA) を使用した拡張ネットワーキングをサポートし、デフォルトで EBS に最適化され、ローカルの NVMe SSD ボリュームを提供します。

開発者は FPGA Developer AMI および AWS Hardware Developer Kit を使用して、F1 インスタンスで使用するカスタムハードウェアアクセラレーションを作成できます。FPGA Developer AMI には、クラウド上の FPGA 完全サイクル開発用の開発ツールが含まれます。これらのツールを使用して、開発者は F1 インスタンスの FPGA にロードできる Amazon FPGA Image (AFI) を作成し、共有できます。

詳細については、「Amazon EC2 F1 インスタンス」を参照してください。

P2 インスタンス

P2 インスタンスは NVIDIA Tesla K80 GPU を使用し、CUDA または OpenCL プログラミングモデルを使用する汎用 GPU コンピューティング用に設計されています。P2 インスタンスは高帯域幅ネットワーキング、強力な単精度および倍精度浮動小数点機能、および GPU ごとに 12 GiB メモリを提供し、ディープラーニング、グラフデータベース、高パフォーマンスデータベース、数値流体力学、金融工学、耐震解析、分子モデリング、ゲノム解析、レンダリング、その他サーバー側 GPU コンピューティングワークロードに最適です。

G2 インスタンス

G2 インスタンスは NVIDIA GRID K520 GPU を使用し、DirectX または OpenGL を使用してグラフィックアプリケーション向けに費用対効果の高パフォーマンスのプラットフォームを提供します。NVIDIA GRID GPU は、NVIDIA の高速キャプチャおよびエンコード API オペレーションもサポートします。アプリケーションのサンプルには、動画作成サービス、3D 仮想化、グラフィックを多用したストリーミングアプリケーションなどのサーバー側のグラフィックワークロードが含まれています。

CG1 インスタンス

CG1 インスタンスは NVIDIA Tesla M2050 GPU を使用し、CUDA または OpenCL プログラミングモデルを使用する汎用 GPU コンピューティング用に設計されています。CG1 インスタンスは、高帯域幅ネットワーキング、倍精度浮動小数点機能、および ECC (error-correcting code) メモリを提供し、高パフォーマンスコンピューティング (HPC) アプリケーションに最適です。

ハードウェア仕様

各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」を参照してください。

高速コンピューティングインスタンスの制限

高速コンピューティングインスタンスには以下の制限があります。

  • インスタンスは、HVM AMI を使用して起動する必要があります。

  • NVIDIA ドライバーがインストールされていない限り、GPU ベースのインスタンスは GPU にアクセスできません。

  • リージョンごとに 100 AFI という制限があります。

  • 実行できるインスタンス数は制限されています。詳細については、Amazon EC2 のよくある質問の「Amazon EC2 で実行できるインスタンス数の上限は?」を参照してください。これらの制限の拡大を申請するには、Request to Increase Amazon EC2 Instance Limit というフォームを使用してください。

GPU ベースの高速コンピューティングインスタンス用の AMI

すぐに作業を開始できるように、NVIDIA から GPU ベースの高速コンピューティングインスタンス用の AMI が提供されています。これらのリファレンス AMI には、NVIDIA GPU の完全な機能とパフォーマンスを有効にする NVIDIA ドライバーが含まれています。

NVIDIA ドライバーがある AMI の一覧については、AWS Marketplace (NVIDIA GRID) を参照してください。

HVM AMI を使用して高速コンピューティングインスタンスを起動できます。

Amazon Linux での NVIDIA ドライバーのインストール

GPU ベースの高速コンピューティングインスタンスには適切な NVIDIA ドライバーが必要です。インストールする NVIDIA ドライバーは、インスタンスで実行するよう意図したカーネルに対してコンパイルされる必要があります。

Amazon は、AWS Marketplace での公式の各カーネル更新のために、NVIDIA カーネルドライバーの互換性のある更新済みビルドを AMI に提供しています。Amazon が提供するバージョン以外の NVIDIA ドライバーバージョンを使用する場合、あるいは公式の Amazon ビルド以外のカーネルを使用する場合は、インストールするドライバーのバージョンとの競合を回避するために、Amazon が提供する NVIDIA パッケージをシステムからアンインストールする必要があります。

このコマンドを使用して、Amazon が提供する NVIDIA パッケージをアンインストールします。

Copy
[ec2-user ~]$ sudo yum erase nvidia cuda

Amazon が提供する CUDA ツールキットパッケージは、NVIDIA ドライブに依存します。NVIDIA パッケージをアンインストールすると、CUDA ツールキットが消去されます。NVIDIA ドライバーをインストールした後に、CUDA ツールキットを再インストールする必要があります。

NVIDIA ドライバーは、 http://www.nvidia.com/Download/Find.aspx からダウンロードできます。インスタンスの適切なドライブを選択します。

P2 インスタンス

製品タイプ Tesla
製品シリーズ K シリーズ
製品 K-80
オペレーティングシステム Linux 64 ビット
推奨/ベータ版 推奨/認定

G2 インスタンス

製品タイプ GRID
製品シリーズ GRID シリーズ
製品 GRID K520
オペレーティングシステム Linux 64 ビット
推奨/ベータ版 推奨/認定

CG1 インスタンス

製品タイプ Tesla
製品シリーズ M-Class
製品 M2050
オペレーティングシステム Linux 64 ビット
推奨/ベータ版 推奨/認定

ドライバーのインストールと設定の詳細については、NVIDIA ウェブサイトのドライバーのダウンロードページで [ADDITIONAL INFORMATION] タブを選択し、[README] リンクを選択します。

NVIDIA ドライバーの手動インストール

Amazon Linux AMI 用のドライバーをインストールするには

  1. yum update コマンドを実行して、インスタンスのパッケージの最新バージョンを取得します。

    Copy
    [ec2-user ~]$ sudo yum update -y
  2. インスタンスを再起動して、最新のカーネルバージョンを読み込みます。

    Copy
    [ec2-user ~]$ sudo reboot
  3. 再起動後にインスタンスに再接続します。

  4. 現在実行しているカーネルのバージョン用の gcc コンパイラおよび kernel-devel パッケージをインストールします。

    Copy
    [ec2-user ~]$ sudo yum install -y gcc kernel-devel-`uname -r`
  5. 前の手順で特定したドライバーパッケージをダウンロードします。たとえば、次のコマンドでは、P2 インスタンスの NVIDIA ドライバーの 352.99 バージョンがダウンロードされます。

    Copy
    [ec2-user ~]$ wget http://us.download.nvidia.com/XFree86/Linux-x86_64/352.99/NVIDIA-Linux-x86_64-352.99.run
  6. NVIDIA ドライバーをインストールするための自己インストールスクリプトを実行します。(例:

    Copy
    [ec2-user ~]$ sudo /bin/bash ./NVIDIA-Linux-x86_64-352.99.run
  7. インスタンスを再起動します。

    Copy
    [ec2-user ~]$ sudo reboot
  8. ドライバーが機能していることを確認します。次のコマンドのレスポンスに、インストールされた NVIDIA ドライバーバージョンおよび GPU に関する詳細が表示されます。

    注記

    このコマンドの実行には数分かかることがあります。

    Copy
    [ec2-user ~]$ nvidia-smi -q | head ==============NVSMI LOG============== Timestamp : Thu Aug 25 04:59:03 2016 Driver Version : 352.99 Attached GPUs : 8 GPU 0000:00:04.0 Product Name : Tesla K80 Product Brand : Tesla
  9. (P2 インスタンスのみ) P2 インスタンスを使用している場合は、次のセクションの最適化手順を実行して GPU のベストパフォーマンスを達成します。

GPU 設定の最適化 (P2 インスタンスのみ)

P2 インスタンスで最大のパフォーマンスを実現するための GPU 設定の最適化には、さまざまなものがあります。デフォルトでは、NVIDIA ドライバーは自動ブースト機能を使用しますが、これは GPU クロック速度に左右されます。自動ブースト機能を無効にし、GPU クロック速度を最大周波数に設定することで、安定して P2 インスタンスで最大パフォーマンスを実現できます。次の手順では、GPU 設定を永続的に設定し、自動ブースト機能を無効化して、GPU クロック速度を最大周波数に設定します。

P2 GPU 設定を最適化するには

  1. GPU 設定を永続的になるように設定します。

    注記

    このコマンドの実行には数分かかることがあります。

    Copy
    [ec2-user ~]$ sudo nvidia-smi -pm 1 Enabled persistence mode for GPU 0000:00:0F.0. Enabled persistence mode for GPU 0000:00:10.0. Enabled persistence mode for GPU 0000:00:11.0. Enabled persistence mode for GPU 0000:00:12.0. Enabled persistence mode for GPU 0000:00:13.0. Enabled persistence mode for GPU 0000:00:14.0. Enabled persistence mode for GPU 0000:00:15.0. Enabled persistence mode for GPU 0000:00:16.0. Enabled persistence mode for GPU 0000:00:17.0. Enabled persistence mode for GPU 0000:00:18.0. Enabled persistence mode for GPU 0000:00:19.0. Enabled persistence mode for GPU 0000:00:1A.0. Enabled persistence mode for GPU 0000:00:1B.0. Enabled persistence mode for GPU 0000:00:1C.0. Enabled persistence mode for GPU 0000:00:1D.0. Enabled persistence mode for GPU 0000:00:1E.0. All done.
  2. インスタンスのすべての GPU で自動ブースト機能を無効にします。

    Copy
    [ec2-user ~]$ sudo nvidia-smi --auto-boost-default=0 All done.
  3. すべての GPU クロック速度を最大周波数に設定します。

    Copy
    [ec2-user ~]$ sudo nvidia-smi -ac 2505,875 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:0F.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:10.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:11.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:12.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:13.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:14.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:15.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:16.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:17.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:18.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:19.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:1A.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:1B.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:1C.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:1D.0 Applications clocks set to "(MEM 2505, SM 875)" for GPU 0000:00:1E.0 All done.

FPGA 開発を開始する

FPGA Developer AMI は、AFI を開発、テスト、および構築するためのツールを提供します。FPGA Developer AMI は、32 GB 以上のシステムメモリを備える任意の EC2 インスタンス (例: C4 インスタンス) で使用できます。

詳細については、「AWS FPGA Hardware Development Kit」を参照してください。