笠原一輝のユビキタス情報局

ペガシスがCUDAに賭けた理由




 ペガシスが、CUDA対応の「TMPGEnc 4.0 XPress」をNVISIONに合わせて発表し、NVIDIAのデモでも使用されたことは、すでにお伝えしているとおりだ。

 NVISIONの最終日には、ペガシスへの共同インタビューが実現した。このインタビューを中心に、ペガシスがCUDA対応によって目指すこと、および対応の詳細を明らかにしよう。

●世界市場に打って出たいペガシスと、CUDAをアピールしたいNVIDIAの思惑が一致

NVIDIA Multimedia Product Marketing Manager Patrick Beaulieu氏(左)とがっちり握手するペガシス代表取締役CEOの海老根崇氏(右)

 ペガシス代表取締役CEOの海老根崇氏は今回のCUDA対応の狙いを「特に海外市場において、弊社の認知度を上げていく武器にしたいと考えて、NVIDIAと協力してCUDA対応版を作っていくことにした」と説明する。「今回NVISIONにあわせてCUDA対応版の開発を発表したのは、海外のエンドユーザーに対しての認知度を上げていきたいと考えたからだ」と言う。

 近い将来には、OEMメーカーが出荷するNVIDIAチップ搭載ビデオカードにCUDA対応のTMPGEnc 4.0 XPress体験版をバンドルする、などの協業さえ考えられるという。

 おそらく、日本国内の多くのPCユーザーにとって、TMPGEncがどんなソフトウェアで、ペガシスがどんな会社か、改めて説明する必要はないだろう。しかし、一歩海外に目を向けてみれば、TMPGEncの知名度は他のエンコードソフトウェアに比べると、今一歩であることも事実なのだ。

 ペガシスの関係者ははっきりとは言及しなかったのだが、今回の協業はNVIDIAの方から積極的に働きかけた節がある。NVIDIAは、このイベントにおいて、日本の関係者だけでなく、他の地域の報道関係者に対しても、ペガシスとのミーティングをセットしており、TMPGEnc 4.0 XPressのCUDA対応を積極的に訴求している。

 それだけ、NVIDIAにとってCUDAの普及は重要で切迫した課題なのだ。Intel、AMDとの戦いに備えるためにも、CUDAが普及しつつあり、多くのソフトウェア開発者がCUDA対応ソフトウェアに取り組んでいるということを印象づける必要がある。ハイエンドユーザーに知名度が高いTMPGEncがCUDA対応したのは、大きなトピックとして強く訴えたい出来事なのだ。

 そうした両社の思惑が一致して、今回のCUDA対応版TMPGEnc 4.0 XPressが誕生したのだ。

●CUDA対応は自動になる予定

 エンドユーザーにとって気になるのは「CUDA版TMPGEnc 4.0 XPress」の配布時期と方法だ。ペガシス グローバル営業部 部長の齋藤要氏は「既存のユーザーに対しては基本的に従来のバージョンアップと同様に無償で提供する予定だ」と述べた。

 齋藤氏によれば基本的にはCUDA対応版という特別なバイナリが作られるのではなく、将来リリースされるTMPGEnc 4.0 XPressのバージョンアップに含まれることになるという。

 現在のベータ版ではCUDAを利用するかどうかは、TMPGEncの環境設定の項目にMMXやSSEなどのCPUの追加命令セットと同じように、ユーザー側で明示的にオン、オフするような仕様になっている。これについて齋藤氏は「今の時点ではこうした設定もどうするかは未定だ。将来的には、自動でベンチマークを行ない、CPUよりもGPUで処理する方が速いとなった場合にのみCUDAの機能を有効にするなどの仕組みを考えたい」と語った。

 強制的にCUDAを使わないのは、ユーザーの環境によっては、CUDAを利用するよりもCPUを利用したほうが速い場合というのが存在する可能性があるからだ。

現時点のベータ版ではCUDAのオン、オフはユーザーが明示的に行なう必要がある CUDAをオフにした時の結果、1分23秒となっている CUDAをオンにすると48秒でエンコードが可能。なお、GPUはGeForce 8800M GTS、CPUはCore 2 Duo T5550(1.83GHz)

