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