abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    8.11. 00:33 | Nová verze

    Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 10
    8.11. 00:22 | IT novinky

    Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.

    Ladislav Hagara | Komentářů: 25
    7.11. 13:00 | Bezpečnostní upozornění
    Nové vydání zlib opravuje několik problémů při kompresi a dekompresi dat, přetečení bufferů, čtení mimo vyhrazenou paměť, únik neinicializovaných dat. Zvlášť významné jsou chyby v inflateGetDictionary(), inflateSync() a gzwrite(), které mohou způsobit poškození paměti. Vysoká relevance - zlib používá řada systémových i aplikačních komponent.
    vencour | Komentářů: 2
    7.11. 12:25 | Bezpečnostní upozornění
    Digicert hlásí neoprávněné čtení archivních zákaznických údajů. Došlo k němu po migraci z února 2025, po níž se interní systém, dříve dostupný jen přes VPN, stal přístupným z internetu. Chyba v oprávněních umožnila nově vytvořeným účtům číst archivní záznamy. K přístupu k datům mělo dojít mezi 27. červnem a 2. červencem 2026. DigiCert neoprávněné čtení potvrdil až 19. října 2026. Problém zpočátku vyhodnotil jako tvorbu účtů, ne jako … více »
    vencour | Komentářů: 3
    7.11. 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 1
    7.11. 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    7.11. 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 1
    6.11. 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 6
    6.11. 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    6.11. 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 3024 hlasů
     Komentářů: 35, poslední 6.11. 23:27
    Rozcestník

    Dotaz: Jak vyždímat z procesoru maximum?

    4.8.2009 22:29 hufhendr | skóre: 33 | blog: U hufhendra
    Jak vyždímat z procesoru maximum?
    Přečteno: 1442×

    Zdravím,

    potřeboval bych nějak přinutit systém, aby jeden program (mencoder) dostával mnohem více výkonu procesoru. V jádře mám (snad dobře) zakompilovanou podporu pro SMP i Real Time Clock, mplayer mám s podporou RTC, zkoušel jsem zvyšovat prioritu přes renice -20 PID, nastavil jsem obě jádra natvrdo na max 1.8GHz, experimentoval jsem s příkazem chrt, ale pořád je to málo. Přitom ale vidím, že nepočítají obě jádra na plný výkon a dokonce jsem zahlédl, že mi ten proces občas usíná.
    Nechce se mi kupovat nový procesor a věřím, že existuje způsob jak ten proces přibít natrvalo na 98%, jen už nevím jak dál.

    Předem děkuji za každou radu.

    Odpovědi

    4.8.2009 23:01 jirkamailto | skóre: 31
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

     No je vubec otazka, zdali program ma podporu pro SMP, umi vyuzivat vice jader. Pokud ano, tak se podivejte, jestli v softwaru mate zapnutou tuto volbu.

    4.8.2009 23:33 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Díky, ačkoli mám přes globální USE nastavenou podporu SMP pro všechny, konkrétně u mplayeru není ani zapnutá ani vypnutá, není tam překvapivě vůbec. To mě nenapadlo. Při enkódování videa je mplayer spuštěný hned 3x. Nevím ale, co konkrétně který z nich dělá, 2 z nich berou z procesoru mnohem méně.
    Mplayer-smp v portage nevidím, byla by cesta přilepit tento mplayer nějak přes afinitu na 1. jádro a vnutit mu nejvyšší prioritu?

     

    5.8.2009 07:39 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    Přitom ale vidím, že nepočítají obě jádra na plný výkon
    Môžeš to nejak kvantifikovať? Ako to zisťuješ a čo vidíš? Nemôže to byť tým, že mencoder čaká na I/O? Skúšal si ionice? Skúšal si okresať iné služby bežiace na tom systéme?

    Ja práve bežím mencoder na jedno-processorovom systéme a load je konštantne na 100%.
    5.8.2009 08:12 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Tak tohle mě vůbec nenapadlo, možné to je. Disk nijak zvlášť nebliká, vypadá v pohodě, ale je fakt, že už kdysi dávno mě překvapil nebezpečně špatnými hodnotami při čtení i zápisu.
    Vidím to jednoduše přes gnome-system-monitor nebo htop, vždy je jedno jádro zatížené víc, pak se třeba po čase prohodí, obě naplno nejedou nikdy, ale jedno si na 100% sáhne - nedrží se tam ale konstantně pořád jako třeba při rekompilaci systému.
    Ionice zkusím, kolem toho čekání na data by mohl být problém, jak to mohu prozkoumat a odladit víc?

    5.8.2009 08:12 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    Prva otazka je, ci samotny program je napisany tak, aby vedel svoju pracu rozdelit na viacero procesorov, ako bolo naznacene vyssie.

    Druhy problem je, ze pri spracovavani vacsieho mnozstva udajov - co zmienene programy zjavne robia - skor ci neskor dojde k situacii, ze je potrebne tieto udaje nacitat z pamate, vyprazdnit cache pamat pre nove polozky, zmenit zaznamy v TLB a pod. Vsetky tieto operacie su z pohladu procesora velmi pomale a pocas ich vykonavania jednoducho nema co robit. Optimalizacia pozostava v takych upravach aplikacie a prostredia, aby k tymto preruseniem dochadzalo co mozno najzriedkavejsie. Upravy a optimalizacie su mozne na viacerych miestach:

    - Prekladac moze na zaklade urcitych algoritmov ci heuristik robit mikrooptimalizacie za ucelom lepsieho vyuzitia registrov procesora a cache pamati ci pouzivania prednacitavania udajov. Ako "pouzivatel" mozes skusit prelozit konkretnu aplikaciu (alebo kniznicu vykonavajucu "kriticky" algoritmus) s optimalizacnou volbou -Os namiesto obligatneho -O2. Sice to vypne niektore optimalizacie, ale zmensi to kod, a teda viacej kodu sa zmesti do cache pamate, a teda sa nemusi citat z pomalej hlavnej pamate.

    - Operacny system moze optimalizovat vyuzitie prekladovej tabulky TLB. V poslednych verziach FreeBSD sa za tymto ucelom implementovali tzv. "superpages", t.j. pamatove stranky premenlivej velkosti, potencialne ovela vacsie ako bezna stranka. Tym moze jeden TLB zaznam adresovat viac pamate a teda aj cela TLB prekladova tabulka moze adresovat viac pamate naraz. Informaciou o superpages v Linuxe nemozem sluzit. Ako "pouzivatel" mozes patrat, ci takato funkcia (alebo podobne funkcie) sa v jadre nachadza, a ak ano, skusit ju pripadne zapnut, ak je vypnuta. Dobry napad je aj upgradovat na novsie jadro; nedavno sa v jadernych novinach objavila pekna sprava o tom, ako drobne mikrooptimalizacie v kode spravy pamate vykonostne pomohli aj mnohym inym inym oblastiam.

    - Nakoniec mozno pouzit upravy samotneho algoritmu tak, aby lepsie vyuzivali cache pamat. Zvycajne sa jedna o velmi neintuitivne algoritmy riesenia problemov; hladaj "cache oblivious algorithm", ak si programator, rozhodne odporucam niektore si len tak pre ilustraciu vyskusat. Ako "pouzivatel" nemozes patrne tento druh optimalizacie pouzit.

    Nakoniec len dodam, ze velkym spomalovacom su IO operacie. Stretol som sa s programom, ktory vytvaral znacne mnozstvo docasnych suborov. Zatial co jeho beh nad normalnym diskom trval cca 2 minuty, presunutim na memory disk sa doba skratila pod 30 sekund.

    5.8.2009 12:40 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Našel jsem v jednom diskusním fóru k mplayeru, že podporu SMP nemá a ani se neplánuje, protože nejužším hrdlem je stejně sběrnice a navíc by to bylo moc pracné. Každopádně se to nějak dělí na 3 stejné procesy.

    Programátor nejsem, spíš normální uživatel, používám 64bit jádro, SLAB allocator; mohlo by pomoci přejít na SLUB? K těm superpages, včera jsem zrovna náhodou překládal jádro 2.6.30 a všiml jsem si volby CONFIG_DEFAULT_MMAP_MIN_ADDR (65536). Může to být ono?

    Mplayer jsem zkusil přeložit znovu CFLAGS="-march=core2 -Os -pipe" emerge mplayer, ale asi to nebude dobře, protože při kompilaci jsem zahlédl -O4 -march=native. Stejně ani s tímto novým mplayerem na 100% nedosáhnu a přitom nestíhá.

    Možná to opravdu bude zakleté v disku, rád bych to hodil do RAM, jenže 8GB je už docela dost.

     

    6.8.2009 19:57 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    používám 64bit jádro, SLAB allocator; mohlo by pomoci přejít na SLUB?

    To je alokátor jederné paměti. Ta s počítáním mplayeru nemá nic společného.

    CONFIG_DEFAULT_MMAP_MIN_ADDR

    Hodí se taky přečíst nápovědu ;) CONFIG_DEFAULT_MMAP_MIN_ADDR omezuje adresu, kam uživatelský proces mmapuje paměť, zespoda. Je to preventivní bezpečnostní opatření (které se začalo používat jako reakce na poslední nalezenou bezpečnostní chybu v Linuxu). Opět nemá vliv na výkon. V praxi akorát tak zabije virtuální stroj, který se snaží emulovat bootovací režim i386 v86.

    CFLAGS="-march=core2 -Os -pipe"

    Co vás lidi furt k optimalizaci na velikost? Vždyť moderní hyperrychlé x86 procesory se naopak vyznačují monstrózní keší (jeden z důvodů obrovského příkonu).

    při kompilaci jsem zahlédl -O4 -march=native

    USE=custom-cpuopts

    6.8.2009 23:46 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Zkusil jsem i ten SLUB alokátor, ale ačkoli můj subjektivní pocit byl, že se to mírně zlepšilo, stejně to nestačilo.

    CONFIG_DEFAULT_MMAP_MIN_ADDR: už jsem nevěděl kudy kam, zkusil jsem to :) A stejně i když už mám přeložené jádro 2.6.30, nemohu to využít, protože mě hrozně zlobí ovladače grafiky Intel. Nechtělo se mi to řešit, takže jsem na 2.6.28

    CFLAGS="-march=core2 -Os -pipe" stejně nepomohlo. Snažil jsem se mít ten systém naladěný co nejlépe už od začátku a tak nepomohlo vlastně skoro nic, co jsem zkoušel. Přesto má příběh šťastný konec ...

    5.8.2009 15:22 M. Lox | skóre: 12
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    A jaké používáš volby při kódování? Třeba x264enc je vícevláknový, ale filtry (-vf) nejsou, takže pokud např. používáš deinterlace filtr a kóduješ do H.264, tak chvíli poběží obě jádra, chvíli jenom jedno, podle toho, ve které části zpracování videa se mencoder zrovna nachází.
    make menuconfig, not war!
    5.8.2009 15:59 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    No vlastně já to kóduji obráceně, z H.264 do Mpeg2, ale moc šancí nějak to ovlivnit nemám - co jsem se díval, tak snad jen keyint, vqscale a vqmin, ostatní si poručí server. Pro mne je důležité, aby to běželo opravdu realtime, protože v obýváku je televize a pomalý výpočet způsobuje záseky.
    Tohle jsem odchytl, běží to 3x, 1 bere 80%CPU, další dva kolem 12:


    mencoder -ss 0 -quiet /data/video/Terminator/The.Terminator.1984.1080p.BluRay.x264-hV.mkv -quiet -quiet -oac copy -of mpeg -lavfopts format=asf -mpegopts format=mpeg2:muxrate=500000:vbuf_size=1194:abuf_size=64 -ovc lavc -channels 2 -lavdopts debug=0:threads=2 -lavcopts autoaspect=1:vcodec=mpeg2video:acodec=ac3:abitrate=384:threads=2:keyint=1:vqscale=1:vqmin=2 -subcp cp1250 -subfont-text-scale 3 -subfont-outline 1 -subfont-blur 3 -subpos 98 -aid 0 -sid 0 -quiet -quiet -ofps 24000/1001 -quiet -quiet -af lavcresample=48000 -srate 48000 -o /tmp/javaps3media/mencoder1249479680448

     

    5.8.2009 16:10 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    A není nějaká možnost ten původní formát rovnou dekódovat na obrazová data (digitální nebo analog), aby se nemuselo přes mpeg2?

    5.8.2009 16:20 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Bohužel ne, počítač funguje jako DLNA server.
    V době psaní článku jsem ale neměl žádný skutečně HD film a ani FullHD televizi.

    5.8.2009 16:50 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Aha, díky za zajímavý článek a nakopnutí poučné diskuse pod ním.

    6.8.2009 13:54 msaft | skóre: 7
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Imho na konverzi h264 --> mpeg2 je neslozitejsi dekodovani h264. To je ale skutecne jednovlaknova vec. Pro vetsi vykon bud zakompilovat vicevlaknovy ffmpeg-mt (experimentalni?) nebo dekodovat s hw podporou (nvidia vdpau).

    6.8.2009 23:50 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Díky moc, vlastně to tu naznačovali skoro všichni. Ten ffmpeg-mt byl skvělý tip!

    5.8.2009 16:10 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    Příloha:

    Ještě jsem si všiml, že jde přiložit obrázek, takže posílám screenshot když opravdu nestíhá. Všechna menší (i když veliká) videa šla v pohodě, ale s rozlišením 1920x1040 nastal problém. Odhaduji, že by mi stačilo vyždímat z počítače celkově tak 10% navíc a bude to OK.

    5.8.2009 18:36 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    Staci 10%? Overclocking! :-D

    Pozeram, ze zataz sa symetricky prepina medzi jadrami, tak mi napada: ten procesor ma dve jadra, kolko ma ale FPU? Typujem, ze len jednu. Ak je algoritmus zalozeny na praci s pohyblivou radovou ciarkou, moze to byt zavazne obmedzenie. O aky procesor sa vlastne jedna? Ak ma HT, odporucam skusit vypnut; zvycajne robi viac skody, ako osohu.

    5.8.2009 20:20 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Je to E4300 a z výpisu vypadá, že má každé jádro své FPU.

    Jinak je to z této sestavy, jen je doplněná na 4GB RAM.

    6.8.2009 02:56 Brud
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Ten system evidetne travi vetsinu casu v systemu ...

    6.8.2009 02:59 Brud
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Pokud to mam jeste upresnit, tak pokud je to dvoujaderny procesor, tak vetsinu casu ten system travi v operacich, ktere jsou mimo user.

    Tudiz vetsinu veci travi ve vecech co ty nedokazes ovlivnit, nebot to ten system potrebuje. A soude dle toho obrazku, at tam delas cokoliv tak to bezi na prave pulku jader co mas, zbytek to travi ve vecech co jsou tobe sumak a nedokazes ovlivnit.

    7.8.2009 00:14 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Podle výpisů zatížení to na mě působilo, že krom toho encódování skoro vůbec nic nedělá. Hrál jsem si všemožně s renice -20 PID, chrt -p PID, ionice -c 1 -p PID i taskset -p 01 PID a nakonec jsem došel ke stejnému závěru, že s tím nic nenadělám. Ale i tohle pomohlo...

    6.8.2009 03:01 Brud
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Ci finalne, ta aplikace neumi vyzit dvou jader ...

    6.8.2009 03:05 Brud
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Jeste by byla zajiam diskova zatez celkove statistiky sytemu jako iostat atd...

    To vypad sice ze to tam naneco ceka, ale tam bude primarni problem, ze to neumi pouzit vic jak jedno jadro ...

    6.8.2009 07:19 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    # iostat 
    Linux 2.6.28-gentoo-r5 (dx2300) 	6.8.2009 	_x86_64_	(2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              15,33    0,01    0,71    2,13    0,00   81,82
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               5,20       243,78        19,79    9743355     791106
    
    # sar 1 5
    Linux 2.6.28-gentoo-r5 (dx2300) 	6.8.2009 	_x86_64_	(2 CPU)
    
    07:18:37        CPU     %user     %nice   %system   %iowait    %steal     %idle
    07:18:38        all     53,23      0,00      0,50      1,99      0,00     44,28
    07:18:39        all     57,21      0,00      1,49      1,49      0,00     39,80
    07:18:40        all     59,41      0,00      0,50      1,49      0,00     38,61
    07:18:41        all     53,23      0,00      1,99      1,49      0,00     43,28
    07:18:42        all     56,28      0,00      1,01      1,01      0,00     41,71
    Average:        all     55,88      0,00      1,10      1,49      0,00     41,53
    
    AraxoN avatar 6.8.2009 11:06 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    mencoder skrátka a jednoducho nie je multithreadový pre tú úlohu, ktorú ty po ňom chceš. Jeden mencoder vyťaží jedno jadro. Nič viac s tým nenarobíš. Jedine, že by si vedel prácu rozdeliť na nezávislé časti a tie časti potom spustil v dvoch nezávislých mencoder-och.

    6.8.2009 13:15 chinook | skóre: 28
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    To znamena, pokud mam 2 procesory po 4 jadrech, tak kdybych napr. spustil 8x encoder na 8 videi, tak pojede vsech 8 jader na 100%?
    AraxoN avatar 6.8.2009 14:44 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Áno, malo by - ak disk bude stíhať čítať a zapisovať toľko údajov.

    6.8.2009 15:26 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Tomu bych docela rozuměl, ale proč to jedno jádro nevytíží na 100% ?
    Zkoušel jsem už různé věci, ale bez nějakého většího efektu – pořád nestíhá a přitom se klidně fláká. Podle mne by disk měl být schopný data dodávat dost rychle, síťová karta na druhé straně je 100BaseT, tam problém určitě nebude a sběrnice je doufám (?) rychlá dost.
    Jakým příkazem bych mohl zjistit jestli procesor čeká / nečeká na data?

    AraxoN avatar 6.8.2009 15:45 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Ak tie dáta čítaš zo siete, tak tam je nejaké opozdenie. Počas toho opozdenia procesor čaká, ale nezarátava sa to do iowait, ale do idle.

    Ak tie dáta po sieti len odosielaš, tak to potom neviem...

    6.8.2009 18:27 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?

    Ahoj,

    Koukal jsem se do zdrojaku mplayer jak resi paralelni dekodovani u H264, ktera je nejvetsi brzdou.

    Nejdrazsi proces pri dekodovani je dekodovani jednoho elementu (kteremu rikaji NAL_SLICE) - toto se snazi paralalelizovat. Bohuzel algoritmus je nasan tak, ze se paralelizace deje jen v ramci jednoho MPEG packetu, ale zatim jsem nenarazil na HD video ktere melo vic NAL_SLICE v jednom packetu (overil jsem si pridani par ladicich informaci pri dekodovani).

    Takze nehlede na pocet nastavenych vlaken provadi drahe operace soucasne jen jedno. To ze zadne jadro procesu neni vitizene na 100% neni pravda - akorat jsou k dispozici jen prumerne statistiky (pri zmenseni intervalu mereni zatizeni trebas na milisekundy by to bylo videt).

    Predstavit se to da tak, ze pokud ma jadro A 80% a jadro B 20% a meri se po jedne sekunde, tak 0.8s bezelo jadro A na 100% a jadro B na 0% a dalsich 0.2s bezelo jadro A na 0% a jadro B na 100%. Je to dano tim, ze kernel se snazi zatizeni jader vyrovnat.

    Samozrejme se pak museji pripocist dalsi hodnoty jako kodovani MPEG2, ktere muze bezet na druhem jadre, takze celkove zatizeni je vic 100%.

    7.8.2009 00:56 hufhendr | skóre: 33 | blog: U hufhendra
    Rozbalit Rozbalit vše Re: Jak vyždímat z procesoru maximum?
    Příloha:

    Díky za vysvětlení a díky všem za cenné příspěvky do diskuse. V práci mi už kolegové radili vyměnit procesor a pak i celý počítač, že to nemá smysl.
    Díky Vám jsem našel a nainstaloval mplayer-mt a teď už mi to běží pěkně na obou jádrech. Nakonec mi funguje ta ručně kompilovaná verze a mohu potvrdit, že se jeví docela stabilně. Pokud jde o výkon, jsem docela na hraně, pro video 1920x1040 se teploměr bufferu PS3 Media Serveru plní hodně pomalu, přesto stoupá a udrží i krátkodobé klesání v rychlejších scénách. Propady na přiloženém grafu jsou momenty, kdy se buffer spočítaného videa naplnil a procesor si krátce oddech. Teplota procesoru se pohybuje kolem 75°C, větráčky na cca 1200 otáčkách (na začátku filmu až ke 2k) a počítač jde i při tom všem docela v pohodě používat.
    Z procesoru se nám povedlo vyždímat maximum a myslím, že tak má před sebou ještě dlouhý křemíkový život.

     

    Přidám ještě aktuální statistiky:

    # iostat 
    Linux 2.6.28-gentoo-r5 (dx2300) 	7.8.2009 	_x86_64_	(2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              34,07    0,00    2,01    0,94    0,00   62,98
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               9,50      1009,52       178,77   21844569    3868424
    
    # sar 1 5
    Linux 2.6.28-gentoo-r5 (dx2300) 	7.8.2009 	_x86_64_	(2 CPU)
    
    00:51:57        CPU     %user     %nice   %system   %iowait    %steal     %idle
    00:51:58        all     72,36      0,00      3,52      0,00      0,00     24,12
    00:51:59        all     56,65      0,00      2,46      0,99      0,00     39,90
    00:52:00        all     89,60      0,00      3,96      0,00      0,00      6,44
    00:52:01        all     84,19      0,00      4,65      1,40      0,00      9,77
    00:52:02        all     90,55      0,00      1,99      1,00      0,00      6,47
    Average:        all     78,73      0,00      3,33      0,69      0,00     17,25
    

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.