COLUMN
【Intel® アクセラレーションカード開発日誌 #1】FPGA搭載サーバーの時代
Intel® PACを使った開発模様をシリーズでお届けしていきます。
FPGA、サーバーの世界へ
数年前、FPGAが組み込みではなくサーバーに搭載されはじめていることが話題になりました。
MicrosoftではBing検索やAzureで使われている「Project Catapult」が知られていますし(※1)、昨年から始まった「Project Brainwave」というAIのリアルタイム処理にも使われています(※2)。Amazon Web ServiceではFPGAを使用するクラウドサービス「Amazon EC2 F1 インスタンス」を展開しています(※3)。
国内でもサーバー向けのFPGAボードが販売されおり(※4)、FPGAを使用可能なホスティングサービスも(※5)始まっています。これらは全て、サーバーアプリケーションのさらなる高速化を目指し、既存のサーバーCPUの処理速度を上回る、ハードウェアアクセラレーションを目的としています。
(※1)Microsoftがサーバーにプログラム可能なチップ(FPGA)を搭載する「Project Catapult」を展開中
(※2)マイクロソフトとインテル、FPGA駆動のBrainwaveプロジェクトを公表
(※5)さくらインターネット、FPGAホスティングサービスのα版
しかしながら、これらのFPGAアクセラレーションを使用したサービスは、何でも自分たちでやってしまう技術力と体力がある大手プラットフォーマー自身によるサービス以外はあまり目につくことはありません。もちろんサーバー構成を積極的にアピールする意図が無い場合もありますが、FPGA業界の中でもあまり聞こえてこないのです。
サーバー向けのFPGA搭載がなかなか進まない理由は、大きく以下の3つと考えられます。
(1) FPGAアクセラレーションのメリットが知られていない
FPGAというデバイスは汎用性が高いゆえ、どういうメリットが生まれるのか、FPGAベンダーやFPGAエンジニア以外からはイメージしにくいです。一方で、FPGAエンジニア側も、サービスやアプリケーションがどういう仕組みで動いているか、どこの処理がアクセラレーションに向いているのかを学んでいく必要があります。よく使われるサービスのアクセラレーション事例が積み重ならないと、サーバー管理者やサービスベンダーに認知してもらえません。
(2) FPGAアクセラレーション導入のハードルが高い
ホスティング事業者やサービス事業者がFPGAをサーバーに搭載しようとしても、これまでFPGAは畑違いのものだったため、知識がなく運用ノウハウもありません。また、FPGAハードウェアを製造・販売する側も、従来の組み込み市場とは異なるエンタープライズ向けの製品もノウハウもありません。
(3) FPGAアクセラレーションの実装コスト
FPGAはカスタマイズ性が高いことが特徴なので、ユーザーニーズごとに開発すれば高性能のアクセラレーションが可能です。しかし、FPGA開発は難易度が高く、専門のエンジニアが設計しないとデバイスコストに見合った性能が出ないため、開発コストは非常に高いものになります。また、アプリケーションから利用しやすいようにAPIからハードウェアロジックまでの間のソフトウェア処理(ドライバ)にも多大な労力がかかります。
そのため、ある程度汎用的なアクセラレーションのデザインを揃えることで、導入のハードルが下がります。
それでも、ユーザーが導入するサーバー仕様やアプリケーションによってカスタマイズは必要になり、FPGAドライバのカスタマイズはかなりの手間であり、それなりの開発コストが導入のたびに発生することになります。
以上のように、FPGAアクセラレーションの導入は難易度が高いですが、様々なアプリケーションで従来のサーバーの性能限界を突破できるソリューションでもあるため、今後採用が広がることは疑いありません。
この導入障壁を突破するために、Intel®では“Intel® Programmable Acceleration Card”(略称としてIntel® PACと呼称することもあります)というプラットフォームをリリースしています。
FPGAとして売られないIntel® アクセラレーションカード
図1 Intel® アクセラレーションカードの外観と内部構成
(参照元:Intel® Corporation)Intel® Programmable Acceleration Card(以降はIntel® アクセラレーションカードと呼称します)は、Intel®が自社FPGAをサーバーやデータセンターに搭載するために用意したハードウェアプラットフォームです(図1)。
搭載デバイスとして Intel® Arria® 10 GX FPGA を搭載したものと、Intel® Stratix® 10 SX FPGA を搭載したものがあり、いずれもPCI Express Gen3 8xでHost PCに装着されます。それ以外のI/Fとして4X 10GbE または 40GbE 対応のQSFP があり、8 GBのDDR4 SDRAMと128 MBのFlash ROMも搭載します。
なお、このカード自体には冷却ファンは存在せず、サーバーのエアフローを前提にした冷却システムになっています。
Intel® アクセラレーションカードの設計と製造は米国のBittWare社が行っている模様です。
また、Intel® アクセラレーションカードを使用するためのソフトウェア群として、Acceleration Stackも公開されています(図 2)。開発済みのアクセラレーターを使用する方向けのランタイム版と、FPGAやホストアプリケーションを開発して新たにアクセラレーターを構築する方向けの開発版とがあります。
Acceleration StackはOpen Programmable Acceleration Engine (OPAE)というオープンソース技術をベースにしています。これにより、PCI Expressの制御やデータ転送処理が抽象化され、ホストアプリケーションからAPI経由でFPGAを利用する手段がかなり簡略化されます。
それ以外に、Acceleration StackにはIntel® Quartus PrimeやIntel® FPGA SDK for OpenCLなど、FPGAの開発環境も含まれます。
図2 Acceleration Stackの構成
(参照元:Intel® Corporation)
ここまでみると、従来のPCI Express型FPGA評価ボードと大きく変わらないのですが、Intel® アクセラレーションカードの最大の特徴は、販売ルートがOEM供給のみであることです。この基板単体ではエンジニアリングサンプルという形で開発目的でしか入手できず、実用向けにはサーバー企業が販売するサーバー構成品の1パーツとして出荷されます(図3)。ハードウェアとしての保証やサポートは、サーバー企業がサーバー構成品として行います。現在、サーバーの出荷構成としてIntel® アクセラレーションカードが選択できるのは、DELL EMCを含めたサーバー企業3社となっています。
図3 DELL EMCのオンラインショップでDell(TM) PowerEdge(TM) R840 Rack Mount Serverの構成を選択する画面。Intel® FPGA Programmable Acceleration カードが選択できます。
さて、このIntel® アクセラレーションカードによって先程の導入障壁が改善されるのでしょうか。
(1)「FPGA搭載サーバーによるメリットが知られていない」について
Intel® アクセラレーションカードリリースに合わせていくつかの3rdベンダーがIntel® アクセラレーションカード用アプリケーションを発表しました(表1)。これらのアプリケーションをIntel® アクセラレーションカードに適用すれば、容易にFPGAアクセラレーションを導入できるようになっています。こういったアプリケーションが揃い、一覧できるのも、統一したFPGAアクセラレーションプラットフォームの恩恵の一つです。
Category | Application | Provider | FPGA Advantage |
---|---|---|---|
Data Analytics | Key Value Store | Algo-Logic | 13x Throughput |
Spark Database | Bigstream | 3.5x performance | |
Real-time Spark | Megh Computing | > 25x real time performance | |
Cassandra Database | rENIAC | 96% latency reduction | |
PostgreSQL Database | Swarm 64 | Up to 55x analytics performance | |
Media Processing | JPEG to Lepton Image Transcode | CTAccel | 3x to 4x throughput |
JPEG to WebP Image Transcode | CTAccel | 4x throughput | |
Artificial Intelligence | Deep Neural Network | Intel® | Up to 19x performance |
Network Security and Monitoring | Napatech LinkTM Capture Software | Napatech | > 3x performance for leading networking and cybersecurity applications |
Financial | Financial Back Testing – Black Scholes | Levyx | Up to 8x performance |
Genomics | Genomics GATK Pipeline | Falcon Computing | 15x performance with 99% accuracy |
表1 Intel® アクセラレーションカード用アプリケーション
(参照元:Intel® Corporation)
(2)「FPGA搭載サーバー導入のハードルが高い」について
サーバー企業からサーバー構成品の1パーツとして購入可能となったことで、ホスティング事業者やサービス事業者がFPGA搭載サーバーを購入するハードルは格段に低くなりました。運用についてはまだハードルは高いですが、Intel® アクセラレーションカードの導入支援からサポートまで手がけるパートナープログラムをIntel®が各国で構築中です。
(3)「FPGAアクセラレーションのアプリケーションの実装コスト」について
期待するアプリケーションが既存のIntel® アクセラレーションカード用アプリケーションに用意されていない場合、独自のアプリケーションを開発することになります。Intel® アクセラレーションカードは、Intel® FPGA SDK for OpenCL™ という開発ツールに対応したデバイスとなっており、このツールによってC言語ベースのOpenCL言語で開発が可能になります。FPGAの処理を引き出す記載方法をマスターする必要がありますが、ハードウェアは抽象化され、ソフトウェアエンジニアでもFPGAの処理能力を活かしたアプリケーション開発が可能になります。
さらにパフォーマンスが必要な場合や、既存のFPGA設計資産を利用したい場合でも、従来のFPGAよりも開発が容易になっています。何しろ、Acceleration Stack のOPAEと、FPGAのFIM(FPGA Interface Manager)によってPCI Expressを意識しなくても通常の内部バスアクセスやメモリアクセスの要領でPCのリソースとFPGAのリソースを相互にアクセスできるのですから、理想のFPGA設計環境となるのです。
このように、FPGA搭載サーバーの時代は幕を開けつつあり、それに対応できるFPGAソリューションをIntel®は用意しています。また、本稿では触れませんでしたが、FPGAデバイスのもう一方の雄であるXilinxも、同様のソリューションを展開中です(※6)。
(※6)ザイリンクス、データセンターおよび AI 向け世界最速のアクセラレータ カードを発表
次回は、実際にIntel® アクセラレーションカードをセッティングして、どのようなものか見ていこうと思います。
個別相談も承っております。下記よりお申し込みください。