RECENZE: AMD Ryzen 7 7700X a ASUS ROG STRIX B650-A GAMING WIFI
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 7700X se zde snaží, ale na procesory s více jádry logicky nemá výkon.
V rychlejším presetu je Ryzen 7 7700X pořád na čtvrtém místě, povšimněte si však ThreadRipperu 1950X, který zde vytahuje zuby.
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ší.
Ryzeny první generace mají nižší výkon při použití AVX2 instrukcí, každé FPU má k dispozici 128-bit šířku pro vykonávání AVX/AVX2 instrukcí, až Zen2 navyšuje šířku na 256-bit a to razantně zlepšuje výkon v AVX2 aplikacích. První generace má tak výkon v AVX2 nižší oproti Intel procesorům, proto je Ryzen 5 2400G pomalejší, než starší Xeon X5650, který má k dispozici pouze SSE4.2 instrukce.
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.
Dále zkouším spustit ffmpeg dvakrát najednou, výsledek je opět ve formě času. Jak můžeme vidět, AMD Ryzen 7 7700X takto u dvou úloh zdvojnásobí čas konverze oproti situaci, kdy se konvertuje jen jedno video. Zajímavé je však to, že výkon je velmi podobný dvanáctijádrovému Ryzenu 9 5900X, ten je rychlejší u obou instancí jen o asi tři vteřiny.