r   e   k   l   a   m   a
r   e   k   l   a   m   a

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

Strona główna AktualnościSPRZĘT

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

Za pozwem stoi niejaki Tony Dickey. Utrzymuje on, że AMD nakłoniło klientów do kupienia procesorów Bulldozer poprzez przedstawienie ich jako układów ośmiordzeniowych (co jego zdaniem oznacza 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ęcie komponentów z dwóch rdzeni i połączeniu tego co pozostało w pojedynczy moduł. Wskutek tego połączenia rdzenie nie mogą już działać niezależnie – a to oznacza, że procesory Bulldozer działają gorzej, niż mógłby się tego spodziewać typowy konsument, biorący za dobrą monetę zapewnienia producenta, a nie mający wiedzy technicznej, pozwalającej mu ocenić naturę tej architektury. Wskutek tego dziesiątki tysięcy klientów zostało zachęconych do kupienia ośmiordzeniowych procesorów, które wcale ośmiordzeniowe nie są, ponieważ nie mogą jednocześnie wykonać ośmiu instrukcji.

Zanim zatańczymy na grobowcu AMD, przyjrzyjmy się jednak bliżej zasadności stawianych tu zarzutów. Pomimo zastosowania nieprecyzyjnego technicznie języka, nie popełniono tu faktycznych błędów. W Bulldozerach mamy do czynienia z konstrukcją, w której dwa oddzielne rdzenie połączone są w jeden pakiet, określany przez producenta jako moduł dwóch ściśle sparowanych rdzeni. Z perspektywy systemu operacyjnego każdy moduł widziany jest jako dwa rdzenie, ale rdzenie te współdzielą jednostkę zmiennoprzecinkową oraz mechanizmy pobierania i dekodowania instrukcji.

r   e   k   l   a   m   a

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

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

Równie bezsensowny jest argument o niemożliwości wykonywania ośmiu instrukcji jednocześnie. To prawda, każda para rdzeni współdzieli w module jedną jednostkę zmiennoprzecinkową (która notabene 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 mogli chcieć korzystać klienci). Każdy z rdzeni w module posiada zaś oddzielne cztery potoki stałoprzecinkowe, oddzielnych planistów i oddzielną 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, po prostu sformułowanie z pozwu pozbawione jest technicznego sensu.

Jeśli kalifornijski sąd uzna za słuszne argumenty powoda, to sytuacja 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ń w serwerowych procesorach SPARC Oracle'a, czymś innym w powszechnie wykorzystywanych w smartfonach układach big.LITTLE z rodziny ARM, a czymś 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 w ogóle jednostek zarządzania pamięcią (MMU) czy koprocesorów zmiennoprzecinkowych (FPU), gdy instalowało się na płytach dodatkowo układy takie jak 80387. Jeśli sąd uzna, że dziś rdzeniem jest jedynie kombinacja CPU, FPU i MMU, to dlaczego nie posunąć się dalej, i nie zażądać w rdzeniu obecności GPU, a w przyszłości do tego jednostki obliczeń kwantowych? Dlatego pozostaje 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 zdaniem najlepiej będą realizowały założone obciążenia robocze.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.