#目的
興味深い資料を2つ見つけました。
Video Encode and Decode GPU Support Matrix
Nvidia製GPUのNVENC対応状況が記載されている。
ここ、
NVENC(ハードウェアエンコーダ)がチップ上にいくつあるか表記されている。
GTX製品は大半が1である。(まぁ2でもいいんだけど)
つまり、CUDAコアの数に左右されずGPU上に1つ存在し、
その性能は等価であると考えられる。
Nvidia NVENC
ここにNVENCについてwikiが存在する。
NVENCにも世代があり、現在第6世代(Turing)であることがわかる(初めて知った)。
つまり、同世代のNVENCならその性能は等価であると考えられる(2回め)。
エンコしかしないのに高価なGPU買いたくないし・・・
検証を行った。
#検証環境
webmファイルを用意したが、相性が良くなかったのでCPUでmp4へ変換しておく。
各エンコに使用したコマンドは以下
#CPU enc
ffmpeg -i tasty.webm -c:v h264 tasty.mp4
#GPU enc
ffmpeg -i tasty.mp4 -c:v h264_nvenc tasty_nvenc.mp4
動画データ
335 Seconds
4K
webm : 587MB
MP4 : 455MB
NVENC : 94MB
劣化具合?いえ、知らない子ですね。
##ハードウェア構成
面倒くさいので全てバラバラです。
ハードウェアエンコなので、NVENC性能が測れてそうならそれでいいじゃないですか。
|CPU|Threads |GPU|OS| enc | TIME|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|E5-2687W
v4 x2|48|k620|CentOS6|CPU|248|
|i9-9900k|16| Tesla K20c
(Kepler)|CentOS7|GPU|475|
|i7-8700k| 12| GTX660
(Kepler)|CentOS7|GPU|473|
|i3-9350KF|4|GTX980
(Maxwell)|Ubuntu
18.04|GPU|81|
|i7-7700|8|GTX1060
(Pascal)|CentOS6|GPU|60|
GPU比較
NAME | Architecture | Cores | Clock | MEM | TDP |
---|---|---|---|---|---|
Tesla K20c |
Kepler | 2496 | 706 | GDDR5 5GB |
225W |
GTX660 | Kepler | 960 | 1033 | GDDR5 2GB |
140W |
GTX980 | Maxwell | 2048 | 1216 | GDDR5 4GB |
165W |
GTX1060 | Pascal | 1280 | 1708 | GDDR5 6GB |
120W |
#考察
K20cとGTX660はコア数が圧倒的に違うが、ほとんど同じエンコード時間である、
ということがすべてを物語っていそう。
そしてコア数とか関係なく世代が新しいければ速い。
メモリとかもあんまり関係なさそう。
#結論
誰かTuringください