1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

AMDのメディアアクセラレーター「Alveo MA35D」はナニがすごいのか?

ASCII.jp / 2023年4月10日 12時0分

動画エンコードに特化したメディアアクセラレーターカード 「Alveo MA35D」

 今回はやや毛色の違う話題をご紹介したい。4月5日にAMDはデータセンター向けのメディアアクセラレーターとしてAlveo MA35Dを発表した。

 製品の位置付けとしては、ちょうどインテルのサーバーGPUと同じようなものになる。ただインテルのサーバーGPUは、メディアトランスコードとクラウドゲーミングの両方の用途を狙ったものに対し、Alveo MA35Dはメディアトランスコードに特化した製品となる(ので、GPUの分類には入らない)。

 そもそもAlveoという製品ラインナップであるが、これは旧Xilinxのものである。もともとXilinxはFPGAのチップを販売する会社であり、ただチップだけでは当然動かないので、これを基板の上に実装して周辺回路を組み合わせて初めて動くようになる。

 もちろん、開発用にそうした周辺回路を載せたボードはXilinxやパートナーから多数出荷されていたが、これは開発用の回路などまで載せたもので、最終製品に使うには大きすぎ、かつ開発用ということでさまざまな用途に使えるように拡張性を最大限に利用できるように工夫されている分高価である。

 ただ組み込み向けにはこれでも構わなかったのだが、旧Xilinxも2018年にVictor Peng氏(現在はAMDのPresident)がCEOに就任してから方向性が少し変わってきた。組み込み向け市場のトップシェアを握ったXilinx(これは競合だったAlteraがインテルに買収されたことで、次第にシェアを落としていったことも一因である)が新たな市場としてサーバー市場に注目したからだ。

 “Datacenter First”がこの時期のXilinxの基本戦略であり、サーバー向けにXilinxのFPGAをもっと利用してもらう方策を考える必要がある。こうなると、先に書いたチップ単体売りのままではあまり上手くいかない。そこで2018年、FPGAを搭載したPCIeカードを発売する。これがAlveoシリーズの始まりである。

2018年のXDF(Xilinx Developer Forum)でAlveoを披露するPeng CEO(の右手)。ちなみにこの時点ではXCVU9Pを搭載するAlveo U200とXCVU13Pを搭載するAlveo U250の2製品がラインナップされていた

 一般的に言えば、FPGAには「自由にロジックを組み替える」機能と「多彩な入出力をサポートする」機能の2つがあるが、Alveoの場合は後者を殺し、前者だけをサーバーで簡単に使えるようにしたもの、と考えればいい。サーバー用途にいまさら入出力を追加しても仕方がないのでこれは殺し(イーサネットだけはそのまま利用している)、その代わりFPGAのロジックをPCIe経由で簡単に利用できるようにしたかたちだ。

 この後Xilinxは同じ2018年11月に、HBM2メモリーを搭載したAlveo U280を、2019年8月にはメインストリーム向けにシングルスロット/フルハイトのAlveo U50をそれぞれ発表。現在は6製品ほどがラインナップされている。

 またXilinxは2019年にSolarflare Communicationsという会社を買収しているが、同社は金融の高頻度取引向けにXilinxのFPGAを搭載したイーサネットカードを出荷しており、この仕組みを取り入れたものがAlveo SN1000として2021年2月に発表された。これはSmartNICというジャンルに分類される製品だが、こちらも現在は3製品ほどがラインナップされている。

 さて、SmartNICはともかくAlveoは基本的には汎用製品であり、その使い方は顧客に任されている(もちろんいくつかの用途に向けてさまざまなソフトウェアライブラリーなどは提供している)のだが、2020年6月にはそのAlveoを利用してビデオストリーミングを提供するためのアプライアンス(専用装置)を発表する。

