FPGAをコプロセッサーとして使用
FPGAをコプロセッサーとして使うというアイディアはかなり昔から存在した。FPGAについて簡単に説明すると、「ハードウェア回路をプログラムの形で自由に構成できるもの」になる。
プログラムには専用言語(VerilogやHDLなど)を使うのが一般的であるが、最近ではかなり大規模な回路をFPGAで構成できるようになった。ラフな言い方をすれば、FPGAはASICに比べて2~3世代ほどプロセスの効率が悪い。最近ではFPGAもすべて28nmプロセスに移行しているが、これは90~65nm世代のプロセスで製造したASICと同等の回路を作れるという意味である。
そんなに効率が悪いのになぜ? と思われるかも知れないが、ASICは論理設計が終わってから物理実装して、マスクを作り製造を行なうために、平均して半年以上の期間と億単位の初期コストがかかる。
一方FPGAは論理設計が終わったら、理論上は数時間~数週間で物理実装が終わり、回路を動かせる。マスクや製造のための初期コストはゼロであり、少量多品種な需要では既存のASICを作るよりも圧倒的に有利なのである。
こうした特性は、コプロセッサーにとっても非常に有利である。金融関係などで特殊なアルゴリズムに基づく計算をソフトウェアで実装すると、時間がかかりすぎるということが多い。これをFPGAで実装した場合、そのアルゴリズムを実行するための専用ハードウェアを組むことになるので、圧倒的に高速に実行できる。
また、そうしたアクセラレーターはそれほど大量に使われることはないし、しばしばアルゴリズムの変更が発生したりするが、FPGAであれば1個から製造でき、再プログラミングも極めて容易である。
以上のことから、初期にはFPGAを搭載した拡張カードをPCIバスなどに差して、これをコプロセッサーとして使う事例が少なからずあった。
またAMDでは、CPU間接続にHyperTransport Linkを使っていることもあり、これをそのまま拡張カードで接続できるHTX(HyperTransport eXpansion)なるコネクター規格を策定、これを使ってFPGAを接続することを目論んだ。しかし、試作品はともかく製品レベルで採用している事例を、残念ながら筆者は知らない。
FPGAをCPUに直結して使えるようにしよう、という動きを見せたのがインテルで、2007年のIDFの際にFSB Licensingという形で発表した。
これはXilinxとAlteraのハイエンドFPGAが、インテルのP4バスライセンスを取得したというもので、これらのFPGAのユーザーは追加料金なしでFPGAを直接CPUソケットに接続、FPGAにコプロセッサーの機能を搭載し、自由に使えるようになった。
もっとも「直接CPUソケットに接続」といっても、パッケージもピン配置も全く違うし、大体PGA771ソケットよりもFPGAは大きい。そこで実際には下図のように、まずCPUソケットにInterposerと呼ばれる接続用金具を挿入、固定後に今度はFPGAを搭載したドーターカードをInterposerに挿入するという2段構えの構造だった。
ちなみに当初こそFSBのみのサポートであったが、Xilinx/Altera共にQPIのバスライセンスもこの後取得しており、これを使う形で引き続きFPGAを使ったコプロセッサーのニーズに対応しており、現在も一部のユーザーで利用され続けており、目立たないながらもずっと続くであろう。
GPUを汎用計算に活用する
GPGPU
最後がGPGPUだ。インテルの「Xeon Phi」や、NVIDIAの「Tesla」、AMDの「FireStream/FirePro」などがこれにあたる。FPGA方式は自由度も高いし性能も良いが、その反面ハードウェアのプログラミングの難易度は高いし、ソフトウェアのインフラも自前で用意しなければいけない。
もう少し難易度を下げて広く使えるコプロセッサーがほしいというニーズは常にあり、これと「描画性能を上げてゆくなかで、他の用途も考えないと開発費が支払えない」というGPUベンダーの意向がうまくマッチしたのがGPGPU的な使い方である。
もともとGPUの方も演算性能を上げたり演算精度を上げたりしたいという長期的な展開があり、これはそのまま汎用の数値演算に利用できることになった。
といっても、すべての用途でGPUが使えるわけでもない。GPUの場合、同時に多数の計算を行なえる半面、計算のレイテンシーは比較的大きめであり、レイテンシーを遮蔽できるような大規模データ処理に向いている。
とはいえ、あまりデータ量が大きいとGPUカード上のメモリーが溢れてしまう関係で、このバランスをどの辺で取るのかが、現状での性能改善の鍵の1つとなっている。
またGPGPU方式では、大規模並列演算は非常に向いている反面、逐次演算では性能を出しにくいという欠点もあり、現状ではまだ利用できるアプリケーションが限られている。
特徴の出し方も各社各様で、NVIDIAはすでに広く普及しているCUDAを最大の武器に展開を図っており、インテルは開発ツールを充実させることで、x86との互換性を前面に打ち出している。
AMDはというと、OpenCLとの親和性を最大限打ち出している。特にAMD自身がFusionという形でCPUとGPUを統合したAPUを主力製品にしており、ARMやImaginationテクノロジーがやはり後追いの形でOpenCLに対応したCPU/GPU群をリリースする予定になっており、これらを一括して扱えるHSA(Heterogeneous System Architecture)のソフトウェアインフラを現在大車輪で整えている最中である。
HSAの枠組みの中ではCPUとGPUの差がなくなっていくので、これをコプロセッサーと呼んでよいものかどうかはやや微妙なところだが、少なくとも今後数年のオーダーではGPGPUがコプロセッサとして働くことになるだろう。
この連載の記事
-
第775回
PC
安定した転送速度を確保できたSCSI 消え去ったI/F史 -
第774回
PC
日本の半導体メーカーが開発協力に名乗りを上げた次世代Esperanto ET-SoC AIプロセッサーの昨今 -
第773回
PC
Sound Blasterが普及に大きく貢献したGame Port 消え去ったI/F史 -
第772回
PC
スーパーコンピューターの系譜 本格稼働で大きく性能を伸ばしたAuroraだが世界一には届かなかった -
第771回
PC
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史 -
第770回
PC
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史 -
第769回
PC
HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史 -
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ - この連載の一覧へ