IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

Xeon+FPGA

CARL2015が開催され、そこでインテルXeon+FPGAをつかったデータセンター向けプラットフォームを説明しました。

http://www.ece.cmu.edu/~calcm/carl/lib/exe/fetch.php?media=carl15-gupta.pdf

 

少し前にインテルFPGAを作ってるAlteraを約2兆円で買収しています。

www.itmedia.co.jp

 

FPGA界隈では、マイクロソフトが検索エンジンBingでFPGAを使っていることを発表しています。ビットコインマイニングにFPGAが使われたこと、ディープラーニングをFPGAに実装したなどから、元々FPGAをやっていた人というよりかは、ソフトやサーバー界隈の人がそろそろFPGAやらないといけないのかなーという感じで盛り上がっているような感じがしています。

個人的には、それまでもFPGAは使われていますし、上のような用途はごくごく一部であることから、一時的ではないかと思っているのですが…。(なくなりはしないがソフトやサーバーの人の興味が持続して必須スキルにはならないという意味で)

 

話を戻してインテルの話ですが、XeonFPGAをQPIで接続するというのがハードとして考えていることだそうです。

f:id:qpci32siekqd:20150621112355j:plain

図を見る限りダイが違うように見えます。

AlteraのFPGAインテルのファブを使って14nmプロセス・ルールで作られた実績があるので、相性はいいのでしょうが、Xeon側の歩留まり落としたくないでしょうし、今ある設計資産をできるかぎり流用しつつ、といった感じに見えます。

FPGAがASIC側ほど周波数を上げられないので分離は必要ですかね。
FPGA側からもDDRやPCIeがあるので、Xeon側から命令投げたらあとはFPGA側でメモリアクセスしたり周辺ペリフェラルとのやりとりをするのでしょうか。FPGA同士でトーラス作るのに使ったりとか。

接続がQPIの6GT/sで帯域足りるかどうかですが、キャッシュまでやりとりする感じには見えないです。

キャッシュコヒーレンシやスヌーピングまで将来的に出来るようになるかはわからない。

 

f:id:qpci32siekqd:20150621113723j:plain

f:id:qpci32siekqd:20150621113917j:plain

プログラム的にはこういう感じでOpenCL対応しているので、API叩いてという感じですかね。

キャッシュコヒーレンシを保つのが結構面倒くさいように思うのですが、どうでしょうか。ソフトから高位合成でFPGA側のRTLを作成して、勝手に上手くいくものなんでしょうか。

f:id:qpci32siekqd:20150621114217j:plain

サードパーティが参入できるかというと、一応できるそうです。とはいえCPU直で繋がったFPGAから離れますし、サードパーティ製の機能をCPU直のFPGAに置かれると痛いんじゃないかなーと。

 

f:id:qpci32siekqd:20150621114554j:plain

一応ディープラーニングのも出てました。ホットな話題ですしね。