Páči sa mi to a rozhodne by niečo podobné mohlo priniesť aj AMDe. Prečo? Lebo výkonu (9950X3D) nikdy nemám dosť a ... hejteri to nemusia používať, nikto ich nenúti, že.
Hlavní výhody vidím v lepší predikci.
Která větev se použíje a která data se mají natáhnout do cache.
AMD obecně a 9950X3D obzvlášť ani jedno nepotřebuje.
Cache má ohromnou a prediktor dostatečně dobrý.
Teď moje teorie:
Ryzen 9 má dost jader na to aby mohl počítat obě větve programu. Sice by to stálo hodně elektřiny a odpadního tepla, ale je to Ryzen 9.
Na druhou stranu kdo viděl kód nějaké hry.
Tak ví že to je samý IF.
Přitom chování hráče (stisky kláves) se dají často předvídat.
IF tam je pro každou klávesu.
Ale používá se především W a někdy ASD.
No já si dovolím nebýt tolik konspirativní. Tak jak tomu bylo u závodničky xyz nepamatuju si to, přesně, kde zakrývali diferenciál a tvrdili o něm že je to nějaký super vylepšený a proto do zatáček jezdí rychle a nikdo si nevšiml postranich lišt na podvozku, které ve skutečnosi zvyšovali přítlak pomocí změny rychlosti vzduchu pod závodničkou a tím poklesu tlaku a zvýšení přítlaku.
intel to nechce zveřejnit, protože to bude velmi jednoduchá blbůstka.
Neboli každej jeden obrázek hry začíná tím, že engine začne od začátku všechno vykreslovat, každej snímek začíná že nějakým startem beginplayerstart nebo tak něco a následně se projíždí celý kód a na základě toho kódu se všechno nastavuje.
A tak mě napadá, že stačí, když si tato aplikace zapamatuje části kódu, které program chce spočítat, každej jednotlivej snímek dokola a ten výsledek je pořád stejnej. Většinou to mohou být různé podpůrné operace pro grafiku, stabilní hodnoty, jako které klíče ke dveřím má hráč, kolik má života, apod. A prostě diagnostika, prostě vyhodnotí, že tenhle výpočet je požadován každý snímek, přitom se změní průběžně jednou za víc jak vteřinu. Takže místo toho aby to posílal na výpočet každej snímek, vezme a rovnou při požadavku na výpočet pošle odpověď předcházejícího výpočtu. Neboli máš 120snímků ale výpočet proběhne místo 120x třeba jen jednou na začátku a pak se celých 119 snímků opakuje. Tím se dá ušetřit hodně strojového času, který se tak může věnovat jiným výpočtům a sedí to i na parafrázi, že vlastně nedochází k dekompilaci kódu. Prostě si najde v tom kódu neustále stejný požadavek na vypočet, a místo do jádra mu pošle rovnou odpověd.
Chápeš to jo? Prostě program: "spočítej kolik máš klíčů" "vypočet" "hráč má tři klíče" "spočítej kolik máš klíčů" "vypočet" "hráč má tři klíče" "spočítej kolik máš klíčů" "vypočet" "hráč má tři klíče"
A tady ten optimilzátor: "spočítej kolik máš klíčů" "vypočet" "hráč má tři klíče" "hráč má tři klíče" "hráč má tři klíče" "hráč má tři klíče"
Což jde pozorovat hlavně u toho Tomb Raidera, na kterej každej při vydání hodně nadával že je neoptimalizovaný a je spraseně naprogramovaný, takže tam bude nejvíc těhle zbytečných výpočtů, které se neustále opakují. Přitom u Cyberpunku naopak se snažili co nejvíc tomu počítači ulevit a najít všechny možné chyby aby se žádný věci nepočítali zbytečně.
Hm?
Je ovela jednoduchsie optimalizovat kompilator ako potom analyzovat a upravovat binarky. Naivne predstavy o pocitanin”oboch” vetiev IF podmienky uz pri piatom vnoreni moze dosiahnut 32 roznych vetiev. A to nehovorime iba o if, ale mozeme mat case/switch. Proste hlupost. Dokazovat spravnost komplexneho programu je extremne komplikovane a bezne sa nerobi, a spolahnut sa, ze upravena binarka bude funkcne totozna ako original, je velmi optimisticke. Podla popisu sa bude optimalizacia robit na kazdu architekturu zvlast a na kazdu verziu kazdej binarky zvlast. Staci aby sa zmenila jedna dynamicky loadovana kniznica v obrovskon projekte a moze sa zacat odznova. A ta kniznica moze byt zo samotneho programu, operacneho systemu, ovladaca… Bude to ako obvykle fungovat na par verziach par programov a tym to skonci. Ale presne tieto verzie tychto programov sa budu v prezentaciach Intelu pouzivat ako marketingove zlepsenia. Optimalizaciu kompilatora, ktory kontroluje retazec “genuine Intel” sme uz tiez zazili, ale vtedy to aspon bolo deterministicke. Dnes mame kompilatorov spustu, a pri vhodne zvolenych flagoch generuju lepsi kod, ako Intel zvladne upravou binarky.
Zní to, že tomu rozumíte.
Děkuji za názor.
Souhlasím že to celé je jen potemkinova vesnička.
Pár programů kde se autor vykašlal na optimalizace z toho může něco získat.
Ale z principu se tyto optimalizace docela rychle blíží k maximálnímu výkonu který nemůžou překročit.
Na tom tetrisu co je na obrázkuv článku to je dobře vidět. Když už to někdo optimalizoval, tak to lépe poskládat nepůjde.
Aktualizace budou rozhodně velká slabina, protože s každou se musí optimalizovaná verze nahradit.
Viděl jsem komentáře, podle kterých by to mohlo fungovat podobně jako BOLT https://lwn.net/Articles/993828/
Ale nemám s tímhle zkušenosti, takže nevím, jaké jsou s tím projektem zkušenosti co do spolehlivosti výstupu (zda nezpůsobuje chyby).
No tak nějak se mi z toho udělali osypky. Věci která by měl standardně dělat procesor nebo výrobce software bude kdesi na stažení? To je jenom krůček k přechodu na placenou službu optimalizace. Sem se opravdu nechci dostat. Navíc to je docela pěkná díra kterou můžete do počítače bez vědomí uživatele propašovat cokoliv.