電脳遊戯の嵐

PC、ゲーム、自転車を中心にぼちぼち書いていきます。
保証対象外となる作業については自己責任で。

エンコード

TMPGEnc Video Mastering Works 6(2017/07/06追記)

前回Geforce GTX1080にした時に思ったより速くなくてがっかりしたのは書いた通りだけど、その後使っているとGPUの使用率が低くなってエンコードが遅くなる現象が出るようになった。
一度エンコードを止めて再開すると直るんだけど、これでは何のためにGTX1080にしたのか分からない。
多少遅くてもTVMW5でも良いかと思っていたけど、流石にこれは困る。
Geforceのドライバーは最新……にし過ぎるとGPGPU系はあまり良くないんだっけ。

いい頃合いだしTVMW6にアップグレードすることにした。
アップグレードライセンスならそれほど高くないしね……

そんな訳でTVMW6で同じテストをしてみた。
gtx1080_21
はや。
やっぱりソフト側が対応しきれてなかったんかな。
GTX1060でも少し速くなる余地あったか?

こうなると高精度ノイズフィルターも期待ですな。
gtx1080_22
これは期待通りの性能。
GTX750Tiでノイズ除去フィルターかけるより速いじゃん!
X万円かかるけどw

新しくなってCUDAの使用効率が改善されてるという解釈で良いのかな。
Geforce GTX1080をTVMW5でCUDA有効にしてエンコードしてる人はTVMW6にした方が良いですよー
というのが今回の検証の結果。
どのクラスのビデオカードから速度差が明確に出てくるんだろうね。

2017/07/06追記
CMカットにTMPGEnc Movie Plug-in Commercial Candidates Detectorを前のバージョンから引き続いて使っているんだけど、CM検出の精度が前のバージョンより上がってる気がする。
バージョンが上がったんだから当然だろと言われればそれまでなんだけど、CM検出した結果を読み込んでからフレーム単位での修正をしていたのが、あまり必要なくなって楽になったのが地味に嬉しかったので追記した。

Gigabyte GeForce GTX 1080 Turbo OC 8G

先日、ASUS TURBO-GTX1060-6Gを買ってTMPGEncを高速化したけど、予想以上に速くなったので欲が出てきた……

GTX1060以上のラインナップを確認すると……

CUDAコア数
(基)
クロック周波数
(MHz)
仮想FLOPS 性能比
(1060=100)
GTX1060(6GB) 1280 1708 2186240 100%
GTX1070 1920 1683 3231360 148%
GTX1080
2560
1733
4436480
203%
GTX1080Ti
3580
1582
5663560
259%
GTX1060比で性能が約50%アップずつ上がっていく。

GTX1070で4.5万、GTX1080で約6.5万、GTX1080Tiで約8万。

実際のところどのぐらいTMPGEncが速くなるのかわからないけど、私気になります!
どれにするかだけど、1060から1070だと中途半端、1080Tiだとやり過ぎ感があるので間を取って1080にする。

買うならどれするべかと。
中古でもいいけど……とか思いつつamazon.comを物色してたら6万ぐらいであったのでそれを買うことにした。
中古でも6万程度だし。
gtx1080_01
買ったのはGIGABYTEのGeForce GTX 1080 Turbo OC 8G
日本には売ってないと思われる外排気モデル。

GTX1060でデカいと思ったけど、それより更に少し大きい。
gtx1080_02
両方共外排気なので構造はよく似てる。
ASUSはフードがしっかりしてて持てるけど、Gigabyteの方は少し柔らかくて持つのを少し躊躇う。

裏面。
gtx1080_03
基盤のサイズはほぼ同じで、クーラーが基板から少しはみ出てたので大きかったんですな。
裏側の放熱板は無し。
8Pinの補助電源ボードは初めて。

まぁ、確認はそこそこにメインマシンのビデオカードを交換して、TMPGEncで比較する。
GTX1060の時にやった亜人ちゃんは語りたいで試す
gtx1080_11
おいー!
遅くなってるやんけ!

