Xeon+FPGA
CARL2015が開催され、そこでインテルはXeon+FPGAをつかったデータセンター向けプラットフォームを説明しました。
http://www.ece.cmu.edu/~calcm/carl/lib/exe/fetch.php?media=carl15-gupta.pdf
少し前にインテルはFPGAを作ってるAlteraを約2兆円で買収しています。
FPGA界隈では、マイクロソフトが検索エンジンBingでFPGAを使っていることを発表しています。ビットコインマイニングにFPGAが使われたこと、ディープラーニングをFPGAに実装したなどから、元々FPGAをやっていた人というよりかは、ソフトやサーバー界隈の人がそろそろFPGAやらないといけないのかなーという感じで盛り上がっているような感じがしています。
個人的には、それまでもFPGAは使われていますし、上のような用途はごくごく一部であることから、一時的ではないかと思っているのですが…。(なくなりはしないがソフトやサーバーの人の興味が持続して必須スキルにはならないという意味で)
話を戻してインテルの話ですが、XeonとFPGAをQPIで接続するというのがハードとして考えていることだそうです。
図を見る限りダイが違うように見えます。
AlteraのFPGAがインテルのファブを使って14nmプロセス・ルールで作られた実績があるので、相性はいいのでしょうが、Xeon側の歩留まり落としたくないでしょうし、今ある設計資産をできるかぎり流用しつつ、といった感じに見えます。
FPGAがASIC側ほど周波数を上げられないので分離は必要ですかね。
FPGA側からもDDRやPCIeがあるので、Xeon側から命令投げたらあとはFPGA側でメモリアクセスしたり周辺ペリフェラルとのやりとりをするのでしょうか。FPGA同士でトーラス作るのに使ったりとか。
接続がQPIの6GT/sで帯域足りるかどうかですが、キャッシュまでやりとりする感じには見えないです。
キャッシュコヒーレンシやスヌーピングまで将来的に出来るようになるかはわからない。
プログラム的にはこういう感じでOpenCL対応しているので、API叩いてという感じですかね。
キャッシュコヒーレンシを保つのが結構面倒くさいように思うのですが、どうでしょうか。ソフトから高位合成でFPGA側のRTLを作成して、勝手に上手くいくものなんでしょうか。
サードパーティが参入できるかというと、一応できるそうです。とはいえCPU直で繋がったFPGAから離れますし、サードパーティ製の機能をCPU直のFPGAに置かれると痛いんじゃないかなーと。
一応ディープラーニングのも出てました。ホットな話題ですしね。