RECENZE: MSI MAG Z790 TOMAHAWK WiFi DDR4 a Intel Core i9-13900K
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. Zde jsem v rámci změny paradigmatu narazil na podivné chování, při prvním spuštění doběhl test s bezkonkurenčně nejlepším výsledkem, což jsem očekával. Jenže tento test vždy zkouším vícekrát a podruhé to dopadlo značně hůře a Core i9-13900K se umístila za osmijádrový Ryzen 7 7700X.
Když jsem test zkusil do třetice, dostal jsem se mezi Ryzen 9 5900X a 7900X. Nevím proč, ale v některých situacích, kdy nedojde na využití všech dostupných vláken docházelo k preferenci E-Cores, což může dost znatelně zahýbat s výsledným výkonem. I když jsem počítač nechal odpočinout, na chvíli ho vypnul, tak jsem vždy dostal pokaždé jiný výsledek. Toto je něco, co nemusí potěšit uživatele, kteří by chtěli ffmpeg používat nějak více a je možné, že jsou i další programy, kde lze narazit na tento problém. V grafu tak uvádím nejlepší a nejhorší naměřený čas z deseti celkových pokusů.
V rychlejším presetu je Core i9-13900K opět nejrychlejším procesorem.
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.
Výkon ve ffmpegu je celkem slušný, ale na Zen4 procesory s dvanácti a více jádry zde Core i9-13900K nestačí.
Dále zkouším spustit ffmpeg dvakrát najednou, výsledek je opět ve formě času.
Jak můžeme vidět, Intel Core i9-13900K v této situaci přidá asi jednu minutu času pro každou instanci oproti situaci, kdy běží jen jedna instance, ale opět nestačí na AMD Ryzen 9 7950X.