発表時にはこのアプライアンスのシャーシが紹介されたが、これはいわばリファレンスデザインであって、実際Alveo以外は汎用のx86サーバーで済むため、これを利用したケースはけっこう少ない

 利用されるのは、すでに発表済みのAlveo U50に加えてこの2020年6月に追加されたAlveo U30である。ここでH.264やH.265のエンコード/デコード機能はIPのかたちでXilinxから提供され、これをAlveoに搭載されたFPGAにロードしてやれば直ちに高性能なトランスコーダーが利用可能になるという話である。

Alveo U50とAlveo U30。どちらを使うのかは顧客次第という話であった。ちなみにAlveo U50はTDPが75W、Alveo U30は50W(エンコード利用時はおおむね35W)という発表だった

 この時点ではFFmpegを利用してこのAlveo上のトランスコーダーを利用できるようなミドルウェア(というよりドライバー)が提供されていたので、あとは顧客(アプライアンス製造ベンダー)が上位のソフトウェアを用意することでビデオアプライアンスサーバーが簡単に構築できる、というわけだ。

 2020年6月の発表の際には、wistronがこのリファレンスをそのまま発売した(どうもこのリファレンスデザインそのものを製造したのがwistronらしい)ほか、HPEがProLiant Gen10+ DL480/DL385にAlveo U50を8枚装着したサーバーを、HypertecがAlveo U30を7枚装着したEdge 2UアプライアンスとAlveo U30を10枚装着した2Uアプライアンスを、Boston Servers, Storage & SolutionsがSupermicro 1RUという1UのサーバーにAlveo U30を8枚装着した製品を、それぞれ出荷予定(一部はすでに出荷開始)と報じていた。

M35DはAlveoシリーズ初の FPGAを搭載しない製品

 前提の説明が終わったので今回の説明に移りたい。今回発表されたAlveo M35Dは、Alveoの名前は冠しているもののFPGAは搭載されておらず、その代わりエンコード/デコードに特化した専用のASICチップを2つ搭載している。

Alveo M35D。カードはAlveo U30と同じくシングルスロット/ハーフハイト。PCIeはx8レーンでの接続の模様
物理的には1チップにすることも可能なのだろうが、ダイサイズが大きくなる分歩留まりが下がるからコスト増になるし、そもそも処理の並列度が高いから複数チップでも問題ない、ということだろう。ただ基板上にPCIe ブリッジがないので、Alveo U30と同じくx8レーンを2×4レーン構成として、それぞれのチップにつなげていると思われる

 なぜFPGAではなく専用のASICを起こしたか? というと理由は以下の2つがある。

(1) エンコード/デコードに限るとFPGAのメリットが薄れてきた。FPGAのメリットは、例えば新しいアルゴリズムやフォーマット、プロトコルが出てきた場合に、すぐにロジックを書き換えて対応できることが最大のものなのだが、動画のフォーマットはもう決まっており、そのエンコード/デコード手法もほぼ確立している。

 2020年に最初にビデオアプライアンス向けに発表されたとき、H.264はともかくH.265はまだ使われ始めた(*)ばかりで、エンコーダー/デコーダーも十分に熟していたとは言い難かったが、もう現状ではエンコード/デコード方法は十分確立しており、処理を後から変更する可能性は非常に少ない。

 AV1についても、以前からFPGA用にAV1のエンコーダー/デコーダーIPを提供、さらにそのIPを使ってまずRadeon RX 6000シリーズでデコードを、RX 7000シリーズではエンコードとデコードをハードウェアで行なえるようにしており、こちらも今後大幅に中身が変わる可能性は少ない。となると、FPGAを使うメリットがほとんどない。

