このページの本文へ

最新パーツ性能チェック 第68回

CUDA+TMPGEncで爆速エンコード!?

2008年11月23日 20時00分更新

文● Jo_Kubota

  • この記事をはてなブックマークに追加
  • 本文印刷

CPU別エンコード時間

 では、まずCUDAを有効にした時のCPU別エンコード時間を見てみよう。
 ざっくりとCUDAの威力を見るため、あえて比較用CPUにCore 2世代で最も遅いCeleron Dual-Core E1200を用意した。その結果がグラフ3だ。ビデオカードにはGTX 260を使っている。
 グラフを見て驚くのは、フィルタを無効にした際、1.6GHzのE1200と3GHzのE8400が全く並んでいるということ。また、フィルタを有効にして負荷を高めてもE1200はそれほどE8400やQ9550に離されていない。遅いCPUを使った場合でも速いGPUを積んでいればCUDAの恩恵により、CPUの差が思ったより開かないということが分かる。もちろん、E1200にGTX 260というアンバランスな組み合わせで使う人はほとんど居ないと思われるが、CUDAの活用度が高いアプリケーションを使う場合、CPUよりもGPUの方に比重が移るということは覚えておいた方がいいだろう。

CPU別 エンコード時間

【グラフ3】CPU別エンコード時間(GTX 260使用/単位:秒)

GPU別エンコード時間

 続いてはグラフィック内蔵チップセットのGeForce 9400からGeForce GTX 280のOCモデルというハイエンドまで各世代を揃えて、GPUによってどのくらいエンコード時間が変わるのかを見てみよう。
 まずはCPUにQ9550を使用した場合(グラフ4)。基準としてみるのは、フィルタなし+CUDA無効のエンコード時間12秒だ。ソースが10秒なので、1.2倍の時間でエンコードが完了していることになる。そしてCUDAを有効にするとフィルタなしの場合、CUDA無効時よりもエンコード時間が2秒ほど遅くなっている。つまりフィルタなしで再エンコードする場合、CUDAを使わない方が早いのだ。これは軽い処理では、計算時間よりもCPU-GPUの振り分け処理するオーバーヘッドの方が大きくなってしまうためと思われる。
 同様のことがパターン1とパターン2でも起こっており、9400~9800 GTを使う場合は軽いフィルタ処理ならCUDAを無効にしてCPUで演算させた方が速いケースもあるということだ。もっともこれはCPUにQ9550を使っているからで、もっと遅いCPUなら逆転することも予想される。逆にもっと速いCPUを使うと、9800 GTでもCUDAの効果が全く現れない可能性もある。
 そしてうって変わってパターン4と5ではCUDAを無効にすると劇的にエンコード時間が長くなった。もっとも速いGTX 280 OCとの差は実に6倍にまで開き、GeForce 9400と比較してもCUDAを有効にした方が8%ほど速くなっている。劇的に重いフィルタ処理を実行するなら、とりあえずCUDAを有効にした方がいい、というわけだ。
 またGTX 260とGTX 280 OCは安定して速く、他のビデオカードとのCUDAにおける性能差は圧倒的だ。

GPU別エンコード時間

【グラフ4】GPU別エンコード時間(使用CPU Q9550/単位:秒)

 フィルタなしの時のエンコード速度はQuadだから速いのだろうか?というわけで、同じテストをE8400を使って行ったのが、グラフ5だ。
 結果、フィルタなし+CUDA無効では14秒となり、Q9550のときより2秒ほど遅くなった。CUDAを無効にした状態で比較するなら、やはりE8400よりQ9550の方がやや速いようだ。
 CUDAを有効すると、並びも傾向もQ9550の時と同じグラフとなり、若干の誤差はあるもののエンコード時間はほぼ同じとなった。CUDA有効時の2.83GHzのQ9550と、3GHzのE8400には大きな差はないと言っていいだろう。

GPU別エンコード時間

【グラフ5】GPU別エンコード時間(使用CPU E8400/単位:秒)

(次ページへ続く)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

ピックアップ

ASCII.jpメール アキバマガジン

ASCII.jp RSS2.0 配信中