Apple A7 – 64 bity, które zmieniają wszystko [cz. 3]
Wiemy już, że Apple się postarał, projektując nowy procesor do iUrządzeń. Czy iOS 7 robi użytek z dostarczonej mu mocy i usprawnień?
Na styku światów - co my z tego będziemy mieli
Szczegóły techniczne już omówiłem, więc pora przejść do najważniejszej części: systemu i aplikacji. Co te 64 bity i nowa konstrukcja układu znaczą dla nas, użytkowników?
Jądro iOS 7 zostało przepisane na potrzeby 64-bitowego procesora. W dniu premiery wszystkie procesy w mobilnym systemie Apple'a są 64-bitowe, na czele z aplikacjami (np. Safari, Mail). Jednak bez problemu da się uruchomić równolegle z nimi programy skompilowane na 32 bity. Wszystko działa.
Geekbench 3 był jedną z pierwszych aplikacji wzbogaconych o obsługę instrukcji ARMv8, jednak sam test przeprowadzany przez program się nie zmienił. To pozwala poniekąd stwierdzić, co dało przejście na 64 bity.
Jak widzicie w powyższej tabeli, w miejscach, w których ARMv8 wprowadza zmiany, różnice są ogromne. Obsługa AES i SHA1/2 jest wydajniejsza od 18 do 825%. Kompresja i dekompresja formatu PNG jest szybsza o ponad jedną trzecią. Jedyna kwestia, w której A7 kuleje, to algorytm Dijkstry.
W reszcie widać mniejsze lub większe przyrosty wydajności. Ktoś może powiedzieć: przecież 11% przy dekompresji JPEG to prawie żaden progres! Warto jednak zaznaczyć, że wyniki są skutkiem tylko rekompilacji na 64 bity narzędziem, które Apple już udostępnił w xCode.
Poniżej zestawienie wyników operacji zmiennoprzecinkowych, wykorzystujących nowe usprawnienia w SIMD.
W benchmarkach Apple A7 pozostawia w tyle dotychczasową konkurencję, na czele ze Snapdragonem 800. Kontakt i walkę nawiązuje jedynie Intel Atom Z3770 (platforma Bay Trail), jednak nawet z nim w przypadku SunSpider JavaScript SoC Apple wygrywa. Względem zeszłorocznego iPhone'a wyniki są chwiejne: bywa, że 5s jest szybszy o 75%, bywa, że nawet dwukrotnie (Mozilla Kraken Benchmark). W benchmarkach w tyle za smartfonem Apple'a zostają architektury Cortex A15 i Krait 400, nawet sporo wyżej taktowane (2,3 GHz).
To, czy ekosystem Apple'a i aplikacje napisane na iOS (a przypominam, że jest ich już prawie milion) skorzystają z możliwości nowego procesora, zależy od samej firmy. Na tę chwilę wsparcie Cupertino w tej kwestii zasługuje na pochwałę. Krótko po premierze iPhone'a 5s udostępniono aktualizację środowiska programistycznego xCode, która wprowadziła zmiany właśnie pod kątem najnowszego SoC. Jedną z nich jest możliwość szybkiej rekompilacji aplikacji pod 64 bity, co z miejsca powoduje wzrost wydajności programu (opisane i rozrysowane powyżej).
Cocoa Touch Development:
Aplikacja wspierająca 64 bity praktycznie zawsze będzie zyskiwać na wydajności względem identycznej, 32 bitowej, uruchamianej na takim samym urządzeniu.
Jeżeli nawet - wtórując sieciowym pieniaczom i przesadnie sceptycznym blogerom i redaktorom - stwierdzimy, że Apple buduje tylko medialny szum, opierając się na sławnych 64 bitach, to firma nie ma powodu, by kłamać deweloperom. Ci do dziś stanowią o sile marki iPhone. Byłoby to pozbawione sensu i prawdopodobnie rychło obróciło się przeciwko Apple'owi.
Cupertino wychodzi naprzeciw potrzebom deweloperów. Jak wspomniałem, główne zmiany dotyczą xCode, który dostał teraz paczkę zwaną Uniwersal Binary. Dzięki niej w aplikacjach znajdą się pliki z kodem do obsługi 32 i 64 bitów. Dopóki nie uruchomimy jakiejś aplikacji niewspierającej 64 bitów, iOS 7 plików odpowiedzialnych za 32 bity nawet nie załaduje.
iOS to najlepszy poligon dla tego typu eksperymentów
W tym całym szumie jeszcze jedną rzecz trzeba podkreślić. Z liczących się na rynku systemów mobilnych to właśnie iOS najlepiej nadaje się do szybkiego i efektywnego wprowadzenia procesorów 64-bitowych. Zamknięty ekosystem i praktycznie absolutna kontrola nad narzędziami deweloperskimi to jedno, ale sam język, w jakim pisze się programy na iOS, nie wymaga maszyny wirtualnej, tj. Windows Phone czy Android. W przypadku tego drugiego wydawałoby się niezbędne przepisanie Dalvika (maszyna wirtualna, na której są uruchamiane aplikacje Androida) na 64 bity. Jednak Google ma co do niego lepsze plany.
Wraz z premierą 4.4 KitKat w systemie znalazło się nowe środowisko tzw. ART, które działa na innej zasadzie niż Dalvik (przepisuje aplikację na kod natywny albo bardzo do natywnego zbliżony). Intuicja i zdrowy rozsądek podpowiadają, że to ART będzie kluczowym elementem przy przejściu Androida na 64 bity i już pod to jest przygotowywany.
iOS 7 dziedziczy 64-bitowy model (nazywany "LP64") po starszym bracie - systemie OS X obecnym na komputerach Apple'a. Dawniej pozwalał on na kompatybilność z 64-bitowymi programami i bibliotekami, które już istniały. Dzisiaj umożliwi wykorzystanie nawet całych fragmentów kodu programów napisanych na OS X przy optymalizacji aplikacji pod 64 bity na iOS, gdyż na oba systemy piszę się w tym samym języku - Objective C. Z takich sztuczek skorzystali np. twórcy aplikacji Djay i Vjay, która teraz w wersji na iPhone'a 5s może wyświetlać dwa materiały filmowe jednocześnie w 720p.
W tej beczce miodu jest łyżka dziegciu. Podobnie jak podczas poprzednich przejść na procesory o dwukrotnie większej liczbie bitów wzrośnie ilość pamięci wymaganej przez oprogramowanie. Urosną aplikacje i urośnie sam iOS. Już teraz plik iOS 7 w wersji na iPhone'a 5s jest o 160 MB większy niż na 5/5c. W przypadku iPada różnica będzie jeszcze większa (zapewne koło 180 MB), a po instalacji systemu w obu przypadkach jeszcze wzrośnie. Dorzućmy do tego wzrost wagi instalacji i być może dla wielu 16 GB stanie się wartością niewystarczającą.
Oczywiste jest, że przejście na 64 bity było dobrą decyzją i nie jest tylko medialną hucpą, ale naturalnym, logicznym rozwinięciem, którego pozytywne strony użytkownicy iOS mogą dostrzec i docenić. To nie tylko znacznie szybsze działanie systemu, ale również większa energooszczędność oraz furtka dla nowej generacji aplikacji.
Nie możemy jednak zapomnieć, że to nie tylko determinacja Apple'a doprowadziła nas do tego momentu, ale również ambicje ARM, żeby m.in. zaistnieć na rynku serwerów. Brytyjska firma odwaliła kawał dobrej roboty, projektując model programowy ARMv8, a system Apple'a okazał się wśród mobilnych urządzeń najlepszym poligonem testowym, na którym najszybciej zobaczymy efekty.
Firma z Cupertino nie pokpiła również sprawy software'u i wsparcia dla deweloperów, bez którego "rewolucja A64" faktycznie mogłaby tracić sens. Przy okazji pokazała po raz drugi, że potrafi zbudować naprawdę dobry SoC i wycisnąć z niskiego taktowania wyniki zawstydzające konkurencję w syntetycznych testach. Apple A7 to dowód na to, że dwa rdzenie, do których odpowiednio się przyłożono, to dużo lepszy pomysł niż 4 czy nawet 8, które taktuje się na oślep w imię większych cyferek.
Poprzednie części: