AWS Deep Learning AMIを用いたCUDA環境の構築・確認手順

導入

今回はAWS Deep Learning AMIを用いたCUDAの利用手順についてご説明します。
なお、通常のUbuntu環境へCUDA環境を構築する手順についてはこちらの記事で紹介しています。

AWS Deep Learning AMIとは

AWS Deep Learning AMIとは、CUDAやcuDNN等の環境が既に整備されたAWSのマシンイメージで、これを利用してインスタンスを構築することにより煩雑な環境構築の手順を抜きにしてCUDA等の利用を開始することが可能となります。
[参考] AWS Deep Learning AMI とは (AWS公式サイト)

今回構築する環境

今回は以下のような環境を構築します。
インスタンスタイプ:p2.xlarge
OS:Ubuntu 18.04
DL AMI:Deep Learning Base AMI (Ubuntu 18.04) Version 25.0
CUDA:10.2

OSについてはAMIに依存しますので、現時点(2020年7月)で最新のUbuntu版のDL AMIであるUbuntu 18.04LTSのものを利用します。
CUDAについてはDL AMIのデフォルトでは10.0が呼び出されるようになっていますが、今回利用するDL AMIにて利用できる最新の10.2を利用するよう切り替えを行います。

利用するインスタンスタイプについて

CUDAプログラミングにはGPU環境が必要です。
AWSではGPUを備えたインスタンスとしてp系およびg系の二種類が用意されており、p系は汎用インスタンス、g系はグラフィック集約型アプリケーションや機械学習推論向けのインスタンスと位置づけられています。
今回はそれらの中で最小の環境であるp2.xlargeインスタンスを利用して環境の構築を行います。
[参考] 推奨 GPU インスタンス - Deep Learning AMI (AWS公式サイト)

利用するDL AMIについて

DL AMIには、「Deep Learning AMI」と「Deep Learning Base AMI」が様々なOSに対して用意されています。大まかな違いとしては以下のようになります。
・Deep Learning AMI:CUDA及びcuDNN環境のほか、TensorFlowを始めとした様々なフレームワークが導入されているもの
・Deep Learning Base AMI:CUDA及びcuDNN環境のみが導入されているもの
今回はCUDA環境の構築のみが目的であるため、Deep Learning Base AMIを利用します。
[参考] DLAMI の機能 - Deep Learning AMI (AWS公式サイト)

DL AMIを利用したインスタンスの構築手順

では、実際にAMIを利用してインスタンスを構築していきます。

1. AWSマネジメントコンソールにてEC2ダッシュボードを開きます。
2. 「インスタンス」から「インスタンスの作成」をクリックします。
3. 「ステップ 1:Amazonマシンイメージ(AMI)」のクイックスタートにて、「deep learning base」で検索を行います。(下図参照)

画像1

4. Deep Learning Base AMIの候補が複数表示されるので、その中から利用するAMIを選択します。今回は図の一番上に表示されている「Deep Learning Base AMI (Ubuntu 18.04) Version 25.0」を選択します。
5. インスタンスタイプの選択にて、GPUインスタンスを選択します。今回はp2.xlargeを選択します。
6. 以降は通常の手順と同様にインスタンスの設定を行い、作成を完了します。

GPUデバイスが認識されていることの確認

作成したインスタンスにログインし、nvidia-smiコマンドを実行してGPUデバイスが認識されていることの確認を行います。
なお、以下の実行結果は一例です。

CUDAのバージョン確認と10.2への切り替え 

デフォルトで呼び出されるCUDAのバージョンを確認します。以下の例ではCUDA 10.0が呼び出されていることが確認できます。
なお、デフォルトのubuntuユーザではなく新たに追加したユーザを利用する場合については、nvccコマンドを含むCUDA Toolkitにパスが通っていないためコマンドの実行時に失敗します。CUDA Toolkitへのパスの通し方については後述します。

今回はCUDA 10.2を利用する環境を構築するため、下記コマンドを実行して呼び出されるCUDAのバージョンを変更します。

実行後、再度nvccコマンドを実行しバージョンを確認します。CUDA 10.2が呼び出されていることがわかります。

サンプルプログラムの実行

テストディレクトリを作成し、そこへサンプルプログラムとヘッダファイルを複製した上でコンパイルと実行を行います。

問題なく実行されれば実行結果として Relust = PASS が得られます。

[補足] 追加したユーザでCUDAを利用する手順

ユーザを新規に追加した場合はCUDA Toolkitへのパスが通っていません。
追加したユーザの ~/.bashrc に以下を追記しログインし直すことで、上記サンプルコード実行が行えるようになります。

終わりに

以上でAWS Deep Learning AMIを利用したCUDA環境の構築と実行確認ができました。

オルトブリッジ・テクノロジー株式会社では、CUDAやTensorRT等のGPUプログラミングに関する情報を発信しています。
企業向けのCUDAプログラミングの教育事業なども行っておりますので興味のある方は note(at)altbridge-tech.jp までご連絡ください。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?