Amazon Web Services ブログ

Category: Apache MXNet on AWS

Apache MXNet リリースに追加された新しい NVIDIA Volta GPU と Sparse Tensor のサポート

Apache MXNet バージョン 0.12 が利用可能になりました。MXNet コミュニティに参加している貢献者の方々との協力により、強化点を追加する新機能の提供を実現することができました。今回のリリースでは、MXNet に 2 つの重要な機能が追加されています。 NVIDIA Volta GPU のサポートにより、ユーザーはトレーニングやニューラルネットワークモデルの推論に掛かる時間を大幅に削減することができます。 Sparse Tensor のサポートにより、ユーザーは保存とコンピューティングを効率的にした方法で Sparse マトリックスを使用しモデルをトレーニングすることができます。 NVIDIA Volta GPU サポートのアーキテクチャ MXNet v0.12 リリースには NVIDIA Volta V100 GPU サポートが追加されています。これにより、ユーザーは畳み込みニューラルネットワークのトレーニングを Pascal GPU に比べて 3.5 倍も速くすることができます。ニューラルネットワークのトレーニングには、数兆にもなる浮動小数点 (FP) 倍数や追加が関係しています。通常、こうした計算には高精度にするため単精度浮動小数点 (FP32) が使われます。けれども、最近の研究結果によると、ユーザーがトレーニングで浮動小数点を半精度 (FP16) にしたデータタイプを使用しても、FP32 データタイプを使用したトレーニングと同じ精度を実現できることが分かっています。 Volta GPU アーキテクチャが Tensor Core を導入しました。各 Tensor Core は 1 時間ごとに 64 fuse-multiply-add […]

Read More

Amazon CloudWatch で GPU 使用率をモニタリング

GPU には何千ものコアがあるため、ディープラーニングには大量のマトリックス乗算と GPU (グラフィックス処理ユニット) により並列化できるベクトルオペレーションが必要です。アマゾン ウェブ サービスでは P2 または P3 インスタンスにサインアップすることが可能です。このようなインスタンスは、大規模なディープニューラルネットワークのデプロイの加速化を強調する MXNet のようなディープラーニングフレームワークの実行に優れています。 データサイエンティストや開発者はネットワークを微調整する場合、適切なバッチサイズを使用できるように GPU 使用率を最適化したいと考えています。今回のブログでは、Amazon CloudWatch メトリクスを使用して GPU とメモリ使用量をモニタリングする方法をご説明します。Amazon マシンイメージ (AMI) では、インスタンスが Amazon Deep Learning AMI を使用することを勧めています。 GPU を有効にしたインスタンスのモニタリングや管理をサポートするために使用されている現在の一般的な方法は、コマンドラインユーティリティの NVIDIA システム管理インターフェイスを利用することです (nvidia-smi)。nvidia-smi の使用により、ユーザーは GPU 使用率、メモリ消費量、ファンの使用量、電力消費量、そして NVIDIA GPU デバイスの温度などの情報をクエリすることができます。 nvidia-smi は NVIDIA 管理ライブラリをベースにしているので (NVML)、C ベースの API ライブラリを使用し、カスタムメトリクスとして Amazon CloudWatch に送信するのと同じデータポイントをキャプチャできます。このライブラリに関する詳細については「リファレンスマニュアル (reference manual)」をご覧ください。このブログではライブラリに Python ラッパーの pyvnml を使用します。 […]

Read More

柔軟性の高いディープラーニングのために簡単に使用できるプログラミングインターフェイス Gluon のご紹介

本日は、AWS と Microsoft が、どのディープラーニングフレームワークを選択するかにかかわらず、すべての開発者向けに機械学習テクノロジーの速度、柔軟性、アクセス性を向上させることを主眼とした新しい仕様を発表しました。この連携による最初の結果が、新しい Gluon インターフェイスです。これはあらゆるスキルレベルの開発者がディープラーニングモデルのプロトタイプ作成、構築、トレーニングを行えるようにする、Apache MXNet のオープンソースライブラリです。このインターフェイスにより、トレーニング速度を犠牲にすることなく、ディープラーニングモデルの作成プロセスを大幅に簡略化できます。 Gluon の 4 つの重要な利点と、それを示すサンプルコードを示します。 (1) シンプルで理解しやすいコード Gluon では、シンプル、明瞭、簡潔なコードを使ってニュートラルネットワークを定義できます。事前定義されたレイヤー、オプティマイザ、イニシャライザを含む、プラグアンドプレイのニュートラルネットワーク構築要素のフルセットを入手できます。これにより、基盤となる複雑な実装詳細の多くが排除されます。次の例では、わずか数行のコードでシンプルなニュートラルネットワークを定義する方法を示しています。 # 最初のステップはモデルの初期化です net = gluon.nn.Sequential() # Then, define your model architecture with net.name_scope(): net.add(gluon.nn.Dense(128, activation=”relu”)) # 最初のレイヤー – 128 ノード net.add(gluon.nn.Dense(64, activation=”relu”)) # 2 番目のレイヤー – 64 ノード net.add(gluon.nn.Dense(num_outputs)) # Output layer 次の図に、ニュートラルネットワークの構造を示します。 詳細については、こちらのウォークスルーに移動して、Gluon ニュートラルネットワーク構成要素を使って multilayer perceptron (MLP) と呼ばれるシンプルなニュートラルネットワークを作成する方法を参照してください。より高度なユースケース向けに、ニュートラルネットワークのパーツをゼロから作成することも簡単です。Gluon […]

Read More