TMPGEnc s CUDA - první zkušenosti
Pár dní po uvedení jednoúčelového enkodéru BadaBoom sloužícího pro převod videí pro iPhony iPody a kompatibilní zařízení byla uvedena aplikace TMPGEnc zvládající převod videí všemi směry. Není sice dokonalým švýcarským nožem, ale sám nevím o univerzálnějším a jednodušším nástroji.
O této novince jste se mohli dozvědět již v době uvedení betaverze v novinkách.
Firma Pegasys od doby betaverze značně zapracovala na funkčnosti a tak všichni, kteří mají grafickou kartu kompatibilní s CUDA mohou zrychlit své stroje (výjimkou jsou majitelé karet s 8800GTX/GTS s jádrem G80, kde zatím podpora není)
Informace z webu firmy slibují výrazný nárůst výkonu, podle toho, jaké použijete filtry a kodeky (také filtry). Různé kodeky mají jiný poměr využití CPU i CUDA. Nárůst rychlosti se na slabších PC s výkonnou grafikou (hráčské sroje s dualcore) může lišit i násobně. Čím více filtrů v praxi použijete, tím rychlejší může být konverze proti použití samotného CPU.
Aplikace je shareware a plná cena je 100dolarů bez 5centů. Shareware verze neumožňuje ukládat projekty a každých 5minut vám do videa vloží vodoznak.
Moje zkušenosti
Instalace je zcela bezproblémová a to i přes starší verzi. CUDA není po instalaci implicitně zapnutá, ale jednoduchým zatržítkem ji můžete aktivovat. Při prvním spuštění se spustí optimalizace a můžete dekódovat.
Pak si stačí zvolit zdrojové video - já vybral DVD stopu z HDD o velikosti 6,5GB s českým zněním Dolby digital - 5.1
Převáděl jsem do: H264, 2pass, average 950kb/s, max 5300kb/s a audio z DD do 2.0 AAC 128kb/s
Testovací sestava:
CPU | Q9300 OC 3000MHz |
---|---|
Motherboard | Asus Maximus Formula |
RAM | 4096 MB- Corsair 1066 |
Grafika | Asus 9800GT Matrix - ForceWare178.24 |
HDD | zdroj 1TB Samsung, Cil A7K1000 Hitachi |
systém je na dalším disku, žádný swap |
Dále najdete již výsledky rychlosti převodu. Očekával jsem aspoň 50% nárůst - tím míním 150% rychlost převodu a realita mě zaskočila.
Ještě budu pátrat, kde je chyba, ale při použití filtru (kodeku) H264 došlo k propadu výkonu na 75%. Nevím, zda je vinna relativně málo výkonná grafika a výkonný procesor, nebo zatím malá optimalizace, ale i přesto, že jsem zkoušel více nastavení a i převod do formátu MPEG2, byl výkon mizerný. Pro srovnání jsem provedl testy s vypnutou CUDA ve verzi 4.2.6.266 a výsledky byly +- 3 sekundy. Stejně bídně dopadl i převod MPEG2 do MPEG2 se zmenšením cíle a rekompresí zvuku.
verze 4.2.6.266 -aktivovaná CUDA - jen rekódování a změna velikosti
verze 4.2.6.266 - aktivovaná CUDA - rekódování, změna velikosti, úprava barevnosti a odstranění šumu s def. nastavením
Závěr
Určitě se jedná o jednu z prvních aplikací a smysluplné využití CUDA. Bohužel, nárůst výkonu se dá spíše očekávat u majitelů PC s méně výkonnými CPU (většina filtrů je optimalizována pro vícejaderný provoz) a vysoce výkonnými grafikami (spíše GTX260 a 280). Při běžném použití jsem na svém stroji zaznamelal propad výkonu. Přitom po aktivaci CUDA výpočtů se opravdu rozjede i grafická karta, je aktivovaný 3D režim a po chvíli se i pěkně roztočí větrák. Ale prostě výsledky nejsou optimální, zřejmě vázne nějaká optimalizace v TMPGEnc enkodéru. Samozřejmě jedná se o první verzi programu s podporou CUDA, ovšem i tak mě výsledky trošku zklamaly - snad se to v budoucnu zlepší.
EDIT Vašek Vlček: Takže celá situace okolo TEMPGEnc enkodéru je celkem zajímavá. Ten totiž (alespoň podle neoficiálního vyjádření vývojářů přímo z Nvidie) využívá akceleraci pomocí CUDA rozhraní pouze pro filtry, které můžete aplikovat na video. Tam je potom nárust viditelný, ale musíte jich pochopitelně nasadit více najednou. Při samotném procesu enkódování naopak TEMPGEnc rozhraní CUDA prakticky nevyužívá, případně je špatně optimalizovaný a díky tomu pak dojde dokonce ke zpomalení výkonu. Nejde tedy o chybu na straně CUDA, ale opravdu na úrovni progamu společnosti Pegasys. To ostatně potvrzuje i program Badaboom, který opravdu dokáže video enkódovat výrazně rychleji než při využití procesoru. Každopádně se pokusíme tomuhle tématu ještě věnovat dále v nějakém budoucím článku...