RECENZE: AMD Ryzen 7 5800X3D - aneb s křížkem po funuse, ale konečně ho mám
Kapitoly článků
Menší novinkou v testování je více testů konverzí videa. Starší verze ffmpegu s x265 knihovnou měla tu potíž, že neumí využít více jak 16 procesorových vláken, samozřejmě jsou tu další aspekty jako samotná konverze, po dobu konvertování nedojde na 100% využití všech šestnácti jader/vláken.
Chtěl jsem tedy testovat nějakou konverzi videa, která je náročnější na systémové prostředky, ale zároveň jsem nechtěl zahodit staré ffmpeg výsledky, které se hodí i pro srovnání se starými procesory.
ffmpeg N-108782-gff3c708686
Nakonec testuji opět ffmpegem, ale v novější verzi, která má v sobě zapečenou libsvtav1 knihovnu, díky které mohu dělat konverzi za pomoci moderního AV1 kodeku. Aby byla nějaká sranda, změnil jsem zdrojové medúzy, video, které se konvertuje je pro změnu v UHD rozlišení, má délku okolo půl minuty, datový tok 140 Mbps a 30 FPS.
Originální video má 517 MB. Po konverzi má výsledné video v AV1 formátu asi 68 MB. Záleží ale na parametru -preset, ten má rozpětí hodnot 0 až 13, přičemž, čím nižší číslo tím je menší výsledný soubor. Testuji tak s dvěma presety, rychlejší(8) a pomalý(4). Tento proces bez problémů využije všechna dostupná CPU vlákna, ale ne vždy všechna na 100%, záleží na dané scéně, která se konvertuje.
V grafech uvádím jak dlouho konverze trvá a jaké byly FPS v reálném čase. ffmpeg používám ve verzi N-108782-gff3c708686-20221022, je to binárka se zapečenou libsvtav1 knihovnou.
Testovací medúzy je možno stahovat zde: https://www.larmoire.info/jellyfish/
Příkaz pro spuštění vypadá takto:
ffmpeg -i jellyfish-140-mbps-4k-uhd-h264.mkv -c:v libsvtav1 -benchmark -preset 4 -pix_fmt yuv420p -crf 30 -an jelly_out.mkv
Nejprve se podíváme na výkon v náročnějším presetu 4. AMD Ryzen 7 5800X3D zde příliš nepřekvapí, extra L3 cache zde zdá se nepomáhá nijak významně a výkon je velmi podobný Ryzenu 7 5700X se 100W napájecím limitem.
V rychlejším presetu se situace opakuje.
ffmpeg N-90810-g153e920892
Jak jsem psal dříve, starší ffmpeg se starší x265 knihovnou zatím házet do koše nechci. Budu ho tedy využívat nadále, zároveň jsem se rozhodl test opepřit tím, že budu zkoušet více instancí najednou. Tím se zajistí větší zátěž CPU a pokud je procesor opravdu dobrý, budou dvě konverze najednou trvat každá stejnou dobu jako jedna samotná. Toto zatím u běžných desktopových procesorů nehrozí, technicky vzato to chce minimálně procesor s 32 jádry. Nicméně ffmpeg těží i z frekvence CPU, L3 cache, propustnosti RAM, takže i mnohojádrové ThreadRippery budou mít problém.
Jedná se o konverzi videa za pomoci x265 knihovny. Na test používám nightly build, konkrétně jsem použil verzi N-90810-g153e920892, kde jsou vylepšení, která konverzi zrychlují a také je přidána podpora pro AVX512 instrukce. ffmpeg v tomto nastavení umí použít maximálně 16 CPU vláken, benefituje samozřejmě z co nejvyššího počtu fyzických jader, velké a rychlé L2/L3 cache, rychlá RAM také konverzi urychluje. Nejdůležitější jsou ale použité instrukce na konverzi, s AVX512 je samozřejmě výkon nejlepší.
Pokud si chcete konverzi vyzkoušet, můžete si ffmpeg s testovacím videem stáhnout zde.
V odkazu ke stažení je verze N-90810-g153e920892.
Stačí rozbalit zip a spustit batku runme.cmd, batka obsahuje následující:
@echo off
echo Simple bench -> look for resulting FPS...
ffmpeg -i in.mkv -c:v libx265 -preset veryslow -pix_fmt yuv420p -crf 26 -an jelly_out_265_26veryslow.mp4
pause
Výsledky uvádím v sekundách, čím kratší dobu konverze trvá, tím lépe.
Výkon ve starší verzi ffmpegu je na úrovni desetijádrového Core i9-10900K, což je vlastně velmi slušný výsledek vzhledem k tomu, že 10900K byla přetaktovaná na 5GHz na všech deseti jádrech.
Dále zkouším spustit ffmpeg dvakrát najednou, výsledek je opět ve formě času.