(2) その一方でFPGAとASICを比較すると、ロジック密度は一桁違う(ASICで実装していた処理をFPGAに持っていくと、実装には10倍くらいのトランジスタが必要になる)。これは当然実装密度に跳ね返ってくる。つまり無駄にダイが大型化するわけで、消費電力と発熱が増え、おまけにコストまで上がる。また消費電力が上がるということは高速化しにくいということでもある。

 以上のように、中のロジックを書き換える可能性が非常に低い用途であれば、FPGAのままではなくASICに切り替えた方がずっと効率的である。実際にはもう1つファクターがあって、それはASICを作る場合のNRE(初期コスト)が異様に高いので、ある程度数が出ない場合にはASICのコストを回収できないというものだ。

 ただAMDくらいの販売規模であれば、これはそもそも問題にならない。設計のためのコンポーネントはFPGA用にすでにIPのかたちで保有しているから、それをそのまま使えることになる。実際には細かな改良を施した、という話ではあったが。

 またASICを作る場合にはEDAツール(論理/物理設計を行なうための開発ツール)を使う必要があり、これがまた高かったりするのだが、AMDはすでにCPUやGPUのためにこれらのツールを当然大量に導入しているわけで、そうするとNREはそれほど大きいとは言えない。5nmプロセスに関してもすでにZen 4コアやRDNA 3コアで実績を積んでいる。こうなるとASICにしない方がむしろ不思議なくらいだ。

 そんなわけで、これまでFPGAで実装していたエンコーダー/デコーダーを完全にASIC化することで、処理性能を大幅に向上させたのがAlveo M35Dということになる。おもしろいのは、特にAV1の処理のためにAIプロセッサーも搭載していることで、全部が全部ロジックで固まっているわけではない。

 後述するがトータル8コアのCPUも搭載されている。Alveo U30との比較は下の画像のとおりなのだが、この手のスライドとして誤解を招きやすい。

Alveo U30との比較。ラフに言えばH.264だとチップ1個あたりAlveo U30の2倍のエンコード性能であり、カード同士で言えば4倍の性能になる。またAlveo U30はAV1のエンコード/デコード機能は搭載されていない

 チャネル密度とコストに関しては文字通りであるが、圧縮率はH.264とAV1の比較である。Alveo U30はAV1のエンコードができないから、これが可能なAlveo M35Dは最大1.8倍の圧縮が可能という話で、H.264同士で比較したらもちろん圧縮率そのものは大きくは変わらない(これは後述)。

 またレイテンシーも、Alveo U30がH.264/4Kだと最大30fpsのエンコードが可能で、一方Alveo M35DはAV1/4Kで120fpsのエンコードが可能なので、1フレーム当たりの時間で言えば33.3ms vs 8.3msでレイテンシーを4分の1に減らせるという意味で、間違ってはいないが同じH.264同士とフレームレートだと当然同じレイテンシーになる。

4コアのRISC-Vプロセッサーを2組搭載

 さておもしろいのはここからだ。下の画像がそれぞれのチップの内部構造である。

