NVIDIAは、パーソナルコンピューティングにおけるグラフィックスカードの重要性に関する説明会を開催した。そのなかで、GPUによる動画のエンコード支援がデモンストレーションされた。
説明会の本題は、GPUをパワーアップすることによるPCエクスペリエンスの向上をアピールする内容。現在でも利用できるPDFドキュメントのGPUアクセラレーションや、GPU本来の機能であるゲームパフォーマンスの向上などはこれまでにもたびたび紹介されてきた。今回はこれらに加え新たに、GPUによる動画エンコード支援機能が紹介された。
GPUによる動画エンコード支援は、MPEG-2映像ソースをiPod用プロファイル(H.264)へとエンコードした際に要した時間をCPUの場合とGPUの場合で比較している。GPUエンコードにはElemental Technologies製のエンコードソフトウェア(開発中のα版)、CPUによるエンコードではSilisoft製のエンコードソフトが用いられているほか、CPUはCore 2 Extreme QX6700で共通、GPUはGeForce 8800 GTを搭載している。エンコードソフトウェアが異なるものの、CPUを用いたエンコードでは約42.1秒を要したのに対し、GPUによるエンコードでは約15.7秒という結果となった。α版でおよそ3倍の速度でエンコードできた計算になるが、さらに最適化が進めば3倍以上の速度でエンコード可能になると述べている。
GPUによるエンコード支援機能を組込んだElemental Technologies製のエンコードソフトウェア。この説明会に先立ち、Elemental Technologiesも「GPUアクセラレーションを用いた初のH.264エンコーダー」と題しリリースを発表している。NVIDIAによれば、同ソフトウェアは、Adobe Premiere Proのプラグインとして今夏頃の提供を予定しているとのこと |
今回の動画のエンコード支援機能では、「CUDA」を用いてGPUで演算を行っており、専用回路を組込んだPureVideo(映像再生支援・高画質化機能)とは異なる。CUDAはCやC++のような開発言語でもあるが、CPUのみならず、GPUにも最適化されているのが特徴とされる。CPUとGPUにはそれぞれ得手不得手があり、例えば分岐やループなど難しいトリッキーなコードを含むものはCPUが有利、しかしキャッシュだけでは対応できない巨大なデータセットが連続する場合などではGPUが有利(並列化が処理を高速化できるもの)。こうしたCPUが有利な部分、GPUが有利な部分が混在する場合、CUDAであればそれぞれが得意とする分野を分担するよう制御できると説明。同社ではこのように、CPU・GPUを協調させ各種演算を行うことを「ヘテロジーニアス・コンピューティング」と呼び、CUDAによる最適化の結果、従来のものと比べ大幅な高速化が実現したと紹介した。
CPUとGPUの構成を比較したスライド。比較のためではなく、トリッキーなコードを含むものはCPUが有利、高度に並列化されたアプリケーションはGPUが有利となると説明 |
CPUとGPUを協調させ、それぞれが得意とする処理を割り当てること、それを「ヘテロジーニアス・コンピューティング」と呼ぶ。この中核となるのがCPUとGPUの双方を制御できる「CUDA」である |
GPUによるエンコードは、ソフトウェアメーカーのCUDA採用が進むことが普及の鍵だ。この点に関して、飯田氏は、「現在のエンコードソフトウェアでは、既にマルチコアCPUへの最適化は完了しており、CPUに関する部分においてこれをさらに性能向上させることは難しい」、「現在のビデオアプリケーションは、ユーザーからすれば多機能化は進んでいても処理スピードは遅くなっていると感じていることだろう。ソフトウェアメーカーとしてもこれはなんとかしなければならない。だからこそCUDAを用いることで可能な"高速化"は彼等にとっても魅力なはずだ。そして我々はそれをサポートすることができる」と述べた。GPUによる各分野のアクセラレーションが、ソフトウェアメーカーにとって"自社製品をより魅力的なものにすることができる機能"と認識されれば、自ずと採用メーカーが増えるとの見解だ。