Xilinxは2月23日(米国時間)、FPGAを搭載した「Alveo SmartNIC SN1000」を発表した。これに先立ちオンラインで事前説明会が開催されたので、そこでの説明を元に同製品を紹介したい。

元々NICの上にインテリジェンス機能を搭載したSmart NICという製品は古くから存在する。もっとも当初は例えばTCP/IPのオフロードを行うという程度で、Smart NICといっても比較的機能が限られていた。

ただ、現在はNVIDIAの子会社であるイスラエルのMellanoxは古くからConnextXシリーズというNIC+アクセラレータ付き汎用CPUの組み合わせで、ホストで処理するより高速にレスポンスできるといった特徴を持つ製品をリリースしていた。

あるいはIntelも5G向けに「PAC N3000」などのSmartNICを2019年に発表しているし、別にXilinxも手をこまねいていた、という訳ではない。

もともとこの分野ではXilinxのFPGAを搭載したSolarflare CommunicationsのSmart NICが広く利用されていたが、2019年にXilinxはこのSolarflare Communicationsを買収。その後もSolarflareの製品は引き続き供給されていたが、今回改めてAlveoブランドで製品を登場させたという形になるかと思う。

さてそのSN1000であるが、フルハイト/ハーフサイズの1スロット厚の構成である(Photo01)。

特徴的なのはNXPの16コア Armプロセッサ(型番は確認しても教えてくれなかったのだが、おそらくLX2160Aと思われる)をFPGAとは別に搭載していることだ。

このArmプロセッサ、説明によれば「Control Planeの制御用」との話で、逆にData PlaneはすべてFPGAで制御するとの事。そのFPGA側であるが、当然初期状態では最低限のものしかない(Photo02)。

  • Alveo SmartNIC

    Photo02:DRAMはFPGAとCPUで共用、ということは多分無く、ここに記載されているのはFPGA用(Armコア用はまた別途用意される)と思われる

ただそこからは好きな様に機能を追加することが可能であり(Photo03,04)、このFPGA側のData PlaneはP4言語でのプログラミングも可能となっているとする(Photo05)。

  • Alveo SmartNIC

    Photo03:NVMeOE向けソリューションと思われる

  • Alveo SmartNIC

    Photo04:Intelligence Switch向けソリューションだろうか? ただポートが2つなのはちょっと不足気味な気も

  • Alveo SmartNIC

    Photo05:この図だとP4で記述し、それをVitis経由で組み込むようにも思われるが、このあたりの正確なフローは不明

なお今回は100G×2の構成であるが、これは「Xilinxの現在の顧客はみな100Gでの利用だから」という話であり、将来的には200G/400Gのソリューションのロードマップも出来ている(が、現状ではまだ公開できない)との話であった。

このSN1000は1M LUTとかなり大容量のFPGAを搭載しているため、当然その他の処理を動かす余地もたっぷりある。こうした用途に向けて同社が提供するのはSmart World AI Video Analyticsである。

具体的にこのSmart Worldで対応しているのはこちら(Photo06)。このSmart WorldのコアになっているのはVMSS(Video Machine-learning Streaming Service)というフレームワーク(Photo07)であり、これは別にSN1000だけでなく同社のAlveoカード(というか、同社のFPGA)上での動作が可能である。

  • Alveo SmartNIC

    Photo06:いずれも最近良く利用される様になりつつあるアプリケーションであり、ある意味典型的な処理なだけに、無駄に工数を掛けて車輪の再発明をしたくはないというのが開発側の本音であろうし、そうした開発者に強くアピールできるものである

  • Alveo SmartNIC

    Photo07:VMSSを利用することで、開発者はアプリケーション要件に関わる部分に専念するだけで良くなるとする

実際、同じことをGPUベースで行った場合と比較すると、Alveoカード(U30+U50)+Smart World AI Video Analyticsの構成はより低コスト(Photo08)かつ高性能(Photo09)であるとする。

  • Alveo SmartNIC

    Photo08:価格比較:32台のカメラを接続するという前提だと、NVIDIA T4なら4枚必要で、消費電力もそれなりになるが、XilinxだとAlveo U50+U30でこれが賄えるので、初期コストも消費電力(=電気代)も下がる事になり、TCOで比較すると3割ほど下がる、とする

  • Alveo SmartNIC

    Photo09:Latency比較:GPUではどうしてもBatchサイズを大きくしないと性能が出しにくく、必然的にLatencyが多めになるので、これは妥当な気はする

別のソリューションとして、いわゆる高頻度引(HFT:High Frequency Trading)と呼ばれる分野向けのものも同時に発表された。HFTに関しては2019年に一度説明会を開催しているが、この時は金融分野全般向けという体裁で、あまりHFTに踏み込んだ内容ではなかった。

いわゆるアルゴリズム取引と呼ばれる分野であるが、もう昨今ではmsオーダーでは間に合わず、μsオーダーでの取引が行われている(Photo10)。

  • Alveo SmartNIC

    Photo10:以前HFTに関わっているエンジニアに話を伺った時には、内部処理はμsecどころかnsオーダーで設計しているという話で、そりゃCPUでは無理だなぁと思った次第

こうした分野では、CPUを使うと決定的に間に合わない(ネットワークカードでパケットを受け取り、バス→メモリ経由でCPU上で動く当該スレッドにデータが渡るまでに下手をするとmsオーダーで時間が掛かりかねない)ため、ASICやFPGAを利用するのが一般的である。実際今回発表のSN1000など、まさにこうした処理に適したカードである。

このSN1000を含むAlveo向けに、アルゴリズムのIPとVitisのライブラリを提供することで、迅速にアルゴリズムの実装を行って運用を出来る様にする、というのが今回のソリューションである(Photo11)。

  • Alveo SmartNIC

    Photo11:SN1000以外のAlveoカードもEthernetは搭載しているので、SN1000でなくても処理には支障はない

これを利用することで、開発期間と実際の運用時のLatencyのバランスをうまく取る事が出来る、と同社は説明する(Photo12)。

  • Alveo SmartNIC

    Photo12:棒グラフが開発時間(左軸)、折れ線がLatency(右軸)である。まぁCustome Hardwareでも0nsにはならないと思うのだが

最後に紹介されたのがApp Storeである(Photo13)。

  • Alveo SmartNIC

    Photo13:もっともIntelなどは以前からこうしたApp Storeを開設しており、Xilinxはちょっと遅れた感もある。それこそAvnetのUltra96ボードとかでも利用できるとさらに便利になるのだが、そういった動きに期待したい

Smart World AI Video AnalyticsにしてもHFT向けIPにしても、これまでは個別にXilinxなり代理店なりに連絡して、契約の後にIPなりライブラリなりが送られてくるという形態であったが、これがApp Store経由で入手できる様になる。すでに多数のアプリケーションが登録されており、無償トライアルも可能なほか、運用場所を選ばない(オンプレミス以外にAWSクラウドやNimbixなどでも利用できる)といった特徴を持つ。現状はAlveoカードが対象だが、将来的にFPGAそのものも対象になると結構便利な気がするので、期待したいところだ。