Új hozzászólás Aktív témák

  • Petykemano

    veterán

    Konkurencia - M1 - miért is olyan jó?
    "The premise here is wrong. arm64 is the Apple ISA, it was designed to enable Apple’s microarchitecture plans. There’s a reason Apple’s first 64 bit core (Cyclone) was years ahead of everyone else, and it isn’t just caches."
    "Arm64 didn’t appear out of nowhere, Apple contracted ARM to design a new ISA for its purposes. When Apple began selling iPhones containing arm64 chips, ARM hadn’t even finished their own core design to license to others."
    "ARM designed a standard that serves its clients and gets feedback from them on ISA evolution. In 2010 few cared about a 64-bit ARM core. Samsung & Qualcomm, the biggest mobile vendors, were certainly caught unaware by it when Apple shipped in 2013."
    "Apple planned to go super-wide with low clocks, highly OoO, highly speculative. They needed an ISA to enable that, which ARM provided. M1 performance is not so because of the ARM ISA, the ARM ISA is so because of Apple core performance plans a decade ago."
    [link] [link]

    Lényegében azt mondjam, hogy amit az Apple használ az nem a gyári ARM ISA, hanem egy ARM ISA fork. Sokéves tervezés eredménye.
    Nem teljesen értem, hogy viszont ez így hogy hozná el a vágyott Arm áttörést? mármint itt eddig arról volt szó, hogy legyenek arm alapú eszközök, ami pont ugyanúgy futtatja a szoftvereket, mint a szerver és akkor majd jó lesz.
    De ha jól értem, akkor egy apple készülékre készített bináris nem futna egy arm szerveren, vagy egy másik arm eszközön.
    Nem tudom, hogy ez így van-e, vagy hogy ez egyáltalán számít-e, mármint hogy pont ugyanakkora gapról beszélünk-e, mint ami általánosságban az arm és x86 inter-futtathatóságáról.

    még egy kérdés:
    Azt olvastam, hogy a gyári linux disztribúciók (ubuntu, stb) úgy vannak forgatva, hogy a legáltalánosabb utasításkészleteket használják. És például ha te szeretnéd használni mondjuk az AES hardveres gyorsítót, vagy az AVX2-t, akkor sok esetben újra kell forgatnod a kérdéses szoftvert. Én ehhez nem különösebben értek, ezért kérdezem: ez igaz? Én azt hittem, a szoftverek képesek kezelni az ilyen hardveres lehetőségeket, mármint dinamikusan, hogy ha van AVX, akkor azt a kódutat választja, ha meg nincs, akkor SSE3. Egyik-másik tesztelésre használt szoftvernél még volt is szó arról, hogy ha behazudod, hogy mi a cpu, akkor használja a megfelelő - gyors - utasításkészleteket.
    Ez persze nyilván növeli a bináris méretét, de én azt gondoltam, hogy ezek az opcionálisan elérhető utasításkészletek a fordítókban tök általánosan kezeltek ma már.

Új hozzászólás Aktív témák