Quote:
Originariamente inviato da Antonio23
una parte e' emulata, una parte e' riscritta. quanto grande e dove sia posizionato il livello emulato e' soggetto a varie interpretazioni. ufficialmente, le DLL sono sicuramente riscritte (tutte? boh). per il resto *non si sa*
|
Probabilmente tutto il codice di Windows/Microsoft (incluse applicazioni e DLL) sarà nativo ARMv8, mentre le applicazioni x86 (dunque di terze parti) saranno emulate ma quando useranno DLL di sistema verrà effettuato un tunnelling x86/x64 <-> ARMv8, in modo da eseguire codice nativo ARMv8 il più possibile, riducendo l'impatto dell'emulazione. Il tutto similmente a quanto avviene con la XBoxOne e l'emulazione dei giochi della XBox360.
Quote:
Originariamente inviato da LucaLindholm
- Quado viene eseguito per la prima volta un programma desktop tradizionale, il compilatore Jitter ricompila l'eseguibile, convertendo le chiamate al processore x86 in chiamate verso ARM: in tutte le esecuzioni successive, dunque, tali programmi avranno prestazioni native!
|
No, proprio per come l'hai descritto è chiaro che non è possibile avere prestazioni "native".
E' il classico compilatore JIT che converte frammenti di codice, ma stavolta da x86/x64 a ARMv8; avrà quindi una cache (blocchi che ospitano i frammenti convertiti; probabilmente c'è un buffer di dimensione fissa preallocato, come capita in questi casi) e politiche di flushing & riutilizzo dei blocchi.
Per cui ci sarà SEMPRE l'overhead dovuto alla compilazione di frammenti di codice x86/x64, che capita ogni tanto, e che ha un certo impatto prestazionale (già il solo disassemblare codice x86/x64 non è certo una passeggiata).
Ma anche se fosse possibile una compilazione AoT (Ahead-of-Time: tutto il codice x86/x64 ricompilato alla prima esecuzione, come capita con le applicazioni .NET), in ogni caso ci sarebbe sempre l'overhead dovuto all'emulazione del funzionamento di x86/x64, che è un'architettura molto diversa da ARMv8.
Per essere chiari, se compiliamo un sorgente compilato per x86/x64, e poi prendiamo il binario corrispondente e lo ricompiliamo AoT per ARMv8, non sarà mai a poi mai uguale o ugualmente efficiente rispetto allo stesso sorgente compilato direttamente per ARMv8; nella maniera più assoluta.
Quote:
- A inizio anno, durante un'altra conferenza MS, fu mostrata una macchina ARM con Snap 820 che eseguiva abbastanza bene Photoshop completo, compiendo un ritocco al volo in diretta: dopo un anno e con un processore più potente, possiamo ritenere che le prestazioni possano essere accettabili pure per compiti non proprio basici.
|
Aspettiamo test più accurati fatti dalle redazioni di riviste o siti come questi.
Quote:
Originariamente inviato da demon77
Si beh calma. Geekbench è tutto fuorchè un test affidabile.
Io di default manco lo prendo in considerazione, specie se poi si va a fare paragoni in multipiattaforma.
Da considerare poi la questione emulazione vs sistema nativo e software nativi x86.
Non voglio mettere le mani avanti ad ogni costo ma consentimi del fondato scetticismo.
Aspetto di vedere una prova dei fatti piu concreta.
|
Concordo. Proprio Geekbench è un benchmark sintetico che non dice nulla.
Poi bisognerà anche vedere come se la caverà quest'emulatore con codice SIMD x86/x64 di nuova generazione, come AVX/-2: già AMD, che ha un processore nativo x86/x64, non riesce a star dietro ai processori Intel quando vengono eseguite applicazioni che fanno un consistente uso di queste nuove estensioni SIMD (Intel ha prestazioni fino a TRE volte superiori).