ffmpeg NVENC에 대한 (개인적) 평가 및 요약

2350 단어 NVENCffmpeg

목적



흥미로운 자료를 2개 찾았습니다.

Video Encode and Decode GPU Support Matrix
Nvidia제 GPU의 NVENC 대응 상황이 기재되어 있다.

여기,
NVENC(하드웨어 인코더)가 칩 상에 몇 개인가 표기되어 있다.
GTX 제품은 대부분 1이다. (뭐 2라도 좋지만)
즉, CUDA 코어의 수에 좌우되지 않고 GPU상에 하나 존재하고,
그 성능은 등가라고 생각된다.

Nvidia NVENC
여기 NVENC에 대해 위키가 존재한다.

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)
우분투18.04
GPU
81

i7-7700
8
GTX1060(Pascal)
CentOS6
GPU
60


GPU 비교




NAME
Architecture
Cores
시계
MEM
TDP


Tesla K20c
Kepler
2496
706
GDDR5 5GB
225W

GTX660
Kepler
960
1033년
GDDR5 2GB
140W

GTX980
맥스웰
2048
1216년
GDDR54GB
165W

GTX1060
Pascal
1280년
1708년
GDDR56GB
120W


고찰



K20c와 GTX660은 코어 수가 압도적으로 다르지만 거의 같은 인코딩 시간입니다.
라는 것이 모든 것을 이야기하고 있을 것 같다.
그리고 코어 수와 상관없이 세대가 새롭다면 빠르다.
메모리와도 별로 관계없는 것 같다.

결론



누군가 Turing

좋은 웹페이지 즐겨찾기