Podvádění v benchmarcích, nebo revoluční technologie pro lepší výkon? Jak funguje Intel Binary Optimization Tool

Sdílet

Podívali jsme se na to, co je zač hry a programy zrychlující nástroj Binary Optimization Tool, který nyní vydává Intel. Asi bude kontroverzní při benchmarkování, ale ukazuje slibnou cestu, kterou by se zlepšování výkonu CPU mohlo v budoucnu ubírat.

Tento týden ve čtvrtek začne Intel prodávat desktopové procesory Core Ultra 7 270K Plus a Core Ultra 5 250K Plus (od nějž má existovat i levnější model 250KF Plus bez integrovaného GPU), které představují refresh procesorů Arrow Lake se zlepšeným poměrem cena/výkon. S těmito modely „Plus“ je ale spojena také jedna softwarová novinka, technologie Intel Binary Optimization Tool (iBOT), slibující lepší výkon ve hrách i jiných programech.

iBOT neboli Intel Binary Optimization Tool

Včera vyšly recenze obou nových procesorů a s nimi Intel vydal i podrobnější informace k technologii iBOT, kterou k nim poskytuje jako softwarový bonus. Ta je určitým pokračováním technologie Intel APO (Intel Application Optimization), kterou firma vydala v roce 2023 coby nástroj, který má také vylepšovat výkon her. APO má však relativně omezené schopnosti, pracuje jen v rámci přiřazování vláken na jádra P-Core a E-Core a pomocí prioritizace procesů.

Intel Binary Optimization Tool

Intel Application Optimization je technologie, dostupné od vydání refreshe procesorů Raptor Lake (Core 14. generace)

Autor: Intel, via: ComputerBase

Víc výkonu od Intelu. Technologie APO bude už i pro procesory Core 12. a 13. generace Přečtěte si také:

Víc výkonu od Intelu. Technologie APO bude už i pro procesory Core 12. a 13. generace

Technologie Intel Binary Optimization Tool / iBOT má podobný záměr, tedy zajistit, aby běžící program využíval optimálně procesor, který má k dispozici. Má však ambicióznější cíl. Technologie iBOT znovu optimalizuje přímo spustitelný soubor programu, který spouštíte, tedy například hry. Jde o nástroj, který mění (v podstatě zcela nahrazuje) kód programu. Tato technologie tedy dokáže vylepšit program, který je přeložený s neoptimálními parametry – například nevyužívá technologie nových CPU nebo je vyladěný na jinou architekturu. iBOT má tím pádem poměrně unikátní schopnost vynahradit optimalizace, které scházejí nějakému již hotovému programu.

V prvé řadě je třeba říct, že iBOT nestojí na tom, že Intel kontaktuje vývojáře aplikace a s jejich asistencí jim v programu udělá nějaké změny (což firmy také někdy dělají). Na iBOT je důležité, že pracuje zcela nezávisle na vývojáři aplikace a teoreticky může být aplikován na jakýkoliv program (klidně i takový, jehož autoři jsou neochotní spolupracovat, nebo který už není vyvíjen).

Technologie pracuje jenom a pouze s hotovým vydaným programem, jde tedy o nástroj schopný znovu optimalizovat již přeložený a distribuovaný spustitelný binární soubor programu. Potenciální aplikace takového nástroje jsou široké, ale v rámci iBOT zatím bude používán relativně limitovaně. Co je tedy na tomto nástroji důležité – nepotřebuje zdrojový kód programu. A ani ho nijak nezkouší dekompilovat nebo reverzním inženýrstvím analyzovat. Pracuje jen a pouze s proudem instrukcí v zkompilovaném programu, tak jak ho při běhu konzumuje i procesor.

Intel Binary Optimization Tool

Intel Binary Optimization Tool

Autor: Intel, via: ComputerBase

Druhá důležitá věc je, že iBOT není volně k mání přímo jako onen optimalizační nástroj, kterým byste mohli prohnat jakýkoliv program vás napadne (bylo by ale zajímavé, kdyby vývoj jednou k něčemu podobnému dospěl). Optimalizace totiž neprobíhá na vašem vlastním počítači při běhu nebo instalaci programu, ale v rámci Intelu, který pro to bude mít nějaký tým a infrastrukturu. To by mělo zajistit, že optimalizovaná nová verze programu bude fungovat korektně a také to asi dává možnost použít náročnější a déle trvající hloubkové optimalizace programu, možná i s použitím strojového učení k postupnému „vytrénování“ výstupu k co nejlepšímu výkonu.

