NVIDIAとペガシスは10日、CUDAによるGPU処理に対応したTMPGEncのデモンストレーションを行った。TMPGEncのCUDA対応に関しては、すでにNVISION 08にて公開されており、今回はあらためて国内で説明会を開催したものである。

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

動画エンコーダーのTMPGEncといえば、インテル製CPUへの最適化等で知名度の高いソフトであるが、CUDA対応版はこれをNVIDIAのGeForce GPUにも最適化したバージョンとなる。現時点ではまだ開発段階であり、ユーザーへの公開はまだ先となる予定だが、ペガシスの代表取締役CEOの海老根崇氏は、CUDAのメリットとして、簡単にプログラミングが可能な点、短期開発への高い対応力、高負荷ほど高パフォーマンスを発揮する点などを挙げている。現時点ではフィルタリングおよびデコーディング部分がCUDAに対応しており、エンコーディングへのCUDA対応は詳細未定ながら2009年の予定とされている。CPUとGPUとでは演算の得意分野が異なるため、処理内容によってはCUDAによる処理でCPUと比べ400%以上の速度を実現できるとしている。

TMPGEncのロードマップ

デモンストレーションは、15秒のHDV動画(1440x1080)をDVD SD画質(720x480)の動画へと変換する作業でかかる時間を、CPUによるエンコード結果とCUDAによるエンコード結果とで比較するものだった。まず、CUDA対応版のGUIが示されたが、基本的には通常版と変わらない。異なるのは環境設定のCPU/GPU設定という箇所に「NVIDIA CUDA 2.0使用」というオプションが表示される点。このオプションは、システムがCUDAに対応しているか対応していないかを自動判別し、対応している際は表示、対応していない際はグレーアウトすると説明している。

TMPGEncのGUI。CPU,GPUという項目に「Enable NVIDIA CUDA 2.0」という項目が用意されている

実測では、CPUのみを使用した場合では3分58秒、CUDAを用いた場合では41秒。ただし、CPUによる処理の方が高速な場合もあるとされる。基本的にはGPU処理の方が速いとのことだが、システムメモリに展開したデータを、バスを通じてGPUへと転送し処理を行うため、この転送に伴う時間がフィルタの負荷の程度によって問題とされる。低負荷な場合ではCPUによる処理の方が速いという逆転現象が生じる可能性もあり、また、高負荷な場合では転送にかかる時間を加えてもGPUによる処理の方が速いという結果を生むとのことだ。

CPUのみのエンコードに要した時間は3分58秒

CUDAでのエンコードに要した時間は41秒と、大幅な時間短縮を実演した

ペガシスでは、エンコード開始時にCPUとGPUに同じ処理を投げ、その結果からどちらを利用するか判定するベンチマーク処理を加えることで、どちらを選べばより高速化という点をユーザーが気にせず利用できるものとしたい、としている。そのほかにも、SLIへの対応についても現在研究中であることを明かしている。