各CPUノードに1個のFPGAが付いているのであるが、使い方としては、トーラスネットワークで接続される何個かのFPGAのグループで1つの機能を実現し、グループ内のCPUからはPCIe経由でFPGAグループの機能が利用できる。また、グループ外のCPUからは、グループ内CPUを経由することにより、FPGAグループの機能を利用できる。
次の図は、Web Searchのパイプライン以外に、Math Acceleration Service、Physics Engine、Comp Vision Serviceが実現されている絵になっている。
Bingのドキュメントサーチは、次の図のように、Selection as a Service側のサーバで、検索するキーワードを1つでも含むドキュメントを抽出し、そのドキュメントがどの程度適当な候補であるかをランキングするRanking as a Service側のサーバが判定するというフローで処理されている。現在のBingサービスでは、どちらも通常のサーバが実行しているが、この実験では、後半のRaaS部分をCatapultに移植した。
|
Bingの検索は、1つでもキーワードを含むドキュメントを抜き出すSaaS処理と、そのドキュメントが検索条件にどの程度マッチしているかを計算するRasS処理からなる。処理量の大きいRasS処理の部分をCatapultカードに移植した |
ランキングは、サーチするキーワードがドキュメンの中に、何回、どのように出てくるかによって計算され、ドキュメントの適合度を評価する。この処理をFPGA 1個で240並列に実行できる。
次の図のグラフは、横軸に95%の結果が出るまでのレーテンシをとり、縦軸にスループットを取ったものであるが、SW Onlyのグラフに対して、SW+FPGAのグラフの方が上にあり、同じレーテンシならFPGA付きの方がスループットが大きい。黄色の矢印の部分で比べると、同じレーテンシではスループットは2倍である。これは、半分の数のサーバで同じ量の処理ができることになり、コストを下げられることになる。また、同じスループットの場合はレーテンシが29%短く、レーテンシを延ばすことなく、新しいサービスを追加したり、ランキング精度を改善する余裕が生まれる。
今回の結果は、1632台のサーバのクラスタでの実験結果であるが、コスト削減効果が大きいので、2015年の早い時期には、 Catapultカードを使う実運用を開始するとのことである。
FPGAをサーバに付けることはハード的には難しくないが、ソフトウェアは月単位。場合によってはより頻繁に変わっており、それに対応してFPGAのプログラミングを変えていく必要がある。
このためには、FPGAをRTLでプログラムするのではなく、C++で書いたプログラムからFPGAの構成データを作り出す環境の整備や、FPGAフレンドリーなプログラムの書き方などが重要になるという。