MicrosoftはどうやってBingをFPGAで実装したのか 109
ストーリー by hylom
楽しそうである 部門より
楽しそうである 部門より
あるAnonymous Coward 曰く、
先日MicrosoftがBingを運営するためのサーバーとしてFPGAベースのものを採用したという話があったが、これに関する日本語で分かりやすいまとめがQiitaで公開されている。
FPGAベースと聞いて、FPGAだけを乗せたボードにネットワークが直結されているものを想像したが、XeonベースのPCにFPGAボードがつながっているという構成だった模様。とはいえ、導入はなかなかハードだったようだ。
これらの資料によると、バージニア州にあるMicrosoftのデータセンターには1632台のFPGA搭載サーバーがあるというが、まだ試験段階で一般ユーザー向けのBing検索にはこれらは使われていないという。とはいえ、2015年初めには本番環境に投入される見込みだそうだ。
FPGAを利用するメリットとしては、性能を落とさずにサーバー台数を減らせるという点が大きいという。
その前にやることって無いの? (スコア:3, 興味深い)
site:microsoft com な資料を探すにあたって Bing では見つからず、
ググるしか無いという情けなさ。
最近の Windows や Office のヘルプ (F1 キーで呼び出すやつ) は
Bing で Web から検索するのが基本になってるようだけど、これも
目的とする情報が殆ど出てこない。
Re:その前にやることって無いの? (スコア:1)
MSはシングルタスクな会社だったのか
定型処理はFPGA (スコア:2)
妥当な選択でしょう。
reconfigurable (スコア:2, 参考になる)
最近こっち方面の仕事から離れてるせいかもしれないが、FPGAのreconfigurable機能を有効に活用した具体例が表に出てきたのは珍しい
Re:reconfigurable (スコア:1)
http://cloud.watch.impress.co.jp/epw/docs/series/storage/20090424_1527... [impress.co.jp]
#そんなに出てきていないのは同意。
Re:reconfigurable (スコア:1)
Alteraのような大手のFPGA屋さんが、FPGA上でOpenCLを動かすインフラを提供してます [altera.co.jp]からね。
GPGPUとしてのOpenCLと較べて色々な制約はあるんでしょうが、今後は結構な頻度で出てくるんじゃないかと思いますよ。
比較的小さなデータ集合に猛烈な回数の演算をやる場合には、性能対電力比の面でFPGA>汎用GPU>>汎用MPUとなるので。
一度処理カーネルをコンパイルして処理部に投げたら、後は当分の間違うコードを処理部で使わせないような用途だと、OpenCLが使えるFPGAに置き換えるのはアリでしょう。
# 余談ですが、自前でほそぼそと移植してるソフト [github.com]に
# 部分的にだけどOpenCLを取り入れてるのは、要は今後のMPUの動向を考えてのことでして
# …今後のMPUの中心は、大きなGPUコアと比較的小さなCPUコアが中心になっていくだろうし、その場合
# GLSLより汎用性が高い分、将来の組み込みでOpenCLが使用されるのは確実だろうとかそんな感じで
## 本当はFM音源のエミュレーションをOpenCLでやらせたいんだけど、未だそこには至ってない。
FPGA入りの (スコア:1)
AtomやARMではないんですね。
Re: (スコア:0)
ARM入りの FPGA ならある。
あまり有意義とは思えない (スコア:0, おもしろおかしい)
高速「な」サービスを苦労して作るより
サービスを高速「に」サクッと作った方が、サービスの単価は高い。
技術者がハードウェアの事まで考えるのは、あまり意義があるとは思えず・・・
Re:あまり有意義とは思えない (スコア:3)
昔から計算が多い場合は数値演算プロセッサを入れたし、学術計算用拡張ボードなんてのも売られていたし、今だとGPGPUとかも使っていたりするし。
そういう感じでFPGAボードを使えるのはソフト技術者として普通だと思いますが。
それによってより多くの利益が出せるようにするわけですし。
Re:あまり有意義とは思えない (スコア:1)
>技術者がハードウェアの事まで考えるのは、あまり意義があるとは思えず
ハードウェアのことすら考えられないのに技術者気取りとはなかなか
向上心のない技術者は40歳で首切り待ったなしですよ
Re:あまり有意義とは思えない (スコア:1)
>技術者がハードウェアの事まで考えるのは、あまり意義があるとは思えず
ハードウェアのことすら考えられないのに技術者気取りとはなかなか
向上心のない技術者は40歳で首切り待ったなしですよ
同感。
自分をソフト屋とかハード屋とか限定して、仕事の幅をかえって狭めることになるので、違和感があるというか単に「もったいない」。
新しい仕事の場も、自分の能力を生かせる場も、これまで仕事をしてきた世界の外にあるかもしれないのに。
#スマホで操作していたら、間違えて元コメにモデレートorz
#しかも「不当プラスモデ」ってorzorz
#コメントで取り消します。
Re: (スコア:0)
あまり意味のない所にまでこだわって
40歳になってもまだ労働をしているか
瞬間的にがっつり稼いで、40代で経済的自由を手に入れているか
どちらが幸せかは小学生でも分かる事なんだが。。。
Re: (スコア:0)
>意味のない所
価値観の貧相なやつだなぁ
あれゲな話をしに来るサイトに金しか興味のないやつが来てもつまらないだろうに
自分だけ稼げれば進歩に興味ないような自己中はご高説のとおりさっさと稼いで退場してほしいね
Re: (スコア:0)
で、ソフトしか知らないあなたは瞬間的にがっつり稼いだんです?
自分が知らない・付いて行けない分野を意味が無いとこき下ろすような程度の人には難しいんじゃないかな。
Re: (スコア:0)
FPGA使ってみればわかるけど開発の時間のほとんどはコード書いてるよね
そこはやってることはソフト屋のそれと変わらないというか
並行処理を必ず意識する分高級かもしれないけど。
要するにFPGAのハード屋はソフトもやってると言えるわけで
この点で見ても元コメの言ってることはまるで見当違いというかマヌケですな
Re: (スコア:0)
そうだな、小学生には達成感というのはわからないからな。
Re: (スコア:0)
『ボクは金儲け以外のことには意義も意味も見いだせないので。』って。
その感覚で言うなら誰も反論しないよ。
共感はされないだろうけどね。
Re:あまり有意義とは思えない (スコア:1)
ハードウェアを扱う人は技術者ではないらしい。
これがWeb系か。。。
Re: (スコア:0)
え”!?
Re: (スコア:0)
日本の競争力が落ちるわけだ
Re: (スコア:0)
まあ同意。
C/C++でハードウェアを意識したコードを書くより
rubyやpythonでハードウェアを意識せずにコードを書くほうが、速いコードが出来上がる。
Re:あまり有意義とは思えない (スコア:2)
pythonプログラムの実行が,pythonのネイティブのインタープリタよりも,
ネイティブのpythonインタープリタで動いているpythonで作ったインタープリタで動かした方が速くなったら信じます。
Re:あまり有意義とは思えない (スコア:1)
そう思いたいんですね。
判ります。
要は低いレイヤーの知識を持たない人にとっての酸っぱい葡萄という事か。
Re: (スコア:0)
いやー、速いコードが出来上がるんだろーけど、いくらそれが早いと言っても、それでも追いつかないからどーするんだというはなしなわけなんだがw
Re: (スコア:0)
Rubyは、速度に関して興味を持っていないようだからアレだけど
Pythonでも追いつかない処理って何?
RSAでも破りたいの?
Re: (スコア:0)
機械学習ですよ、ソース元を読みましょう。
Re: (スコア:0)
そんなんだったら、ツイッターがRubyでサービスインした後に性能問題で全部作りなおしたりしないよ。
Re: (スコア:0)
近視眼的、短絡的な利益追求としては確かにそうでしょうね。
最後の一文は意味不明ですが。
Re: (スコア:0)
高速バスだって高速道路という線路の事を考えるとリニアと五十歩百歩で、汎用性により富むという
点からは、むしろ高速を現行高性能CPU側、リニアがFPGA側としても良いくらいでは?
XeonはもちろんAmpですら汎用でマルチで、特定の用途のみをしまくるだけならFPGAの方が電気の
食い方が少ないという事なら、
同じ路地を走っている小型貨物と宅配用三輪自転車にたとえる方が良いのでは?
三輪車で30㎞走らせるのは酷だが、特定の地域を回るのには効率が良いとかそんな感じ。
Re: (スコア:0)
本当に元記事読んだ?読んでもさっぱりわからなかった?
でも、これ10年くらいでごく普通の上場会社くらいまで落ちてきそうだよ。
もう一度見直したほうがよくない?
Re: (スコア:0)
サービスを高速「に」サックっと作ることは当然の事で、それを高速「な」サービスに成熟させていくことは有意義な事だと思いますが…
Re: (スコア:0)
もしかして、某(仮)なゲームの運営さん?w
#そしてユーザ離れが加速する…
そりゃそうぢゃ (スコア:0)
>とはいえ、導入はなかなかハードだったようだ。
FPGAによるハードウエア構成ですから・・・ん?
ボトルネックってCPUだったの? (スコア:0)
てっきりBingとかの検索システムって膨大なデータを置いておくディスクとのI/Oがボトルネックだと思ってたんだけど、CPUがボトルネックだったってこと?
それとも、I/Oの問題は置いといて、処理対象データがメモリ上にそろった後のCPU処理時間をFPGAで大幅削減したってことなのかな?
Re: (スコア:0)
リンク先ぐらい読め。
どこをFPGA化してどうメリットがあるのか書いてあるだろ。
Re: (スコア:0)
読んだんですけどね
I/Oのボトルネックには触れられてなかったので、BingのFPGA化というよりも、
多サーバから共有できるCPUアクセラレータできたよーって理解で正しいのか自信がなかったんですよ
Re:ボトルネックってCPUだったの? (スコア:1)
読んでその理解なら絶望的だわ…
FPGAカードは他サーバーのFPGAカードと接続してトーラスを構成すると書いてある。
FPGA化したのは負荷の高いランク計算とも書いてある。
多サーバから共有できるCPUアクセラレータできたよーって理解で正しいのか自信がなかったんですよ
どこをどう読んだらこういう解釈になるのか後学の為に教えてほしい。
Re:ボトルネックってCPUだったの? (スコア:2)
> FPGAカードは他サーバーのFPGAカードと接続してトーラスを構成すると書いてある。
↑これを言い方かえれば
> 多サーバから共有できるCPUアクセラレータできたよーっ
という事でしょ。
I/Oのボトルネックには触れられてないのは確かだけど、それがボトルネックではなかったという事だね。
Re: (スコア:0)
「ステートマシンによる特徴量抽出」でソフト実装より150倍高速化できたってところが効いてそう。
その次の「メニーコアによる特徴量合成」も10倍でまぁイケてる。
たぶんディスクとのI/Oも負荷高いと想像できるけど、RTLでファイルシステム考慮してディスクにアクセスするのはかなり面倒で作業量対効果が良くなかったとかじゃないかな。
FPGA実装に適した、少しのデータ量に対し大量の演算が必要な処理がうまい具合にあったということだろうね。
Microsoftも大したことないな (スコア:0)
Re:Microsoftも大したことないな (スコア:1)
俺だってFPGAに穴を開けてRingぐらい作れるわい
Re:Microsoftも大したことないな (スコア:1)
シリコン基板は非常に薄くて堅いので、きれいに穴を開けるのはかなり難しかったりする。
解析用にそういう加工を専門に行う会社があるぐらい。
Re: (スコア:0)
バージニア州で働いてる人が、バージニア州で教育を受けているという話ではない。
地方の教育水準が低い云々は、全く的外れだと思う。
Re: (スコア:0)
バージニア州にあるのはデータセンターでしょ。
MS本体はシアトルで、R&D拠点のMSRはそれなりに分散しているので、
思ったほどシリコンバレーばかりではないよという点には同意しますが、
日本の企業だって東京本社でデータセンターは北海道とか普通にありますよ。
#小中、高校、大学のどのレイヤーの話なのか明示しない教育水準の話に価値は無い
Re:がんばれ日本(-1: オフトピ) (スコア:1)
> 日本の企業だって東京本社でデータセンターは北海道とか普通にありますよ。
「データセンターは北海道です」とか言われてギョッとしない?
きちんと保守できてるのか?保守できる人材が存在するのか?とか。
Re: (スコア:0)
Re: (スコア:0)
知ってるけど?
Re: (スコア:0)
Re: (スコア:0)
本社がシアトルにあるから、バージニアは東海岸の拠点なのかと思った。
#そして、マンハッタン島ってバージニアにあるんじゃないの?バージニアが田舎だっていうのはどこの田舎者だよ。