CUDAによるGPU高速処理って一体…

**「Adobe Premeire Pro CS5に搭載されたAdobe Mercury Playback Engineは、64-bit OSとマルチコアプロセッサに最適化され、さらに指定のCUDA対応ビデオボードによる高速処理にも対応しています!」
**5月以降、100万回ぐらいこのセリフを言っているような気がしますが、それはさておき…。

このCUDA対応GPU高速処理を使った場合と、CPUのみで処理した場合にどれほどパフォーマンスに違いが出るかを、MPEG2ファイルへの出力で比較してみました。今回検証に使ったのは、こんな環境です。

このマシンで、HDV素材を使った10分間のシーケンスを作成し、GPU高速処理対応「RGBカーブ」エフェクトの適用割合を変えた6種類のシーケンスを作成しました。

  1. HDV素材10分間のシーケンス(エフェクトは一切無し)
  2. RGBカーブエフェクトを10%(1分間)だけ適用
  3. RGBカーブエフェクトを20%(2分間)だけ適用
  4. RGBカーブエフェクトを50%(5分間)だけ適用
  5. RGBカーブエフェクトを100%(10分間まるまる)適用
  6. 動きを付けたタイトルを(1.)のシーケンスに10分間追加(GPU高速処理エフェクトは無し)

それぞれで、GPU高速処理とCPUのみによる処理で、Adobe Media Encoder CS5経由でMPEG2形式の1440×1080/29.97iのファイルを出力する際に、どの程度差が出るかを測定しています。(※ちなみにMercury Playback Engineでは、MPEG2などへのエンコード処理には関わっていません。)

結果としては、GPU高速処理を10%でも利用しているシーケンスであれば、GPU高速処理のメリットが大きく出てきます。たとえば、10%の場合、GPU高速処理はCPUのみの場合よりも、30%以上高速に処理が完了します。これが100%の場合だと、CPUのみで毎秒約6.6フレームの処理速度であったのに対し、GPU高速処理では毎秒約26.8フレームと約400%の処理速度の差が出てきます。(※この%は、シーケンスのフレーム数を処理にかかる秒数で割った、処理速度で計算しています。)

GPU高速処理とCPUのみの場合の比較(シーケンス尺を1としています)

また、テロップ処理のレンダリングでは、GPU高速処理に対応していないため、CPU処理とほぼ同程度の処理となっています。

全ての環境で同様の結果が出るわけではありませんが、今後の機材選定の参考となれば幸いです。