Z pohledu samotného uživatele je iBOT aplikace, která umí pro konkrétní programy stáhnout ze serverů Intelu onu optimalizovanou verzi pro daný procesor – pokud je dostupná. Pokud pak optimalizovaný program spustíte, nahradí jeho originální verzi automaticky za nový optimalizovaný kód, takže dostanete výkonnostní zlepšení. Děje se to za automaticity při spuštění, ale je vyžadován běh služby iBOT – přímo na disku vám Intel kód programu nenahradí.

Nevýhoda tohoto kontrolovaného přístupu je, že iBOT je k dispozici jen pro malé množství aplikací. To snad časem bude růst, ale nyní je podobně omezené, jako počet her, které umí Intel optimalizovat pomocí nástroje APO. Technologie iBOT je ostatně sama implementována jako rozšíření aplikace APO. Pokud ji tedy chcete, musíte mít dotyčný procesor série „Plus“, splnit všechny požadavky APO (což znamená mít nainstalované ovladače od Intelu a patřičnou podporu v BIOSu), mít APO nainstalováno a aktivní. Poté lze APO zapnout v rámci rozšířených možností programu.

Intel Binary Optimization Tool

Intel Binary Optimization Tool v aplikaci APO

Autor: Intel, via: ComputerBase

Ve výchozím stavu je iBOT vypnutý, takže se nestane, že by tato optimalizace byla zapnutá, aniž byste o ní věděli. Mělo by to minimalizovat šanci na problémy v případě, že optimalizovaná verze přes snahu Intelu bude někde fungovat nekorektně. A také je to korektní z hlediska recenzí a testů výkonu – očekává se totiž, že v těch všechna CPU mají rovné podmínky a zpracovávají stejný kód.

Intel Binary Optimization Tool

Intel Binary Optimization Tool

Autor: Intel, via: ComputerBase

Optimalizace programu, aniž by se musel znovu zkompilovat

Jak optimalizace funguje, to ví přesně jenom Intel, ale firma sdělila určité detaily. Jak už bylo řečeno, nedochází k žádnému vlamování do programu ve formě reverzního inženýrství nebo dekompilace. Původní binární soubor programu je analyzován za běhu a profilován pomocí softwarových i hardwarových nástrojů. 

Pomocí získaných dat je pak překomponována struktura kódu – například se operace programu přeorganizují do jiného pořadí nebo se provedou bezeztrátové optimalizace známé z kompilátorů, jako je inlining, optimalizace na základě profilování, přeorganizování větvení v kódu tak, aby se zlepšila úspěšnost predikce, a také optimalizace linkování poté, co se kód zkompiluje. Intel také zmiňuje, že jsou optimalizovány operace s pamětí (načítání dat z RAM a cache do registrů a jejich ukládání z registrů do RAM).

Intel Binary Optimization Tool

Intel Binary Optimization Tool

Autor: Intel, via: ComputerBase

To vše jak bylo řečeno na úrovni zkompilovaného binárního kódu. Kód by měl být optimalizován nikoliv nějakým obecným univerzálním způsobem, ale tak, aby využíval schopnosti a charakteristicky konkrétní architektury či dokonce modelu procesoru. Zde to budou Plusové modely Arrow Lake, pro budoucí procesory s jinou architekturou bude Intel zase muset udělat optimalizaci novou. V budoucnu u procesorů Nova Lake zřejmě iBOT získá větší důležitost, neboť otevírá cestu k využití rozšíření APX v aplikacích, které jejich vývojáři sami nepřekompilují.

Velké změny pro procesory x86. APX odstraňuje limity legacy instrukcí, přebírá i nápady ARMu Přečtěte si také:

Velké změny pro procesory x86. APX odstraňuje limity legacy instrukcí, přebírá i nápady ARMu

Intel ujišťuje, že iBOT žádným způsobem nepodvádí – optimalizovaná verze programu provádí přesně tutéž práci a žádné operace nepřeskakuje, ani nikde nic nešidí (Intel si zde rýpnul do Nvidie, když používá přirovnání k DLSS a vyjasňuje, že iBOT nevyrábí „fake snímky“). Veškeré zlepšení výkonu spočívá jenom v tom, že optimalizovaná verze stejné instrukce vykonává efektivněji lépe uspořádaným a vyladěným kódem – Intel to ilustruje na příkladu hry Tetris, v které je stejnou danou množinu kostek možno poskládat horšími i lepšími způsoby a při těch lepších zabere méně řad. Samozřejmě ona plně zachovaná funkce programu platí, pokud iBOT funguje správně. Uvidíme, zda se to podaří zajistit, nebo se budou často dít chyby vzniklé chybnou optimalizací.

Intel Binary Optimization Tool

Intel Binary Optimization Tool

Autor: Intel, via: ComputerBase

Nástroj také nikde nenahrazuje autentický soubor programu na disku, nahrazení se děje jen v paměti až při spuštění. To zajišťuje, že se kdykoli lze vrátit k původní verzi prostě tím, že iBOT vypnete. Neoficiální verze aplikace také není distribuována mimo počítače s dotyčným procesorem, takže jiní uživatelé nejsou nijak ovlivněni.

Málo podporovaných aplikací a další nevýhody

Jsou zde samozřejmě nevýhody. Náhrada binárky programu je potenciálně citlivá věc – například ji nelze provést ve hře, která je chráněná nějakým anticheatovacím ovladačem (systém by vás detekoval jako hrozbu a zabanoval). Toto nicméně bude hlídat už přímo Intel při výběru her, které na seznam optimalizovaných programů umístí.

Dále je zde samozřejmě riziko, že se při testování nepodaří odhalit všechny problémy a nekompatibility, které re-optimalizování binárky programu může způsobit. Pak se může stát, že vám třeba hra spadne, aniž by za to její vývojáři mohli, protože chyba nebude v jejich kódu, ale jen v optimalizované verzi produkované iBOTem. Bude to asi problém při diagnostice a hlášení problémů, ale snad půjde ošetřit, aby vývojáři věděli, že hlášení o problému pochází z instalace využívající iBOT.

Velká nevýhoda je i onen omezený rozsah, kdy je iBOT v současné podobě dostupný jen pro okruh Intelem vybraných aplikací. To bylo a stále je i problém technologie APO – Intelu se během let od jejího vydání nepovedlo poskytnout tyto optimalizace pro více než jen pár desítek her. Počet her, pro které už jsou k dispozici optimalizace iBOT, je řádově podobný, ale ještě nižší. Doufejme že jich bude přibývat.

Hry a programy, které nyní mají podporu Intel Binary Optimization Tool

Hry a programy, které nyní mají podporu Intel Binary Optimization Tool

Autor: Intel

Jenom pro nové procesory

Další špatná zpráva je, že iBOT je teď dispozici jenom pro uživatele nově vydaných refreshových procesorů „Plus“. Tedy třech 125W modelů, které teď půjdou do prodeje, a dvou modelů řad HX pro notebooky. Skutečně jenom těch, pro původní modely Arrow Lake Intel zatím tuto technologii nezpřístupnil. Nicméně ji také dostanou notebookové procesory Core Ultra 300 Panther Lake, Intel je na svém webu uvádí mezi podporovanými.

Překvapivé terno: Nové procesory Intel ošetřily největší brzdu herního výkonu a přidaly jádra. Za krásné ceny Přečtěte si také:

Překvapivé terno: Nové procesory Intel ošetřily největší brzdu herního výkonu a přidaly jádra. Za krásné ceny

Intel uvádí „Plus“ procesory i do notebooků: +900 MHz mezi čiplety má zrychlit hry i aplikace Přečtěte si také:

Intel uvádí „Plus“ procesory i do notebooků: +900 MHz mezi čiplety má zrychlit hry i aplikace

Intel vysvětluje toto omezení změnami v procesorech Arrow Lake verze „Plus“, což zřejmě znamená zrychlená rozhraní D2D a uncore – jinak je totiž křemík stejný jako u předchozích procesorů. Je otázka, zda se Intel nesnaží tímto uměle zlepšovat pozici nových modelů (ale vzhledem k tomu, že mají atraktivní ceny, zřejmě není nutno je proti původním modelům takto zvýhodňovat). Ony optimalizace frekvencí uncore a rozhraní D2D asi mohou měnit charakter výkonu, takže je docela dobře možné, že optimalizace iBOTu vyvinuté na bázi profilování procesorů 270K Plus a 250K Plus nemusí běžným modelům Arrow Lake tak dobře sedět.

Nicméně Intel zmiňuje, že zkoumá možnosti, jak iBOT zpřístupnit i starším procesorům. Takže možná nakonec kompatibilita bude přidána, podobně jako Intel nakonec rozšířil i podporu Intel APO (to také původně mělo být jen pro procesory Core 14. generace, ale pak z tohoto omezení Intel slevil). Nicméně podpora pro starší procesory nemusí přidávat tolik výkonu jako na Plusových modelech.

Jaký výkon reoptimalizace programu může přinést?

Intel uvádí své vlastní výsledky testování funkce iBOT (oficiální benchmarky je jako vždy třeba brát s rezervou) na procesoru Core Ultra 7 270K Plus ve hrách. Zisky dost záleží na konkrétní hře. Intel uvádí jako nejlepší výsledek zlepšení FPS o extrémních 22 % ve hře Shadow of the Tomb Raider, na opačné straně jsou pak nízké 1% či 2% nárůsty (Hitman 3 Dartmoor, Cyberpunk 2077). U některých her by se dost možná zlepšení neprojevilo vůbec, nebo bylo negativní, takové tituly ale pak logicky podporu iBOT nedostanou.

Intel Binary Optimization Tool

Intel Binary Optimization Tool: Nárůsty výkonu v různých hrách

Autor: Intel, via: ComputerBase

Nejen hry by ale mohly benefitovat, iBOT by měl být použitelný i pro aplikační software. Zdá se, že jedním z podporovaných programů je Geekbench 6 (ve verzích 6.3.0 a novějších) a tento benchmark ukazuje docela slibná zlepšení skóre – zkoušel ho například techPowerUp nebo KitGuru a byla naměřena zlepšení jednovláknových i mnohovláknových skóre okolo +8 %.

To není vůbec málo a dost to procesorům Arrow Lake Refresh pomůže přiblížit se čipům třeba Applu. Pravda, tento výrazný nárůst výkonu také může svědčit jenom o špatném kódu či nedostatečné snaze zoptimalizovat kód a nastavení překladače pro x86 procesory ze strany autorů Geekbenche.

Intel Binary Optimization Tool

K zapnutí Intel Binary Optimization Tool potřebujete splnit všechny požadavky APO a mít ho zapnuté, iBOT je možné zapnout volitelně v rozšířených možnostech aplikace APO

Autor: Intel, via: ComputerBase

iBOT může být kontroverzní

Tento nástroj asi bude kritizován například vzhledem ke špatným zkušenostem s Intelem ohledně jeho kompilátorů, které se aktivně snažily zhoršovat výkon na konkurenčních procesorech, což byl problém, jelikož jeho překladače byly používány v produkčním softwaru.

V případě iBotu ale optimalizovaná verze binárky neovlivní fungování konkurenčních procesorů, takže se zdá, že v aktuální podobě jde o zcela férový pokus o zlepšení výkonu – všechno se děje jenom na straně Intelu bez toho, že by se nějak manipulovalo s aplikací či hrou, kterou vývojáři oficiálně vydávají – změněnou verzi dostanete čistě jenom v rámci svého počítače. Nicméně recenzenti asi mají plné právo trvat na tom, že budou testovat jen čistý výkon procesoru na oficiálních verzích programů, bez této pomůcky.

Nejlepší přirovnání k tomu, jakou iBOT hraje roli, je asi s ovladači GPU. Funkce iBOT je analogií toho, když výrobci GPU optimalizují svoje ovladače, aby na nich konkrétní hry lépe běžely. Není to jako když hra samotná integruje nějaký kód či knihovny navržené tak, aby hra na jednom GPU běžela lépe, ale na konkurenčních schválně byla pomalá, a s těmito problematickými komponentami pak byla distribuována všem uživatelům (což byl případ machinací v kompilátorech Intel v minulosti).

Je asi dobré si v tomto případě odmyslet si autora softwaru a spíše na tento nástroj nahlížet jako na koncept. Podobnou aplikaci jako iBOT by mohli vyrobit pro své vlastní procesory i další (AMD, Qualcomm, Arm samotný pro jádra, která vyvíjí a licencuje).

Školení Hacking

Asi můžeme říci, že koncept je to potenciálně přínosný a pokud by se ho v budoucnu povedlo dotáhnout k větší univerzalitě a pružnosti, mohlo by jít o užitečný nástroj, jak zlepšovat výkon procesorů. Takže iniciativu iBOT lze minimálně přivítat jako demonstraci, která snad potvrdí relevanci tohoto nápadu a položí základy pro příchod dalších už univerzálnějších optimalizátorů binárních souborů.

Zdroje: InteltechPowerUp, ComputerBase

Autor článku

Redaktor portálu Cnews.cz. Zaměřuje se na procesory, mobilní SoC, grafické karty, disky a další počítačový hardware. Profil autora →

Kvíz týdne

Tyto konektory zná každý. Ale víte, co jejich zkratky doopravdy znamenají?
1/9 otázek