CUDA働いてんのか?ってのが気になった..
昨日書いた記事で、「PremiereProCCのエンコードの際、CUDAって働いてんのか?」てこのがどうしても気になったので追加で検証してみました。
使用機材
- CPU 第2世代 i7 2600 (4コア8スレッド 3.4GHz Sandy Bridge)
- マザーボード ASUS P8H67-V
- グラフィック ELSA GeForce GTX 1050 2GB S.A.C
- メモリ 16GB(8GB×2) DDR3 1333
- SSD Samsung 240GB
- 電源 玄人志向550W
- CPUクーラー 虎徹(巨大空冷)
- ケース ANTEC の静音ケース SOLO
- OS Win10 Pro
i7 8700Kはオーナーの元に送ったので、我が家の機材のみでの検証。
4K60P CUDA 有無エンコード テスト内容
同じ素材・同じ尺(同じプロジェクト)・同じ出力設定において、以下の4つの出力を試します。
- CUDA ON / フィルター無し
- CUDA ON / フィルターあり
- CUDA OFF / フィルター無し
- CUDA OFF / フィルターあり
コーデック H264. / ビットレート 20Mbps / VBR1パス
先に・・フィルターありで書きだしたファイルはこちら。わかりやすく、どぎついフィルターをかけております。
CUDAのON/OFF設定方法
一応書いておきます。PremiereProCCの場合、ファイル→プロジェクト設定→一般設定 のココをいじります。
4K60P エンコード結果
結果から書きます。
- CUDA ON / フィルター無し → 10分50秒 まぁ、予想通り。前回と殆ど変わらず。誤差のレベル
- CUDA ON / フィルターあり → 18分02秒
- CUDA OFF / フィルター無し → 11分3秒 前回と同じ。1とほぼ変わらず。
- CUDA OFF / フィルターあり → いきなり「残り時間2時間以上」の表示。途中でやめて測定せず
予想通りでした。ここまで劇的に違うとは。もう少し詳しく見ていきます。
4K60P エンコード 詳細解説
上の結果をもう少し詳しく見ていきます。
2017年10月のWindows10の大型アップデートより、タスクマネージャでGPUの仕事の具合が見れるようになったそうです。なので、エンコード中にタスクマネージャを起動させてGPUの様子をスクショしましたので見比べてください。
1.CUDA ON / フィルター無し 10分50秒
前回感じた通り、CUDAがオンにも関わらず、GPUが全く働いていません。書き出し開始を押した瞬間に一瞬グラフが上がるものの、あとは全く働きませんでした。
2.CUDA ON / フィルターあり 18分02秒
フィルター有りにするとGPUが働いています。CopyとCompute_0 というもののグラフが常に上がっていて、全体で常時30~40%と表示されていました。CUDAが働いてエンコードが速くなっていると考えていいでしょう。
3.CUDA OFF / フィルター無し 11分3秒
CUDAが無いにも関わらず、1のCUDA ON / フィルター無し と変わらないタイム。
だって、1ではCUDA ON の設定でも、CUDAは働いてないんだから同じタイムなのは当然ですね。
要は、このタイムがCPUの「地力」を示すと思われます。
i7 2600 の場合は実時間の約5.5倍かかる。
CPUの性能をアップさせなければエンコードタイムをこれ以上縮めるのは難しいということだと思います。
4.CUDA OFF / フィルターあり 遅すぎて測定せず
問題の設定(笑)同じプロジェクトファイルを開いて、premiereの設定でCUDAオフにした途端、ソフトの動きが遅くなる。
書き出し開始を押した途端「2時間」の文字。スクショは1時間50分ですが、その後また増えたり、減ったりしてました。どんなに贔屓目で見ても確実に1時間はオーバーしたでしょう。また、もう送ってしまって手元に無いので試せませんが、いくら最新の8700Kだったとしても、前回のテストでi7 2600の2倍弱だった事を考えると、2600+CUDAの方が速いのではないかと思います。ただ、8700Kにはハードウェアエンコーダーが乗っかってるのでこれがどの程度頑張れるのか?は気になるところ。
4K60P CUDA 結論
今回のテストから、以下の事が言えると思います。
CUDAの恩恵は、フィルターをかけない限りはほぼ無い。
実験の通りです。なので、フィルターかけない時はCPU性能アップがそのままエンコード時間の短縮に繋がると言えます。この意味でCPUの高速化は必須。
フィルターをかける場合(殆どの場合かけると思いますが)はCUDA必須。
フィルターをかけると、当然ながらエンコード前に「フィルターがかかったコマ」を作る作業があり、それをエンコードする事になる。
CUDAが無いとそれらすべてをCPUでやる事になり、最新CPUであってもとても遅くなるのではないかと。体感的にフィルター無しの場合の5~10倍程度の時間が必要かも。
CUDAがある場合はどういう処理の振り分けか?はわからないがCPUとGPUで作業が分配されて、結果、高速になる。(おそらくフィルター処理をGPUが担当?)
CUDAが使えないソフトだとどうなってしまうのか?逆に興味がある(笑)
結論ありません → GeForce か? Quadroか? Radeonか? CUDAか? ATI Streamか?
今回は我が家の構成がNVIDIA GeForce GTX1050だったことから、CUDAに焦点を当てましたが、NVIDIAからはGeForceの他にもQuadroという製品も出ているわけで。QuadroでもCUDAの恩恵に預かれる。どっちが動画編集向きか?と言われると、一般的にはGeForceはゲーム用、Quadroはクリエイター用って事でQuadroに分があるというイメージもありますね。
更にAMDからはRadeonが出ていて、ATI StreamというAMD版CUDAって感じの同じ技術がある。
どれがいいのか?は予算もあるし動画編集ソフトによってCUDAにしか対応してないもの、両対応のもの色々あるのでそれによるとも思う。両方に対応してないソフトの場合はCPUの速さに依存することになる。
ただ、今回の実験から4K編集に快適なPCの必須条件はある程度分かってくると思います。
全部当たり前ではあるんだけれど・・・
高速なCPU
CUDAを使おうが使うまいが、エンコード時間の短縮にはGPUと共にまず重要。出来るだけ速いもの。
高速なグラボ
CUDAを使う事でCPUのみの時と比べて「劇的に」速くなる。(特に低速CPUの場合?w)レンダリング全般を高速化するので、エンコード時間短縮だけじゃなく、編集時の快適さにも大きく寄与する。
高速&大容量なメモリ
メモリの速さもエンコード時間の短縮に寄与すると思うが、どの程度か?は不明。最低16GBは欲しい。
高速なSSD
最近はCPUやメモリバスの高速化に伴い、SATAの速度が足りなくなってきており、ストレージの遅さがPC全体の速さの足を引っ張る原因になっている。昔のIDE的な。状況。
SSDの速さはエンコードのタイムにはそれほど関係ないと思う。今回、エンコード中にタスクマネージャを見てた時もディスクアクセスはほぼ無かった。ただ、大きな動画データをいくつも切り貼りするような「編集時」にはSSDの速さは編集の快適性に直結する。
エンコードは寝てる時にすればいいので、とにかく快適に編集出来る事が最低限必要。
という事は言える。
その意味では我が家のPCはギリギリって感じかも笑
一度、16コア&Quadroのボードでどんなもんなのか?経験したいものである。