Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Moving computation to the data (1)

19,179 views

Published on

Moving computation to the data (1)

  1. 1. Moving Computation to the Data @kazunori_279
  2. 2. 自己紹介 @kazunori_279 ● クラウドやビッグデータ関連の仕事 ○ appengine ja night管理人 ● HDL歴は数か月 ○ DE0で勉強中。やっと4bit CPUが動いた ○ FPGAエクストリームコンピューティング(勉強会)始めま した
  3. 3. Disclaimer ● 専門外なので見当違いなこと書いてるかも ● 個人の研究であり、私の雇用主とは関係ありま せん ● 引用した図には引用元のリンクが張ってありま す
  4. 4. アジェンダ ● ● ● ● ● ● なぜFPGAが気になるか Moving Computation to the Data 最近の業界動向 金融分野はさらに先に進んでいた そしてMemcached+FPGAが熱い なぜMemcachedはFPGA実装で速くなる?
  5. 5. FPGAエクストリーム コンピューティング
  6. 6. なぜFPGAが 気になるかというと...
  7. 7. ノイマンがボトルネックだから 皆さん順番にディスク →メモリ→キャッシュ→レジスタってコ ピーしてきてくださいね どんな大きいデータも 64bitずつ計算してるしOSさんも忙しい からあと何1000クロックか待っててね ノイマン型CPU 頭の回転は速いが どう考えても ここがネックだろ...
  8. 8. アプリ屋だってワイヤードロジックで 並列処理したい! CPUやOSを介さず1024並列で ワイヤスピードで処理してます(キリッ ...とか言ってみたい
  9. 9. FPGAのコモディティ化による 破壊的イノベーション ● いまやリコンフィギャラブルコン ピューティングが1万円で ○ CPUもOSもTCPもとばしてFPGAでア プリ処理を書ける ○ アプリ開発者がアプリごとに専用ハード 設計できる時代に ○ しかも自宅で ○ これってMakerムーブメントだ ○ 昔の8bitマイコンみたい
  10. 10. FPGAは電力性能比がケタ違いに高い ● 大規模データセンターでは電力性能比 がネック ○ データセンターに供給可能な電力量には限り がある ○ 例えば、1か所につき数MW程度 ○ データセンターが提供できる処理能力は サーバーの電力性能比によって大きく左右さ れる
  11. 11. しかしアプリ処理のフルFPGA実装は ハードルが高い...
  12. 12. CPUとFPGAの適材適所がキモ ややこしいロジックはCPUで ● ● ● ストリーミングの前処理 認証、OLTP、トランザクション セッション管理、例外処理、UI/CLI/API 大量・並列処理はFPGAで ● ● ● ● CPUやOSを経ないストリーミング、RDMA ログ集計、パース、ウィンドウ処理 ソート、ジョイン、マージ、パターンマッチング メディア配信・画像処理・数値演算・暗号化 →ARM+FPGA混載コアがおもしろい ● Xilinx Zynq ● Altera SoC ● 既存アプリの一部分のみアクセラレーションできる
  13. 13. ARM+FPGAが データセンターにやってくる
  14. 14. CPUとFPGAはどう連携するか? ↓ Moving Computation to the Data
  15. 15. Alteraいわく: (計算機にデータを持っていくのではなくて) データのある場所に計算を持っていく
  16. 16. データのある場所で計算する データのあるストレージやネットワークに計算させよう そんな事例が増えている:Violin Memory, IBM Netezza, HFT...
  17. 17. 従来型のアーキテクチャ: 「ビッグデータ」の時代なのに、 あいかわらず細切れにしてCPU で逐次処理って...
  18. 18. 新しいアーキテクチャ: 低コスト・大容量化したFPGA で、アプリ処理できるインテリ ジェントなI/Oを実装
  19. 19. Edge-Heavy Dataに似てる
  20. 20. Moving Computation to the Data っぽい最近の業界動向
  21. 21. IBM Netezza: ストレージ層のFPGAで 大規模データのフィルタリング
  22. 22. XilinxによるZynqデモ:OpenCVの動画処理を ARM+FPGAで100倍高速化 CPUではカクカクな処理がFPGA連携時はヌルヌルに(1:30あたり)
  23. 23. HPの次世代サーバMoonshot SRC Computerと連携しFPGA搭載
  24. 24. IBM POWER8のCAPI: 外部FPGA/ASICと高速キャッシュ同期
  25. 25. Seagateのkey/value Ethernet drive HDD/SSDがそのままKey Value Storeに...! ● CPU/OS/TCPのオーバーヘッドなし
  26. 26. 金融分野のHFTやHPCは さらに先に進んでいた
  27. 27. FPGAスイッチArista 7124FXによる High Frequency Trading High Frequency TradingのFPGA化 ● 数msの遅れが数千万、数億規模の 損失を生む ● FPGA搭載NICでトレーディング ○ ○ TCPや取引アルゴリズムのFPGA実装 CPU/OSを介さず低遅延を保証 ● FPGA搭載アプリケーションスイッチ Arista 7124FX ○ 株価がサーバーに届く前にスイッチが株の 売り買い
  28. 28. 取引アルゴリズムはx86で オーダー執行はFPGAで
  29. 29. 株価のパケットが届き終わる前に オーダーのパケットを送り始める(怖 執行条件に合致しなければ最後に チェックサムずらしてパケットを破棄。市場 データ到着から25 nsで発注完了。 投機市場だけに投機実行ってことか
  30. 30. JP Morgan+Maxelerによる 債権リスク評価専用FPGAクラスタ ● 40台で処理時間を8時間から4分に短縮
  31. 31. JP Morgan+Maxelerによる 債権リスク評価専用FPGAクラスタ “FPGAを使うことで数100段といった非常 に深い演算パイプラインと、とても細かい 粒度での並列化によるストリーム・コン ピューティングを実現できるからだ。これに より、CPUに比べ数100倍のスループット を得られるケースもある。”
  32. 32. そして Memcached+FPGA が熱い
  33. 33. ConveyのMemcachedアプライアンス ● 2013年9月発表
  34. 34. ConveyのMemcachedアプライアンス x86とFPGAのハイブリッド
  35. 35. ConveyのMemcachedアプライアンス x86サーバーの7倍のスループット、遅延は1/5
  36. 36. ConveyのFPGAマシン 他にもいろいろ速い ● ゲノム解析 ● グラフ ● 文字列の編集距離 ● 文字列の近似検索
  37. 37. なぜMemcachedは FPGA実装で速くなるか?
  38. 38. Memcached+FPGAの論文が増えた ● An FPGA memcached appliance ○ HP Labs, Univ. of Massachusetts Lowell ○ FPGA '13 ○ 内容:FPGAでMemcachedを実装してみた ● Achieving 10Gbps Line-rate Key-value Stores with FPGAs ○ Xilinx, ETH Zurich ○ HotCloud '13 ○ 内容:実効レート10GbpsのMemcached(白目
  39. 39. Memcached+FPGAの論文が増えた ● Thin Servers with Smart Pipes: Designing SoC Accelerators for Memcached ○ HP Labs, Facebook, ARM, Univ. of Michigan ○ ISCA 2013 ○ 内容:FPGAとCPUによるハイブリッド実装の提案 HPとFacebookとARM!
  40. 40. x86上のMemcachedの ボトルネックを探る ● 100台のMemcachedクライアントと5種類の負荷を再現 ○ ○ ○ ○ ○ 固定サイズ(128B) マイクロブログ(平均1KB) Wiki(平均2.8KB) サムネイル(平均25KB) FriendFeed(MULTI-GET) ● テスト対象サーバー ○ ○ Xeonベースのハイエンドサーバー ■ 2.25GHz x 6コアXeon/12GBメモリ/10GbE NIC Atomベースの低消費電力サーバー ■ 1.6GHz x 2コアAtom/4GBメモリ/10GbE NIC
  41. 41. ボトルネックその1:命令キャッシュ ● ● 命令キャッシュのボトルネック ○ SPEC CPU 2006 integerベンチマークとの比較では、Memcachedでは最 大15倍も低い。これはLinuxカーネルとネットワークスタックのコード量の大 きさによるものである ITLBのボトルネック ○ AtomではITLBの不足によりミス率がXeonに比べてきわめて高い
  42. 42. ボトルネックその2:分岐予測の失敗 ● 分岐予測の失敗によるボトルネック ○ マイクロブログにおける実行時間の大きい上位50個の関数のうち、予測失 敗率が10%以上のもののリスト。TCPスタック、デバイスレイヤ、NICドライ バなど。プロトコルの複雑さ、同期時の競合発生などの理由により分岐が 不規則であり予測が困難
  43. 43. Memcachedのボトルネック ● ボトルネックの原因は「OSカーネル、ネットワーク・スタック、 NICドライバのコードの長さ」 ○ ○ 命令ストリームのボトルネックが発生 仮にスループットがリニアにスケールしたとしても、1GbE帯域を使い切るに は6コア、10GbEでは64コアのXeonが必要
  44. 44. CPU+FPGAによるボトルネック解消: TSSP: Thin Server, Smart Pipe ● 複雑な処理はソフトウェア(Thin Server)で ● 簡単・大容量処理はハードウェア(Smart Pipes)で
  45. 45. TSSPによるMemcachedの実装 ● MemcachedのGETをSoC上でハードウェア実装する ○ ○ MemcachedのGET/SET比は最大30:1、GETは全体の97%を占める。 ハードウェアで実装の困難な複雑な機能はソフトウェアでカバーする GETにはUDPを使い、SETにはTCPを使う。Memcachedはそもそもベスト エフォートな使い方なのでUDPで問題ない ● ハッシュテーブル検索とKVSを分け、前者はハードで効率 的に実行 ○ デコードされたリクエスト中のキー情報はハッシュテーブル検索ハードに渡 される
  46. 46. ハッシュテーブル実装 ● ● KVを保存するメモリ領域の管理はソフトウェアで ハッシュテーブル管理はハードで
  47. 47. 性能評価 ● ● MemcachedのFPGA実装(冒頭の論文)を用い、GETのみハードで実装 ○ Altera DE4 (Stratix IV 530 FPGA), 4GB DDR2 x 2, GbE x 4 この既存実装での評価結果を元に、Zynq上でTSSPを実装した場合の電力性 能比を推量。Xeonの6倍、Atomの16倍を見込んでいる
  48. 48. まとめ
  49. 49. まとめ ● ARM+FPGAのコモディティ化のインパクト ○ しかしFPGA開発のコストは高い ○ CPUとFPGAの適材適所が焦点に ● Moving Computation to the Data ○ データのある場所で計算する、というパラダイム ○ Thin Server, Smart Pipes ● FPGAがデータセンタにやってくる ○ Memcached/MapReduceアプライアンス ○ データベース/KVS ○ … and more!
  50. 50. Questions?

×