クラウドでASICを利用する時代の必読論文が出ていたので紹介する(Bitcoin、Litecoin、H.265動画変換、ディープラーニング用のASIC試作/検討からのあふれる知見:ISCA2016)

2016年8月24日水曜日

どのような論文か

クラウドを構築するデータセンターでのASIC(特定用途向け集積回路)利用が伸びるというのを大前提として(実際、お金に直結するBitcoinではASICマイニングが主流だから当然だよね!と)、業界の流れ分析に始まり各種ワークロードの特性分析から総所有コスト最適化、排熱シミュレーションまでを幅広く扱った論文です。超オススメです。
次のURLから入手できます。
最初にこの論文を読んだ時は、12ページ(参照込みで13ページ)とコンパクトながら怒涛の情報量であったため、大変衝撃を受けました。「特に読むべきポイントは?」と聞かれたら「全部!」と答えたいところですが、せっかくなので本エントリではいくつかポイントを絞って紹介してみます。
ちなみに発表資料内で「今回の研究のために8種類のBitCoinマイナー*1を購入してリバース・エンジニアリングしたよ。サンディエゴへ見においでよ」とスナックに書いていたりします(図1)。本気度がやばいです。
図1 ASIC Clouds Exist Today(ISCA2016での発表資料PDFのp.16より)
[*1] マイニング用のチップ/ボード/クラスタを指している

前提

発表資料のp.4で、今回の話の前提を紹介しています。
コンピューティングがモバイルのSoCとクラウド(データセンター)へ二極化し、デナード則の終焉とダークシリコン問題を意識した設計が必要な時代

クラウドで使われつつあるASIC

データセンターでFPGAを使っている例としてはMicrosoftのProject Catapultや各種HFT(High Frequency Trading)がよく知られています。
いっぽう、ASICの利用(ASIC Cloud)例として論文内ではBitcoinのマイニング専用マシンを主要なものとして紹介しています。プロセス世代としては、当初130/110nmという旧世代プロセスで始まったものの、65nm→55nm→28nm→Intel 22nm/TSMC 16nmプロセスのものへと爆発的に進化していったと紹介されています。
本blogエントリを書いている2016年8月下旬の時点では、クラウドでのASIC利用といえばAlphaGoの李・セドル氏対局でも使われたGoogleのTPU(Tensor Processing Unit)*2が有名です。おそらくこの論文が投稿されたタイミングではTPUが発表されていなかったため、論文内ではカバーされていません。

TCO(総所有コスト)が最低になるポイントを探る

ASIC化にあたってはどれだけの電力と資金を投下してどれだけのパフォーマンスを得るか、という選択をおこないます。ここでは設計上のいくつかのパラメータ設定が重要です。
チップのコア電圧を下げると消費電力を劇的に下げられる反面、稼働可能な最大クロック数も低下します。このため、1チップあたりの処理性能が落ちます。
ある程度コア電圧を下げて1チップあたりの消費電力を削り、その一方でサーバスペースへ大量のチップを実装して適切な通信系を整備することでボード全体の性能を高めることになります。
しかしチップ数を増やすことでインターコネクトが複雑化したり、実装面積が不足してデータセンター内の領域を圧迫してしまっては元も子もありません。
この論文では、なんとこの面の分析をきっちりおこなっています。まず、パフォーマンスあたりのコストと処理あたりのエネルギーという2軸のパレート最適を分析しています(例:図2)。そして、これらの状態群に対して、各パラメータへの適切な重み付けをおこなうことでTCO(総所有コスト)の最適化検討までおこないます。
図2 Bitcoinマイニング用ASICのパレートカーブ(投稿論文PDFのp.19より)
外部メモリへのアクセス性能が重要な場合は、1つの処理チップあたりいくつのDRAMチップを接続するか、などでも性能が変わります。このため動画変換(H.265)のケースでは重要要素として検討されています。
データセンターでのASIC利用の前提は「チップの設計や製造にかかるコストよりも消費電力とファシリティ維持コストのほうが支配的になる」ことですが、その中でも具体的なコスト最適化プランの枠組みが提示されていることの意味は大きいと感じました。

ボードへのチップ配置方法に関する検討

チップの安定稼働にとって熱は敵なので、うまい排熱方法を確立しておく必要があります。
データセンター内では通常、サーバラック手前から冷たい空気を吸気し、ラック内のサーバモジュールを冷やし、背面へ排気するという構造をとります*3。このため、背面に近いチップほど前面に近いチップからの排熱を受けた熱い空気を使って排熱することになり、効率が悪くなります。
この論文ではサーバモジュール(ボード)上の各要素が発する熱を勘案して排熱効率を数値流体力学によってシミュレーションしています。
図3 ASIC Server Thermal Optimization(ISCA2016での発表資料PDFのp.33より)
そして、チップをどのように配置すると排熱効率を高められるかという検討もおこなっています。
図4 ASIC Placement: Duct Wins(ISCA2016での発表資料PDFのp.34より)
普通に並べたもの<チップを入れ違いに並べたもの<ダクトを設置したもの、という結果が紹介されています。
[*3] 液浸によって冷却するシステムも見かけますが、コストやメンテナンス性の面から少なくとも商用データセンターにおいて現時点の主流ではありません

各ユースケースにあわせた性能ファクタ検討

ISCA 2016での発表資料のp.40に、アクセラレータの特性を決める要素が各ユースケースの評価と共に紹介されています。
図5 Accelerator Properties(ISCA2016での発表資料PDFのp.40より)
  • Bitcoinは特定プリフィックスを持つハッシュのゴリ押し検索という計算特性から、ロジックをいかに詰め込んでひたすらに回せるかが重要(On-chip Logic Intensityに偏ったケース)
  • LitecoinはScryptという、計算に一定のメモリ領域が必要でランダムアクセスの必要もあるという計算特性から、チップ上に搭載するメモリとの兼ね合いが重要(On-chip RAM Intensityに偏ったケース)
  • 動画変換(H.265)は対象データ量が多くDRAMアクセスのスループットが必要なことからDRAM or I/O Intensityが高い(他の根拠は論文内で示されていないものの、内部で利用される計算式の複雑さのためOn-chip Logic Intensityも高めの評価と解釈)
  • 畳み込みニューラルネット(DaDianNaoベース)は大量のDRAMアクセスが発生するのに加えてチップ間の通信にHyperTransport(HT)を利用するため、Latency Sensitivityを強く評価

おわりに

本エントリではこの論文の良さの5%も伝えられていない気がします。ここで紹介しなかった要素が多いのに加えて、ここで紹介した内容だけに関しても、それぞれもっと具体的なことが論文に書かれているので、ぜひ読んでみてください。

0 件のコメント:

コメントを投稿