Jak liczyć rdzenie? Absurdalny pozew przeciwko AMD grozi całej branży CPU

Jak liczyć rdzenie? Absurdalny pozew przeciwko AMD grozi całej branży CPU

Jak liczyć rdzenie? Absurdalny pozew przeciwko AMD grozi całej branży CPU
09.11.2015 14:05, aktualizacja: 10.11.2015 09:33

Pozew zbiorowy, jaki trafił w zeszłym tygodniu na biurkamenedżerów AMD, musiał wywołać niemałą konsternację wzmagającej się z wieloma innymi problemami firmie. Firma zostałaprzed sądem dystryktowym Stanu Kalifornia w San Jose oskarżona ooszukanie klientów co do liczby rdzeni procesorowych umieszczanych wich procesorach Bulldozer, fałszywą reklamę i nieuczciwewzbogacenie, a powód domagasię odszkodowania, zasądzenia grzywny, zwrotu kosztów sądowychi zastosowania innych środków, które zostaną uznane za stosowne.Analitycy ostrzegają – przegrana w tym procesie może doszczętniezrujnować AMD. Czy to naprawdę koniec czerwonych?

Za pozwem stoi niejaki Tony Dickey. Utrzymuje on, że AMDnakłoniło klientów do kupienia procesorów Bulldozer poprzezprzedstawienie ich jako układów ośmiordzeniowych (co jego zdaniemoznacza możliwość wykonania ośmiu obliczeń jednocześnie).Tymczasem jego zdaniem procesory te mają tylko cztery rdzenie.Zgodnie z pozwem, konstrukcja ta powstać miała poprzez usunięciekomponentów z dwóch rdzeni i połączeniu tego co pozostało wpojedynczy moduł. Wskutek tego połączenia rdzenie nie mogą jużdziałać niezależnie – a to oznacza, że procesory Bulldozerdziałają gorzej, niż mógłby się tego spodziewać typowykonsument, biorący za dobrą monetę zapewnienia producenta, a niemający wiedzy technicznej, pozwalającej mu ocenić naturę tejarchitektury. Wskutek tego dziesiątki tysięcy klientów zostałozachęconych do kupienia ośmiordzeniowych procesorów, które wcaleośmiordzeniowe nie są, ponieważ nie mogą jednocześnie wykonaćośmiu instrukcji.

Zanim zatańczymy na grobowcu AMD, przyjrzyjmy się jednak bliżejzasadności stawianych tu zarzutów. Pomimo zastosowanianieprecyzyjnego technicznie języka, nie popełniono tu faktycznychbłędów. W Bulldozerach mamy do czynienia z konstrukcją, w którejdwa oddzielne rdzenie połączone są w jeden pakiet, określanyprzez producenta jako moduł dwóch ściśle sparowanych rdzeni. Zperspektywy systemu operacyjnego każdy moduł widziany jest jako dwardzenie, ale rdzenie te współdzielą jednostkę zmiennoprzecinkowąoraz mechanizmy pobierania i dekodowania instrukcji.

Schemat modułu Bulldozera
Schemat modułu Bulldozera

Czy jednak faktycznie taka architektura oznaczała, że AMD celowozwiodło swoich klientów co do liczby rdzeni? Przyjrzeliśmy siędokładnie wynikom uzyskiwanym przez Bulldozera w benchmarkach, jak idostępnym na rynku architekturom procesorowym – i jesteśmyprzekonani, że cały ten pozew to tylko agresywny trolling,pozbawiony jakichkolwiek atutów technicznych. Pytanie tylko, czykalifornijski sąd to zrozumie?

Otóż w testach tych procesorów potwierdziło się, żewydajność na kolejne rdzenie skaluje się gorzej, niż wwielordzeniowych procesorach Intela (w których rdzenie są znaczniebardziej niezależne), jednak daleko temu do twierdzeń pana Dickeya.W większości testów wzrost wydajności przy zastosowaniuwszystkich rdzeni względem jednego rdzenia był przynajmniejsześciokrotny. To prawda, poszczególne rdzenie Bulldozera wwydajności wypadały gorzej, niż rdzenie Intela czy poprzednicharchitektur AMD, ale to nie jest zarzutem podnoszonym w pozwie wobecAMD – firma wyników benchmarków przecież nie ukrywała. Dlategonie można twierdzić, że taka architektura doprowadziła dosytuacji, w której liczbę modułów należałoby traktować jako„rzeczywistą” liczbę rdzeni.

Równie bezsensowny jest argument o niemożliwości wykonywaniaośmiu instrukcji jednocześnie. To prawda, każda para rdzeniwspółdzieli w module jedną jednostkę zmiennoprzecinkową (któranotabene może być traktowana albo jako jedna jednostka 256-bitowa,albo dwie jednostki 128-bitowe) ale i tak zdecydowana większośćinstrukcji wykonywanych przez procesor jest stałoprzecinkowa(przynajmniej w typowych obciążeniach roboczych, z jakich moglichcieć korzystać klienci). Każdy z rdzeni w module posiada zaśoddzielne cztery potoki stałoprzecinkowe, oddzielnych planistów ioddzielną pamięć podręczną, a cały procesor dekoduje nie osiem,lecz 16 instrukcji na cykl zegara. Czy to oznacza, że jest w stanie„wykonać osiem instrukcji jednocześnie”? Ani tak, ani nie, poprostu sformułowanie z pozwu pozbawione jest technicznego sensu.

Jeśli kalifornijski sąd uzna za słuszne argumenty powoda, tosytuacja będzie nieciekawa nie tylko dla AMD. Problem bowiem w tym,że wśród tej mnogości architektur procesorowych nie ma jednej,uniwersalnej definicji rdzenia. Czymś innym jest rdzeń wserwerowych procesorach SPARC Oracle'a, czymś innym w powszechniewykorzystywanych w smartfonach układach big.LITTLE z rodziny ARM, aczymś innym w desktopowych procesorach Core. Pan Dickey najwyraźniejżąda, by to sąd stworzył uniwersalną definicję rdzenia,najwyraźniej na bazie tego, co oferuje Intel.

Ale dlaczego mielibyśmy się opierać na pomysłach Intela?Przypomnijmy sobie czasy, gdy procesory nie miały wbudowanych wogóle jednostek zarządzania pamięcią (MMU) czy koprocesorówzmiennoprzecinkowych (FPU), gdy instalowało się na płytachdodatkowo układy takie jak 80387. Jeśli sąd uzna, że dziśrdzeniem jest jedynie kombinacja CPU, FPU i MMU, to dlaczego nieposunąć się dalej, i nie zażądać w rdzeniu obecności GPU, a wprzyszłości do tego jednostki obliczeń kwantowych? Dlategopozostaje mieć tylko nadzieję, że sądy nie będą wtrącały siędo rzeczy, o których zwykle nie mają pojęcia, a producenci będąmogli wymyślać takie architektury procesorowe, które ich zdaniemnajlepiej będą realizowały założone obciążenia robocze.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (197)