Wyniki benchmarków porównujących Intel Atom Clover Trail+ i układy ARM były sfałszowane
Eksperci przyjrzeli się wynikom benchmarków układu Atom. Jak się okazało porównanie go z ARM było zmanipulowane.
W czerwcu sieć obiegły informacje o wynikach benchmarków w programie AnTuTu procesora Intel Atom Clover Trail+, którego wydajność porównywano do obecnie topowych układów ARM jak Samsung Exynos 5250, Exynos 5 Octa czy też Qualcomm APQ8064T. Jak się okazało, wydajność procesora Intel Atom miała być znacznie wyższa od prezentowanej przez układy ARM – co miało zwiastować rychły koniec dominacji tej architektury w mobilnym segmencie rynku. Teraz jednak jak dowodzą eksperci, wspomniane wyniki były sfałszowane.
Procesor Intel Atom Clover Trail+, a dokładnie układ Z2580, który znajduje się w konstrukcji Lenovo K900, miał być pogromcą obecnej generacji układów ARM, które nawet miałby nie być w stanie nawiązać z nim równorzędnej walki. W przeprowadzonych benchmarkach przez ABI Research, w których procesory były testowane w programie AnTuTu zdecydowanym zwycięzcą okazał się procesor Intel Atom Z2580. Procesor oprócz znacznie wyższej wydajności oferował także zauważalnie niższy pobór energii elektrycznej.
Jak się jednak ostatnio okazało, wspomniane testy zostały sfałszowane. Początkowo na ślady manipulacji trafił jeden z czytelników serwisu AnandTech, później sprawą zajęli się eksperci. Analityk Jim McGregor z firmy Tirias odkrył, że wyniki benchmarków AnTuTu są niespójne. Pierwszą jego myślą było, że wyniki osiągane przez poszczególne wersje AnTuTu różnią się od siebie. Dla przykładu wydajność Atoma od wersji AnTuTu 2.9.3 do 3.3 zwiększyła się o 122% w ogólnej wydajności i aż 292% w wydajności pamięci RAM. Dla porównania wyniki procesora zastosowanego w Galaxy S4 zwiększały się, ale o zdecydowanie mniejsze wartości.
Jak się jednak okazało, do zabiegu manipulacji wynikami benchmarków zastosowano metodę bardzo starą, tę, za której stosowanie niegdyś firma AMD oskarżyła Intela. Chodzi o zastosowany kompilator. Dla przypomnienia większość aplikacji kompilowanych za pomocą kompilatorów Intela zaniżała wydajność innych niż Intel procesorów. Kompilator w przypadku układów Intela wykorzystywał w aplikacji wszelkie obsługiwane instrukcje, w sytuacjach, gdy wykryto inne układy np. AMD lub VIA, nie była nawet sprawdzana lista obsługiwanych instrukcji, przez co procesory AMD i VIA pracowały bez jakichkolwiek optymalizacji.
O sprawie zrobiło się głośno, gdy ekspertom udało się zmienić wartość CPUID w procesorach VIA, tak, aby ta wskazywała, że zastosowano procesor Intel, Jak się okazało, procesory zwiększyły swoją wydajność o kilkadziesiąt procent w aplikacjach, w których używano kompilatorów Intela.
Podobnie jest również i tym razem, otóż benchmark uruchomiony na układzie Intel Atom został skompilowany za pomocą kompilatora Intel C++ Compiler, natomiast benchmark dla ARM za pomocą GCC. W tym przypadku procesor Intel mógł korzystać ze wszystkich dostępnych instrukcji, a także nawet oszukiwać, natomiast układ ARM nie mógł nawet korzystać z rozszerzenia NEON.
Dodatkowo w przypadku procesora Intel zastosowano jeszcze jeden ciekawy zabieg. Otóż jak informują eksperci, w benchmarku układ, zamiast wykonać określoną ilość pętli, wykonywał tylko jedną i zwracał wykonanie zadania. Niestety eksperci nie pozostawili na wspomnianych wynikach suchej nitki, prezentując wydajność różnych procesorów ARM w konfrontacji ze wspomnianym Atomem w innych testach, gdzie układy ARM okazywały się nawet kilka razy szybsze.
Wniosek z tego jeden, nie należy ślepo ufać benchmarkom, które jak pokazuje powyższy przykład, można bardzo łatwo zmanipulować. Wszystko zaczyna więc wskazywać na to, że dominacja ARM w urządzeniach mobilnych jest w dalszym ciągu niezagrożona.
Źródło: AnandTech, TheRegister, Slashdot, ABI Research, androidzone
Komentarze
124Kolejny pozew przeciwko Intelowi. Groźby wobec partnerów w celu wyeliminowania produktów AMD z rynku to tylko część zarzutów :
(..)
(..)
(..)
(..)
Poziom Odporności na Demona Żądzy Pieniądza = 0%
Wystarczy że Deomn pstryknie palcem a szefostwo Intela spuszcza resztę honoru w klozecie.
Przepraszam.. zrobili to już wiele lat temu i robią do dziś..
Nikt w tej branży nie jest do końca czysty, każdemu się zdarzały głupie pomysły ale żaden nawet nie staruje do intela pod względem ilości/skali oszustw.
ŻE.. NA.. DA..
Test testem, ale z mojego doświadczenia procek AMD jest wydajniejszy od i5 - mówię o codziennej pracy a nie jakiś benchmarkach z d... wziętych.
Jedno wiem na pewno. Samemu trzeba mieć sprzęt do porównań, bo tylko wtedy wiesz co jest ok, a co "wynikiem działu marketingu".
Podczas testowania układów graficznych Intel w laptopach, gdy zmieniało się nazwę aplikacji 3D Mark, wynik nagle okazywał się niższy - Intel zaprogramował je w taki sposób, by zmieniały ustawienia w systemie, maksymalnie zwiększając wydajność w momencie uruchomienia aplikacji o danej nazwie (np. 3D Mark 201x).
OMG, oszukiwać ? Panie redaktorze procesor wykonuje program, a nie oszukuje...
Przyszło mi do głowy pytanie teoretyczno-informatyczne, czy w ogóle jest wykonalne (w realnym, obecnym "otoczeniu" hardware'owym, a też i w ogóle w jakimkolwiek innym dającym się pomyśleć) "napisanie testu w sposób dający jednoznaczne wyniki dla każdej platformy". Zahaczające trochę o filozofię (metodologię) - kwestia zdefiniowania "jednoznaczności" :P Trochę mało na razie wiem, ale mocno podejrzewam że jest to po prostu niemożliwe z przyczyn zasadniczych. Pachnie to trochę porównywaniem czegoś co jest z natury rzeczy nieporównywalne. Każdy test (czy jakiekolwiek inne zastosowanie) poddaje próbie tylko jakiś wybrany aspekt procesora. Na czym miałaby polegać próba "całościowa", przy różnych architekturach? Nawet przy najlepszej woli zawsze któraś będzie "preferowana" (potraktowana nieco inaczej niż druga).
Pewnie niejedna praca naukowa powstała już na podobny temat :)
No i? Każdy inny kompilator też pomija zbędne obliczenie jeśli znajdzie taką możliwość.
Amerykę odkryli, że nie można porównywać w syntetykach dwóch różnych architektur (nawet gdyby obie wersje benchmarka były skompilowane pod GCC).
Pogrzebałem trochę i tak to wygląda w rzeczywistości:
Kompilator Intela pomijał niektóre obliczenia, prawdopodobnie w ramach optymalizacji (w końcu obliczenia w benchmarkach są bezcelowe i pewnie to zauważył). Twórcy AnTuTu skonfigurowali poprawnie kompilator, w najnowszej wersji wyniki Atomów spadły o ok. 20% i wszyscy są zadowoleni.
Oczywistą rzeczą jest, ze intel kompilował benchmark swoimi kompilatorami ale nie mógł ich kompilować pod army w dziwny sposób - jak chcielibyście odpalić na arm program skompilowany pod x86?. Do tego wyniki z tego badania nie odbiegają, a nawet często były porównywane z innymi testami arm i jakoś nie budziły zastrzeżeń. Intel mógł co najwyżej manipulować wyniki w stosunku do amd i via, a nie armów. Zresztą dalsza część tekstu jest boleśnie bzdurna. Co zrobili "eksperci" skompilowali test bez optymalizacji - znaczy pod i386 co jest skrajnym nonsensem i porównali go z zoptymalizowanymi kompilacjami arm...
Radziłbym myśleć...
Do redakcji - czy jest możliwe zrobienie testu procesorów z uruchomionymi kilkoma aplikacjami testującymi np. coś w tym stylu: https://www.youtube.com/watch?v=mdPi4GPEI74