Moving computation to the data (1)

14,934 views

Published on

1 Comment
68 Likes
Statistics
Notes
No Downloads
Views
Total views
14,934
On SlideShare
0
From Embeds
0
Number of Embeds
4,561
Actions
Shares
0
Downloads
64
Comments
1
Likes
68
Embeds 0
No embeds

No notes for slide

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?

×