Odpověď na názor

Odpovídáte na názor k článku Valve tajně sponzorovalo emulátor x86 na ARM64 FEX. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 8. 12. 2025 16:15

    Ladis

    Akcelerovat emulaci x86 samozřejmě smysl má, když většina aplikací je x86-only a nechcete prodávat zařízení jen geekům. AArch64 má užitečnou např bitovou masku pro zápis do registrů. Není třeba ANDovat a ORovat každou práci s registrem, když v x86 chcete zapsat jen do půlky registru. RISC-V to musel dostat jako extenzi, jinak by neměl na trhu šanci.

    Jenže to pro binární rekompilaci nestačí. Musel byste do vygenerovaného kódu vkládat memory barriers pro synchronizaci mezi jádry CPU a po každé SIMD operací zkontrolovat výsledky. Takto emulátor (přesněji JIT binární rekompilace) nemusí tyto zpomalující série instrukcí vkládat do kódu, jen přepne 2 přepínače: 1) vypne jednu optimalizaci práce s RAM a 2) povolí speciální výsledky pro SIMD (FPU jednotky je umí, skalární instrukce FPU na ARMu je vrací).

    Pro zajímavost, rozdíl výkonu s akcelerací a bez je běžně i 8x, v SIMD operacích i násobně pomalejší než toto. S hardwarovou akceleraci emulace x86 jste na 2/3 nativního výkonu, což vzhledem k dvojnásobku zpracovaných instrukcí za cykl je v pohodě a srovnává v x86 kódu s Intelem. Pozor, AArch64 instrukce jsou trochu "řidší" a ARM procesory mají menší frekvenci než typický x86. Zvláště u Intelu, kde lže s TDP až dvojnásobně a před novým mikrokódem utavil napájecí vodiče tranzistorů. Nicméně nový Qualcomm má dotáhnout na 5 GHz, tím pádem i tato výkonnostní výhoda x86 padá.

    > Podle mě aby CPU mohl zvládnout AVX2 tak by potřeboval SVE2 s 256-bit délkou - pak by to bylo poměrně přímočaré.

    Zapomínáte na to, že první implementace AVX2 byla v AMD "double-pump", tedy 256bit operace dělal na 128bit jednotkách. Stejně jako pak byla implementace AVX-512 v předchozí generaci AMD. Nebo když hodně do minulosti, tak Z80 v ZX Spektru byl 8bit CPU se 4bit ALU:
    https://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html?m=1

    > Kdo chce výkon na desktop/mobile segmentu a x86 tak použije AMD. AVX-512 je mimochodem to nejlepší na x86.

    Záleží výkon v čem. Např v kompilaci kódu tichý a úsporný notebook s Qualcommem nebo Apple Silicon dotahuje na desktopový AMD. A to je dnes spousta věcí mimo hrubý výkon CPU, např GPU, video kodeky, NPU, ... Jinak AMD je výkonné a dobré, o tom se nehádám. Několik let se bude jíst OEM koláč Intelu, takže procesory Apple/AMD/Qualcomm nejdou proti sobě a je super, že si dnes uživatel může vybrat hned ze 4 výrobců výkonných procesorů. V podstatě pro výběr Intelu už musí mít člověk nějaký hodně velký důvod.

    Ještě taková technická: AVX-512 instrukce protáhnou "více práce" skrz úzký dekodér instrukcí, pokud se jako na AMD a Intel dekódují za 1 cykl (čínský x86 dekóduje 2 cykly). Tímto v SIMD operacích je x86 srovnatelné s 8 instrukcemi za cykl. K tomu HT využije zbylé jednotky v jádře CPU pro vícevláknové kódy. Tedy AMD má pro tyto scénáře kompenzující řešení, narozdíl od Intelu, který v consumer segmentu nemá ani jedno.