●GPUで実行する場合のボトルネックはCPUとメモリバスの帯域

 それでは、GPUで処理する場合に比べてCPUで処理してしまった方が速い例というのはどういう場合が考えられるのだろうか。齋藤氏は「今回のCUDA版の場合、メモリにある映像のデータをGPUにコピーする。その場合に、メモリ、CPUバス、PCI Expressバスなどを経由するので、それなりの時間がかかる。弊社のWebサイトで公開したデータでもGPUで処理する最初の方はCPUで処理する場合に比べて遅くなっているが、それはこれが理由だ」と説明する。

 それに関してはやや解説が必要だろう。図は齋藤氏の説明をもとに筆者が描いたものだが、通常のプロセスの場合は[1]のようにユーザーが入力したファイルは音声と分離され、ユーザーの指定したフィルタ処理が行なわれる。フィルタ処理が終了したあとで、処理はエンコードエンジンに送られ、解像度や圧縮形式の変更などの処理が行なわれる。

 CUDAで実行する場合には[2]のようなプロセスになり、ファイルが入力され、映像と音楽に分離されたあと、メモリに読み込まれている映像がGPUに転送され、PureVideoエンジンを利用してデコードされ、フィルターがかけられる。フィルターの処理そのものはCPUより圧倒的に高速なのだが、メモリバスやCPUバス、PCI ExpressというGPUのローカルメモリに比べて圧倒的に遅いバスを経由しなければならない。フィルタ処理が終わった後も同様で、結果を再びCPUやメモリに書き戻す必要があり、その間に処理は中断する必要がでてくるのだ。

 ペガシスのWebサイトで公開されているテスト結果のうち、テスト1/2だけCPUが上回っているのは、これが最大の理由だという。このことは、GPUを利用したコンピューティングが抱える共通の問題で、今後の課題と言えるだろう。逆に言えば、ここがボトルネックなので、そこを強化する(メモリをより高速なものにする、CPUバスのクロックを引き上げる)などすることにより性能が向上する可能性は高いと言える。

 同じ理由から、フィルターについてCPUでの処理とGPUでの処理を混ぜると、CPUとGPUでやりとりが生じるため、性能が低下することになる。齋藤氏によればこれを避けるため、「今回のフィルターのCUDA対応に関しては、一部の例外を除き、ほとんどのフィルターをCUDA対応にしている。そうしなければ性能低下の可能性があるからだ」とのことだった。

CUDAを利用してエンコードする場合のプロセス(筆者作成)

●将来はエンコードエンジンもCUDAに対応したい

ペガシス代表取締役CEOの海老根崇氏

 CPUやメモリからGPUにデータをコピーする時間がボトルネックになってしまうのであれば、最初からすべてをGPU側で処理してしまえば、問題は解決するのではないかと考えたくなる。つまり、エンコードエンジンも含めて完全にCUDAに対応し、すべての処理をGPU側でやって欲しい。

 これは、エンコードのトータル性能という意味でももちろん効果がある。エンコード処理の大部分はエンコードエンジンにおける処理であり、そこがGPUによる処理に対応することは効果があるからだ。

 今回フィルターだけの対応となったことについて海老根氏は「今回はタイムツーマーケットということもあり、より迅速に対応が可能なフィルターのみにしようと最初から決定していた。弊社のメインユーザーでもあるヘビーユーザーの多くはエンコード時にフィルターを駆使しており、それでも充分効果があると判断した」と説明する。

 これに関しても若干の解説が必要だろう。そもそもTMPGEncの成り立ちというのは、現ペガシス取締役兼CTOの堀浩行氏が開発したMPEG-2エンコードエンジンから発展してできあがったソフトウェアだ。

 堀氏がスクラッチからアセンブラ言語などを駆使して、カリカリにチューニングして高効率で高品質なエンコーダエンジンができあがったのがTMPGEncのエンコードエンジンだ。それが基になり、ペガシス創業後により使いやすいユーザーインターフェイスなどを追加して、今の「TMPGEnc 4.0 XPress」という製品に至っている。

 逆に言えば、エンコードエンジンはバリバリにx86プロセッサに最適化されたものであり、ほかのソフトウェアのように上級言語でセオリー通りに書いたものではないため、GPUに対応させるとなると、ほぼスクラッチから書き直しするのに近い作業規模になると考えられる。

 したがって、ペガシスの関係者もエンコードエンジンのCUDAの対応時期を明確にするのは慎重だ。ただし、海老根氏が「CUDA版フィルターの反響を見て、反響が大きいようであれば積極的に取り組んでいきたい」と語るように、CUDA版エンコードエンジンの開発意向は明確と言ってよいだろう。ユーザーとしてはぜひとも期待したいところだ。

 なお、TMPGEnc 4.0 XPressでもMPEG-4 AVCのエンコードエンジンはMainConceptというサードパーティから供給されたコードが基になっている。そのように、すでにあるCUDA版エンコードエンジンを取り込むという可能性もあるのだろうか。「そうした形も検討しており、あり得ることではあるが。現時点では何も決まっていない」(海老根氏)とのことだった。

●豊富なプログラミング資料とC言語の経験が活きる

 海老根氏は「今回のCUDA版の開発にあたり、すでにプログラミングのための資料などが豊富に存在していることなどのNVIDIAのサポート体制は重要だった」と述べた。「NVIDIAへの問い合わせにはすぐにレスポンスが返ってくるなど、非常に迅速に開発を行なうことができたという。

 また、「今回のCUDA版の開発にかかった時間はプログラマの学習期間などを入れても、始めてから3カ月だった」と言い、新しいアーキテクチャへの取り組みとしては、異例の短さですんだという。CUDAの最大の特徴である、すでにあるC言語などの経験を利用して、GPUコンピューティングに対応したプログラムを作ることができるというメリットによる成果と言えるだろう。

□NVISION08のホームページ(英文)
http://www.nvision2008.com/
□NVISION08 レポートリンク集
http://pc.watch.impress.co.jp/docs/2008/link/nvision.htm

バックナンバー

(2008年8月29日)

[Reported by 笠原一輝]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.