↑前回です。タイトル通り続きなんで見てもらうほうが助かります。
皆様こんにちは。TOM1192です。
前回HDRのメタデータを取り扱ったまま、NVEncを通すお話をしました。
そのあと、当のプロファイルをくださった、4K HDR anime channeさんよりHLGのプロファイルも頂いております。
さて、そんなことではなく、当方先日というか当記事より1日前(11/7)にRTX3090を手に入れました。
コア数が膨大に増えたRTX3090ならNVEncも速くなるはず!とたかをくくってたわけなんですが、速くなるどころか遅くなっちゃたんですよね…
ってなわけで、エンコード速度の向上を兼ねてプロファイルいじりを行ってみました。
そもそも、このプロファイルでいじれる要素はほとんどありません。
このため、いじるというよりは文言の追加でパフォーマンスを調整する形になります。
構文はこちらから探して追加します。
使うのは
--output-bufと--output-threadです。
--output-bufは出力のバッファサイズを指定するオプションで、ストレージ負担率を制御することができます。
デフォルトは8MBで最大は128MBだそうですが、今回は最大の半分の64MBを指定しました。
これで出力ファイルが64MBごとに書き込みが行われることになります。
--output-threadは出力用スレッドを割当するかどうかの設定で、これを有効化することでメモリ消費増大と引き換えに多少エンコード性能が向上することがあるようです。
双方とも設定したところ、ほんの少し向上しました。
実のところ、一番有効的なのはGPU自体のOCなんですが、RTX3090はコンデンサ問題を抱え込んでおり、そのせいでブーストクロックが2GHzを下回るようにドライバレベルで制御されています。
GPUOC用ソフトとして有名な「MSI AfterBurner」でも、コアクロックは1.98GHzが限界なようで、ソレ以上は伸びません。
結果から言えばRTX2080Ti比で90%前後止まりで伸びなかったわけなんですが、RTX3090ことAmpereアーキテクチャの特性を調べてみると、Streaming Multiprocessor増加量がCudaコア数増加に対して低いんですね。
で、さらに調べたらStreaming MultiprocessorがCudaコアに対して一番多いのはKeplerみたい。
そして、NVEncの世代は変わってないそうなんで、ブレイクスルーはなくあっても微増というわけです。
コレ、NVEncを飛ばすことだけ考えるならクロックが伸びるRTX3070とかのほうが優秀とか言わないよね…?
検証できるかたに検証していただきたいぜ…(予算がついたら来年度に調達するか…)
というわけで、RTX3090くんは現段階ではNVEncには向いてないってことです。
NVEncをしたいだけなら現段階ではRTX2080Tiが最適解ということになります。
かなり不完全燃焼でしたが今回はここまで。
今は画質向上というか輝度表現のほうにシフトして調整していきますよ。