Alveo M35Dの内部構造。カードの価格だが、Alveo U30が799ドル、Alveo M35Dが1万5999ドルで要するに2倍である。ただ処理性能はAlveo M35Dが4倍だから、コストパフォーマンスは倍に改善されたわけだ

 エンコーダーは4つ搭載され、うち2つはH.264/H.265/AV1の兼用、2つはAV1のみの対応となっている。VQ QoEエンジンやVQ Lookaheadは後述する。AIプロセッサーもやはりVQに関係する部分なので、これも後述するとして、特徴的なのが“AI Processor”の下と“PCIe Gen5”の上にそれぞれ位置するクワッドコア・マイクロプロセッサーである。

 Alveo U30の場合はおそらくZynq Ultrascale+のZU5グレードのうち、ZU5EGかZU5EVのどちらかを搭載していると見られるが、ここには1.5GHz駆動の4コアCortex-A53MPと2コアのCortex-R5Fが搭載されている。

 したがってCortex-A53ないしCortex-A57グレードの製品が内部の制御用に搭載されているものだと考えたのだが、なんと質疑応答の答えは「4コアのRISC-Vプロセッサーを2組搭載している」であった。

 「なぜRISC-V」という問いの答えは「最適なプロセッサーを選んだ」というもので、そのIPが内製か外部のものか、性能はどの程度のものかといった具体的な質問も一切明確な回答はなく、唯一の答えが「Alveo M35D内部で必要なさまざまな処理をホストCPUからオフロードするに十分な処理性能を持っており、またエンコード・アルゴリズムの改良に対応する」だった。

 前半は簡単で、エンコーダーの制御や細かいデータのハンドリングなどをホスト側のCPUを使わずにこのRISC-Vコアで実施するというものだ。問題は後半で、現在はまだ具体的になにかあるわけではないが、今後新しいアルゴリズムが登場したような場合、現在の内蔵されるエンコーダー/デコーダーでは対応できなくなる。そうした場合に(性能はともかくとして)その処理を肩代わり可能、という話である。

 実はAMDはRISC-V InternationalにStrategic Member(上から2番目)として加わっており、そしてAMD自身のCPUの設計能力は疑う余地もない。かつてZenコアを開発中に、これと並行してArm v8AベースのK12コア(Zenコアのデコード部をArm v8A対応に置き換えた物)を開発していたことを考えると、自前で開発していても不思議ではない。

 ある程度使い物になるコアができたので、評価も兼ねて外部からは直接触れない所に実装してみる、というのはありそうな話である。もっとも、だからと言って今後AMDがRISC-Vベースのプロセッサー製品を出すか? というとこれはまた別の話であるが。

 ところで先ほどVQという言葉が出てきた。これはVideo Qualityの意味で、要は画質評価である。通常エンコーダーでの画質調整は、最終的にはビットレートで調整するかたちになるが、単にビットレートだけでなく画質を評価するための内部的な指標をいくつか策定し、これを利用して画質を改善するという仕組みがAlveo M35Dには搭載されている。

前半は動画のデコードで、中央のABRスケーラーは複数のフォーマット(例えばYouTubeでは画質が何種類か選べるが、アレだ)を展開するための仕組み、そして最後がエンコードとなる

 先ほどVQ QoEエンジンやVQルックアヘッドという用語が出てきたが、VQ Lookahead Engineというのは上の画像で言えば“VQ解析”という部分で、エンコードされた出力画像を解析し、指標に基づいて画質を数値化するための仕組みである。

 その出力を受け取って、細かく画質を改善するように調整するのが“VQを予測した最適化”の部分で、ここがVQ QoE(Quality of Experience)エンジンとされている部分に相当する。上の画像を見るとここにAIが入るとされているが、最近ではAIを利用して画質の改善や超解像の実現を行なう話はいくつか耳にされているかと思う。実際そうした製品がすでに世の中にはいくつか存在している。

 このVQ PoEエンジンは2つ前の画像の“AI Processor”と連携して動作する格好になると思われる。このAIプロセッサーも詳細は公開されていないが、おそらく連載674回で説明したAIエンジンをそのまま搭載していると考えられる。

 実際にSD解像度(1280×720ピクセル)を200kbpsという低いビットレートでエンコードした際の画質の違いが下の画像で、確かにディテールが大幅に改善されているのがわかる。

顎や頬の周り、左側は結構ブロックノイズが目立つが、右側はそれが綺麗になっているのがわかる

 これは逆に言えば、画質を左並みに落としても良ければビットレートをさらに下げられるという意味でもあり、AV1の圧縮率向上の一助になっているとして良いかと思う。

 連載710回で少し触れたが、インテルはFlex 140/170の後継となるLancaster Soundをキャンセル、Melville Soundを投入するとしているが、投入には相応の時間がかかるだろう。

 その間にAMDはあっさりASICベースでメデイア・トランスコーダーを投入するあたりが両社のアプローチの違いを示していて興味深い。どうかすると、そのうちAIエンジンだけを搭載したPCIeカードも、やはりASICのかたちでリリースされるかもしれない。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください