Život po x86 aneb kam dále s procesorovými architekturami? | Kapitola 5
Seznam kapitol
Tvrzení, že architektura x86 je „stará“ anebo „přežilá“ architektura, jsou přehnaná. Faktem ale je, že si tato architektura táhne až příliš bohaté dědictví – a vývojáři se opakovaně pokouší o něco jiného a lepšího. Otázka ale je, zda to je opravdu o tolik lepší.
Pomůže nám AI?
Dnes tu máme další neznámou v podobě AI, ze kterého si často utahujeme, ale ono to může být docela dost dobré, pokud jde o optimalizaci kódu. Pamatujte, jak Intel, tak i AMD si profilují reálné kódy a sledují, které instrukce se využívají, což jim dovoluje „ladit“ procesory na moderní software. Ve srovnání s velkými změnami hardware jde o změny v rozsahu 5–10%, ale i tak to je docela plus, když jde vlastně o „poštelování toho, jak se jednotlivé instrukce zpracovávají“. AI je možné také učit na podobných datasetech – a s její pomocí dělat lepší kompilátory, než máme dnes.
V současnosti, alespoň se zdá, se blížíme do světa, kde Microsoft bude tlačit dvojí binárky, jedny pro ARM a jedny pro x86. Ono je ale klidně možné, že časem najedeme na model, kdy v systému bude AI, která bude překládat aplikace na binární kód, který vyhovuje přímo konkrétnímu procesoru v jeho konkrétní konfiguraci. To není věc, která by byla ještě na pořadu dne, ale je plně možné, že budeme mít runtime, který bude sledovat, jak jednotlivé aplikace běží – a bude je ladit, aby běžely lépe. Něco na ten způsob jsme měli už u Transmety – a je klidně možné, že se k něčemu podobnému, ale v AI verzi, ještě vrátíme.
Ona optimalizace kódu je něco, čemu bychom se měli věnovat. Dnešní kód je řídký, nafouknutý a vnitřnosti OS vypadají docela šíleně: Optimalizace tady by mohla pomoci podstatně víc než změny v hardwaru. Ať už s technologiemi děláme cokoliv, nakonec se dostaneme k nutnosti vykonávat instrukce – a ty na podobném technologickém procesu v podobné rychlosti budou konzumovat víceméně stejně energie nezávisle na konkrétní instrukční sadě. Pro efektivní použití je mnohem důležitější neprovozovat zbytečný anebo zbytečně složitý kód a udržovat všechno v tak nízkých power statech, jak je to jenom možné – to je skutečné kouzlo efektivity, kterou dnes tak řešíme.