15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Microsoft AzureAdvent Calendar 2016

Day 8

ついに GA した N シリーズとその GPU の話

Last updated at Posted at 2016-12-08

このエントリは「Microsoft Azure Advent Calendar 2016」の8日目です。

こんにちは、エヌビディアの佐々木です。

ついに、とうとう、N シリーズが GA しましたね。いやー、待った待った。
Azure N シリーズの一般提供を 12 月 1 日から開始

NVIDIA のブログでも紹介していますよ!
The GPU-Cloud Era – Powered by Microsoft Azure N-Series

というわけで、せっかくGAしたNシリーズをちょっと試してみようと思ったのですが、すでに以前こんなのを書いていました。
Azure NシリーズでNVIDIA DIGITSをサクッと動かす

というわけで今回はちょっと趣向を変えて、N シリーズに搭載されている GPU を簡単に説明してみたいと思います。

Azure N シリーズ と NVIDIA GPU

皆さんご存じの通り、Azure の N シリーズには 2 種類あります。
Azure_N.png

「今まであまり GPU に縁がなかったけれど、N シリーズを契機にちょっと興味を持った」という方は、ひょっとするとこの表を見て 「ああ、"M"xx ってのは可視化用 GPU で、"K"xx ってのは演算用 GPU なのね」 と思ったかもしれません。

違うんです!ここでちょっと、NVIDIA の GPU 製品ラインナップについて整理したいと思います。

NVIDIA GPU 製品ライン

(組み込みや自動車用はいったん置いておいて) PC やワークステーション、サーバーに搭載される NVIDIA GPU は次の 3 種類に分かれます。

  • GeForce
    • ご家庭用の GPU です。PC ゲームを楽しむ方にはおなじみですね。
  • Quadro
    • 「プロフェッショナル ビジュアライゼーション」向けです。CAD ワークステーションや、最近では VR 用にもよく使われます。
  • Tesla
    • サーバー及びデータセンター向けで、厳しい検査に合格したものだけが出荷されます。
    • 長時間の安定運用を実現するために、ECCメモリや、ダイナミックページリタイアメント(不良メモリを自動的に除外)など、Tesla 独自の機能が盛り込まれています。
    • エンタープライズレベルのサポート体制が整っています。

というわけで、Azure に採用されているのはデータセンター向けの Tesla です。(Titan X を含む GeForce 系 はデータセンターでの利用に向きませんし保証もありません)

次に「K80」とか「M60」という名前の意味を解説しましょう。

アーキテクチャの世代

K80 の "K" や M60 の "M" は、GPU アーキテクチャの世代を表しています。K は Kepler で M は Maxwell です。NVIDIA の GPU は、各世代のアーキテクチャに偉大な科学者の名前を戴いているのです。

  • Tesla - 2007 年
  • Fermi - 2009 年
  • Kepler - 2012 年 ← NC シリーズの Tesla K80
  • Maxwell - 2014 年 ← NV シリーズの Tesla M60
  • Pascal - 2016 年 ← これが最新。製品としては Tesla P100/P40, Quadro P6000/P5000, GeForce 1080/1070/1060 等がこの世代
  • Volta - ご期待ください!

ちょっとややこしいのですが、"Tesla" はアーキテクチャの名称でもあり、同時にデータセンター向け GPU の製品ラインの名前でもあるわけです。例えば "Tesla M60" というのは、「Maxwell 世代の Tesla」で、Tesla K80 は「Kepler 世代の Tesla」です。

なぜ NC シリーズは K80 なのか?

ここで一つ疑問がわきませんか? 最近本格的な出荷が始まったばかりの Pascal 世代 GPU が Azure の N シリーズに間に合わなかったのはわかるにせよ、Pascal から見て 2 つ前の Kepler 世代である K80 (2014 年発売) をなぜ、NC シリーズは搭載しているのでしょうか?イマサラ感半端ない!と思われても無理はありません。

しかし、これにはちゃんと理由があります。ポイントは「倍精度浮動小数点演算性能」です。
K80 はガチ HPC 向けの GPU なので、単精度だけでなく倍精度の演算も得意で、その理論ピーク性能は以下の通り。

  • 単精度で 8.73 テラフロップス
  • 倍精度で 2.91 テラフロップス

Kepler では倍精度性能が単精度の 1/3 出るのです。

しかし、その次の Maxwell 世代 GPU は、ディープラーニング等での利用にフォーカスし、単精度演算を重視した構成になっています。そのため、倍精度の性能は単精度の 1/32 しか出ません。これでは倍精度演算が必須の HPC 用途には適さないため、NC シリーズは Maxwell ではなく Kepler 世代の K80 を搭載しているのです。つまり、K80 は Maxwell より一世代前であるにもかかわらず、 HPC 分野では「最新」の GPU だったわけです。

そう、今年 P100 が出るまではね。

Pascal 世代の最強 GPU - Tesla P100

(まだ Azure には導入されていないものの) 今年発表された Tesla P100 は、単精度も倍精度もイケて、さらに半精度(FP16)演算にも最適化されている万能の GPU です。その理論ピーク性能は次の通り。(単位: テラフロップス)

  • 倍精度 (FP64): 5.3
  • 単精度 (FP32): 10.6
  • 半精度 (FP16): 21.2

Pascal では、倍精度は単精度のちょうど半分出るようになりました。そして、K80 との比較ではもう一つポイントがあります。

K80 は、実は二つの "GK210" という GPU を束ねた構成になっており、メモリも二つの GK210 がそれぞれ持っています。OS 上では二つの独立した GPU として認識され、つまり K80 の性能を完全に引き出すにはアプリケーションがマルチ GPU に対応している必要があります。

一方、P100 は "GP100" という GPU が一つだけです。仮にマルチ GPU に対応していないアプリケーションでも、単精度で 10.6TFLOPS という性能を生かすことができます。

この他、P100 は、HBM2 という新しいタイプのメモリで帯域が大幅に増えていたり(K80: 480GB/s, P100: 720GB/s)、NVLink という新しいインターコネクトで、 GPU を PCIe より高速に接続したりできます。

というわけで、「N シリーズ v2」は Tesla P100 を搭載してくれると良いなー!と期待しております。楽しみです!

関連情報

さて、次回のアドベントカレンダーは…

Microsoft Azure Advent Calendar 2016
明日は @reiji1020 さんです。よろしくお願いします!

15
12
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?