ま、まぁ、本命は高精度ノイズ除去フィルターだし(震え声
gtx1080_12
こちらは流石のパワーを見せつけたので安心した。
もうちょっと速くなるかと思ったけどCUDAのコア数が増えて使い切れてないかな。
TMPGEnc5を使ってるけど6にしたら速くなるかなぁ。
試用版の期限切れちった……

まぁ、とりあえずこれでエンコードの高速化はこれで一段落。

GTX1060が余ったなぁ……マイニングでもするかねぇ(ぇ

TURBO-GTX1060-6GでTMPGEnc高速化

よく調べたら少し前のものになるけど、ASCII.jpで比較してた。
やっぱり良いカードになるほど速いのな。

前回TMPGEncを高速化するためにTURBO-GTX1060-6Gを買った。

今回は亜人ちゃんは語りたいでエンコードのテストをしますぞ。
エンコードを少し重くしたいので、フィルターはインターレース解除とノイズ除去(時間軸)の2つ。

ということでそれぞれでエンコードした結果。
encode3_CUDA
GTX1060はえー!
なし→GTX750Tiで279秒短縮。
なし→GTX1060で839秒短縮。
GTX1060でGTX750Tiの約3倍短縮。
ほぼ仮想FLOPS通り?
これってGTX1070にしたら4.5倍短縮できたってことかしら?
750Tiの4.5倍だと1255秒になるからエンコード時間が975秒……になるかどうか分からないから誰か貸して!(ぉ

折角速くなったので高精度ノイズ除去を使ってみる。
encode3_filter
重杉内。
でも暗いシーンで気になるノイズは高精度ノイズ除去の方がキレイになるのよね。
高精度ノイズ除去はCUDAなしではおそらくやる気にならないけど、GTX1060なら何とか我慢できるレベルかな〜
今後は高精度ノイズ除去を追加していく感じで。
CPUは舐めプしてるのでボトルネックはフィルターにある模様。

RyzenでTMPGEnc追試【更新しました】

(4/7:グラフが見づらかったのとAVXの検証する比較対象データが不適切だったので修正しました)

手持ちのメモリーだとRyzen君の性能がうまく引き出せないので一旦メインマシンを6800Kに戻して、しばらくメモリーを入れ替えて検証し直すことにした。

RyzenはメモリーコントローラーのクロックとInfinity Fabricが同期してるのでメモリークロックを上げると性能が底上げされるというアグレッシブな仕様なので、メモリーをOCタイプのにすることにする。
値段との兼ね合いでCORSAIRのVENGEANCE LPXにした。
型番はAmazonで比較的安かったCMK16GX4M2A2666C16。
XMPを有効にしたら普通に2666で動いた。
memory_setting2
やるなCORSAIR。

ただ、OCして再起動すると一度完全にオフになった後で2133で起動してくる。
一度2400にしてしばらく使ってから再起動して2666に設定すると立ち上がってくるから挙動がよく分からない。
GA-AB350M-Gaming3の癖なのかねぇ?
BIOSアップデートで改善されれば良いのだけど。
改善されないようなら別のM/Bも考えるかなぁ。
とりあえず消えたβBIOSを突っ込んでメモリー電圧を盛ったら起動するようになったので判断保留。
AsrockのAB350M Pro4が次の候補かなー

まぁ、それはともかくとして家の部品をかき集めてマシン作った。
しばらくこれで検証するけど、Zippyの電源うるせぇw
OSは一時的なものなのでWindows10の評価版を入れた。

またTMPGEncで比較するのでTVMW6の評価版を両方に入れてテスト。
CUDAが有効になるような局面でどう変わるのかは、Geforceがメインマシンのみでビデオカードを入れ替えないといけないので未実施

ソース1
けものフレンズ「ゆきやまちほー」
ゆきやまちほー書きかったちゃうんかと。
その通りです(殴
encode_filter_source1
インターレース解除のみ。
CUDAを有効にしててもCPUだけでエンコードが完結する。

ソース2
このすば2期「この素晴らしい仲間たちに祝福を!」
キレたウィズ強すぎない?(そうじゃない
encode_filter_source2
インターレース解除と左右のクロップ。
CUDAを有効にしているとCUDAが仕事をする。
(今回はCUDA無効)

まずはRyzenでメモリー速度を変えてエンコード速度が変わるかどうかを確認。
Ryzen 7 1700の定格のエンコード中のクロックは3.2GHzだった。
ちなみにグラフの単位は全部秒です。

ソース1
encode1_memoryspeed
全体的にTVMW5の時より普通に速いんだけど。
メニーコアに最適化されたんかね?
64bitアプリケーションだからかね?
というかメモリーが1RANKだと速くなるの?
原因はよく分からないけどRyzen君が覚醒した!
メモリー速度がDDR2133→DDR2666で3%程度速くなった。

ソース2
encode2_memoryspeed
こっちはDDR2133→DDR2666で2%程度だけどエンコード時間が長いので短縮した時間は長い。
このソースだと測定ミスを疑うほど圧倒的にCore i7が速いね。

DDR2666でAVX、AVX2を無効にして、マルディプレクスバッファサイズの設定を変更。
ソース1
encode1_avx
無効にしたら3%速くなってCore i7より速くなった。
AVXが苦手なのは本当なのね。

ソース2
encode2_avx
こちらは7%速くなったけどCore i7には遠く及びませんな。

今度はメモリーを2666で動かしたままOCしてみるよ。
ソース1
encode_oc1
3.6GHzが最速になってそれ以上OCすると遅くなっていく……
これは動いているけど不安定だと思った方が良いね。

ソース2
encode_oc2
3.7GHzが抜けてるのは気にするな!
こちらはクロック通りに上がっていくねぇ。
ソース1はミスったのか頭打ちになってたのか。

結論
メモリーは1Rankがいいぞ!
メモリークロックは速い方がエンコードも誤差範囲レベルではあるものの確実に速くなる。
CPUクロックはオーバークロックした方が速くなるけど、適度に喝入れをしないと逆に遅くなるケースもある。
AVX, AVX2は両方無効にした方が速くなる。
基本性能のゴリ押しで命令系の不利はひっくり返せる局面もある。
ひっくり返らない部分はCUDAが使われる場面だと思われるので、CUDAを有効活用すると逆転しないまでも差が縮まると思われる。
今度はCUDAを使った時の検証するか。

Ryzenと6800Kのエンコード比較のまとめ

今更だけど前回のエンコード結果のまとめ。
前回フィルタの話を入れてなかった。
encode_filter
常にインターレース解除の2倍fps化で適応補間のみ。以上!

CPU 周波数(GHz) 時間(Sec) 消費電力(W) エンコード速度(fps) 1Wあたりのfps
Core i7 6800K 3.4 907 142 96.2 0.677
4.0 789 183 110.6 0.604
Ryzen 7 1700 3.0 986 121 88.5 0.731
3.6 855 167 102.0 0.611
3.7 824 170 105.9 0.623

グラフにしてみた。
encode_speed1
絶対的な速度は6800Kの勝ち。
OCしても6800Kの優位は変わらず。

encode_pwr_con1
消費電力はRyzenが明らかに少ない。
OCすると差が詰まるけど。
それにしてもOCすると消費電力増えるな〜

encode_efficiency1
消費電力効率はRyzen優位すな。
消費電力を考えると定格一択かw


Ryzen 7 1700でTMPGEnc

Ryzenがエンコードが速くなると聞いてウズウズするオレガイル。

2ch見たら良い感じに人柱が。
買うなら1700のコスパが良いようね。
マザーは買うならB350でBiostar、MSI、戯画かなぁ。
全体的に載ってるSATA少ないな。

X370で6ポート
B350で4ポート
戯画のB350はM.2と排他だけど6ポートついてるな。

あと、LANが基本的にカニィィィィ!!!!
ワークステーションクラスじゃないとBroadcomとかIntelは載せてくれないか。
K8N-LRっていうAMDとIntelとnVidiaのパーツが載ったマザーがあってな……w

それはそうとMicro-ATXな候補。

BIOSTAR B350GT3 Ver. 6.x
MSI B350M MORTAR
GIGABYTE GA-AB350M-Gaming 3
ASRock AB350M Pro4
ASUSはPCI-Expressの構成で予選落ち

Biostarかなぁと思っていたら戯画のが発売された。
MicroサイズのAM4対応ゲーミングマザーがGIGABYTEから登場(ASCII.jp)
しかも秋葉に在庫があるとのツイートが!

自転車の練習を終えてから久々に秋葉に出動。

着いてCPUが売っているのを確認してからマザーを確保。
金曜入荷分は即日完売だったらしいけど、この日はまだ5枚ぐらい残ってた。
回った店にはマザーが売ってたし、秋葉に限って言えば行けばそれなりに買えるようになり始めたのかな。

そんで購入するなりそそくさと帰宅w

次の日早いし、帰って6800Kで比較するためのベンチマーク取らないといけないしな!
というかAM4向けのクーラーないやんけ……
リテールクーラーが付属してる1700にしておいて良かった。
リテールクーラーはこんな感じ。
wraith_spire

CPUとの設置する場所が銅になっていてそれなりに冷えそう。

そんで翌日に組み始める。

リテールクーラーは大きくないからケース内の作業が楽で良い。
ryzen_in_pc

意気揚々と配線をして起動。
Windows10だし特に問題ないだろう→起動中にBSOD

なん……だと……

まぁ、メモリーのセッティングが速いとダメだっていうからな!
2400MHzから1333MHzに変更したらさすがに起動するべ!

ちなみに我が家にあるDDR4のメモリースペックはこんな感じ。
CrucialのBLS8G4D240FSA。
memory_spec
Ballistix Sportってヤツですな。

起 動 し ま せ ん /(^o^)\ナンテコッタイ

よく分からないからWindows入れ直すか→データコピーでBSOD

ま だ メ モ リ ー か 。

2枚挿しはやめて1枚にするか……

あれ……メモリーの設定を適切にしたら起動したんじゃ……
が、既にOSの領域はフォーマット済み!残念大魔王。
        ____
      /   u \
     /  /    \\    諦めて入れ直すお……
   /  し (○)  (○) \
    | ∪    (__人__)  J |
   \  u   `⌒´   /

しかしこんなこともあろうかとバックアップは取っておいたのだよ!
マイドキュメントはOneDriveで自動バックアップだしクラウド万歳だな。

で、復旧もそこそこに比較するぜよ。

ありきたりなCINEBENCHとかどうでもいいよね。
一応やったけど、巷での結果通り。

肝心なのはメインで使うTMPGEnc。
うちはまだTVMW5なんだけど。

メモリーは2133に設定したら2枚挿しで動作するようになったのでそれが比較対象。
やっぱりデュアルチャネルじゃないとパフォーマンス出ないね。

ソースは24分15秒。
エンコードの設定は適当マン。
1PASSはこんな感じ(雑)
映像の設定
encode_setting1

レート調整モードの詳細
encode_setting2

音声の設定
encode_setting3

GOP構造
encode_setting4

詳細設定(雑)
encode_setting5

その他は特に弄ってないけどこんな感じ。
encode_setting6

結果。
6800K定格は15分7秒。
4
エンコード中の消費電力は142W

Ryzen 7 1700は定格だと16分26秒。
no title
エンコード中の消費電力は121W

3.6GHzで14分15秒。
6
とりあえずは動くけどTMPGEncを完走するにはVcoreに喝入れが必須。
SoC Vcoreと両方設定ができるけど、どちらを盛るのが良いのかわからないね。
エンコード中の消費電力は167W

3.7GHzで13分44秒。
7
エンコード中の消費電力は170W
正直安定しない。
どこに喝入れすれば良いのかねぇ。

メモリーのレイテンシを緩めたら一応2400でも使えるようになった。
クロックを上げると結構早くなる。
memory_setting
ただ、そうするとCPUのOC耐性に余裕が無くなる感じだけど、クロックあたりの性能は上がったかな。

3.5GHzで3.6GHzとほぼ同等の14分14秒に。
5

ちなみに6800Kを4.0GHzにOCすると13分9秒。
no title
Vcoreを0.1Vほど少し盛ったらRyzenの比じゃないぐらい安定。
エンコード中の消費電力は183W

ということでTMPGEncの速さに限れば6800Kの勝利。消費電力多いけどw
ただ、Ryzen君舐めプしてるんだよね。
CPU使用率30%台ってやる気なさすぎやろw
ryzen_namep

Core i7の方がプロセス使えてるけどコア数の違いなのかアーキテクチャーの違いなのかは今回の比較だけでは判断できないな〜
core_i7_fullload
6900Kを使えば条件が一緒になるけど、そうしたら価格帯が違いすぎるし、そもそも買えないっすw

エンコードをシングルで実行するなら6800Kの方が速くて安定してるから良いね。
Ryzenは初物だけあって安定しませんぞw
ただ、2つ同時にエンコードするならシングルで余裕のあるRyzenの方に分があるかな。
その辺の検証はまたの機会に。
プロフィール
アクセスカウンター

最新コメント
  • ライブドアブログ