NVISION 08にて、ペガシスは同社製エンコードソフトウェア「TMPGEnc 4.0 XPress」に、NVIDIA CUDAテクノロジをテスト実装することを明らかにした。同件はNVIDIAとの共同発表となっており、両社による現地カンファレンスで現状が詳細に説明されたので、その内容をお伝えしたい。

現地カンファレンスではペガシス代表取締役CEOの海老根崇氏(右)が直接その詳細を説明。NVIDIAのマルチメディア部門を担当するプロダクトマーケティングマネージャであるPatrick Beaulieu氏(左)とがっちり握手

NVIDIAのCUDAテクノロジは、最新世代では最大240個という並列処理プロセッサコアを搭載するGeForce GPUにおいて、その並列処理能力を活用するとされるCプログラム言語環境だ。ペガシスでは、同テクノロジをテスト実装するとして、まずはTMPGEnc 4.0 XPressのフィルタ処理部分に対応させた。ベータ版のソフトウェアを用いてのベンチマークテストでは、CPUにCore 2 Quad Q9450、GPUにGeForce GTX 260という環境で、最大約446%の速度向上を実現したことが公開されている。

公開されたベンチマーク結果について

テスト環境
CPU Core 2 Quad Q9450
Memory 2GB
GPU GeForce GTX 260
OS Windows XP SP2
テスト内容
テスト1 フィルタ指定なし(インタレース解除、リサイズが動作)
テスト2 2D、3Dノイズ除去を追加実行(テスト1+2D、3Dノイズ除去
テスト3 輪郭強調を追加実行(テスト2+輪郭強調)
テスト4 スマートシャープを追加実行(テスト3+スマートシャープ
テスト5 色調補正を追加実行(テスト4+色調補正)
テスト結果
テストタイプ CUDA実行 CPUのみで実行 CUDA対CPU比率(%)
テスト1 2803 5253 53.36%
テスト2 1377 1667 82.60%
テスト3 1217 576 211.28%
テスト4 993 224 443.30%
テスト5 928 208 446.15%
HDVファイル(1,440×1,080)を、MPEG-2 DVDテンプレート(720×480)でエンコードしたときの、3分間のエンコードフレーム数

このテスト結果では、適用するフィルタの数が多いほど、CUDAによるパフォーマンス向上の幅が大きいことがわかる。一方でフィルタの数が少ない場合は、CPUのみで処理した方がパフォーマンスが高くなる場合があることも見てとれる。

その理由だが、CUDAを利用したTMPGEncのフィルタ処理では、おおまかに、まずCPU側が受け取ったイメージはパケット単位に分割され、そのパケットがGPU側にコピーされる。GPUは受け取ったパケットを各プロセッサで並列処理し、最後にその結果をCPU側にコピーして戻すという流れが実行される。

並列処理に優れるGPUを利用した方が、フィルタ処理それ自体は「圧倒的に高速」(同社)なのだそうだが、最初に分割してコピーし、それをGPUが受け取り、最後にCPUに戻すというタスクがタイムロスとなる。そのため、適用するフィルタの数が少ない場合は、CPUのみで処理する方が結果としては高速になる場合があるのだという。

フィルタ処理それ自体は、前述のようにGPUで実行した方が高速のため、フィルタ処理が"重いもの"であればあるほど、GPUで実行するメリットが大きくなるというのが特徴だ。

ところで、このテストではGPUにGeForce GTX 260という割とハイエンドな製品が利用されている。そうなると、ローエンドなCUDA対応GPUで果たしてCPUを上回る効果があるのか? というのが気になるところではある。これについては、ローエンドGPUであってもCPUよりはフィルタ処理に関する並列性に優れるということと、前述した通りの、フィルタ処理の"重さ"が結果に影響するという理由から、「CUDA対応GPUであれば、どの製品でも高速化する余地が存在する」と説明されている。

公開されたベンチマーク結果以外にも、実際に、CPUにCore 2 Duo T5550、GPUにGeForce 8800M GTSを搭載するノートパソコンで効果を確かめるライブデモが披露された。画像はそのライブデモ時の適用フィルタ

左がCUDA、右がCPUで処理した場合の結果で、その違いは一目瞭然

エンコーダへの対応も

発表されたのはCUDAの"テスト実装"であるが、製品版での本実装=ユーザーへの提供は既に決定事項だ。提供時期こそ確定していないものの、既存のTMPGEnc 4.0 XPressユーザーに向けては、今後の無償アップデートで適用される予定とされている。なお、メーカー製PCのバンドルアップデートについては、各PCメーカーの対応次第とのこと。

ちなみに、CUDA対応版のTMPGEnc 4.0 XPressといっても、通常のTMPGEnc 4.0 XPressとバイナリを分けるというようなことはせず、同一バイナリで、CUDA対応GPUを備えるPCで利用する場合にはオプションでCUDA利用を選択できる、という実装をする。関連して、製品版に向けての予定として、例えば、CUDA対応GPUを搭載するPCでの動作において、CUDA利用のオプションを有効にした場合に速度メリットがあるのかどうかをソフトウェアが自動判別する仕組みの導入なども考えられているそうだ。

画像はベータ版のソフトウェアのものだが、チェックボックスでCUDA利用を選択できるようになっている

ところで、今回はフィルタ処理部分に限ったCUDA対応となっており、エンコード処理部分への対応は見送られているが、「エンコーダへの対応も前向き」というのがペガシスのスタンスであることが述べられている。同社では、「現在、HDムービーは一般的になり、このままではCPUのみに依存するエンコードに限界が訪れるのではないかという危惧があった」としている。まずは、複雑なエンコード処理部分に比べて早期に対応が可能なフィルタ部分での実装が行われた……というのが現状である。

国内有数のエンコードソフトウェアであるTMPGEncがCUDAに対応するというインパクトは大きく、ユーザーはもちろん、NVIDIAからの期待も大きい。例えばCUDA対応のグラフィックスカードにTMPGEncをバンドルしたり、TMPGEncがインストールされたメーカー製PCでCUDAをアピールするなど、CUDAの普及に向けた取り組みが一段と活性化するという可能性があるだろう。