Wprowadzenie do procesora Cell

Matthew Scarpino wyjaśnia, na poziomie podstawowym, czym jest procesor Cell i jak działa.

We wrześniu 2007 roku Księga Rekordów Guinnessa ogłosiła nowego rekordzistę w kategorii najpotężniejszego na świecie systemu obliczeń rozproszonych. Nie był to tradycyjny klaster wysokowydajnych komputerów, ale ogólnoświatowa sieć złożona ze zwykłych pecetów i konsol PlayStation 3 (PS3). Nazywany Folding@Home, ten rozproszony system obliczeniowy symuluje składanie białek, aby przeanalizować, jak powstają choroby.

Przed dołączeniem PS3, sieć była zdolna do wykonania zaledwie 0,25 petaflopsa (250 000 000 000 000 000 000 operacji zmiennoprzecinkowych na sekundę). Ale gdy klient Folding@Home zaczął działać na PS3, prędkość obliczeń wzrosła czterokrotnie w ciągu sześciu miesięcy, czyniąc Folding@Home pierwszym systemem obliczeń rozproszonych, który przekroczył barierę 1 petaflopa.

Tabela 1.1 wyjaśnia znaczenie PS3 w sieci Folding@Home. Nie ma tu prawie tylu konsol co komputerów PC, ale dostarczają one więcej mocy obliczeniowej niż komputery Windows/Mac/Linux razem wzięte.

Tabela 1.1. Statystyki wydajności Folding@Home (nagranie z 16 kwietnia, 2008)

OS Type

Current Pflops

Active CPUs

Total CPUs

Windows

190,892

1,986,517

Mac OS X/PowerPC

8,478

114,326

Mac OS X/Intel

7,428

45,480

Linux

27,796

286,172

PlayStation 3

40,880

492,491

Ogromną moc obliczeniową PS3 zapewnia silnik Cell Broadband Engine, powszechnie nazywany procesorem Cell lub po prostu Cell. Opracowany przez STI Alliance (Sony, Toshiba i IBM), Cell łączy możliwości ogólnego zastosowania architektury IBM PowerPC z wystarczającą liczbą obliczeń, aby zadowolić nawet najbardziej wymagających graczy i twórców grafiki.

Co to oznacza dla Ciebie? Oznacza to, że możesz cieszyć się tym, co najlepsze z obu światów: elastycznością i mocą obliczeniową. Z jednej strony możesz zainstalować na Komórce popularny system operacyjny, taki jak Linux, i uruchamiać aplikacje tak wygodnie, jak gdyby były one uruchamiane na komputerze PC. Z drugiej strony, można implementować intensywne obliczeniowo algorytmy z szybkością znacznie przewyższającą zwykłe procesory, a nawet konkurować z urządzeniami superkomputerowymi.1 Co jeszcze bardziej niezwykłe, można wykonywać obie te czynności w tym samym czasie.

Komórka umożliwia to dzięki podziałowi pracy na chipie: System operacyjny działa na pojedynczym elemencie PowerPC Processor Element (PPE), a szybkie obliczenia są wykonywane przez serię Synergistic Processor Elements (SPE). Te dwa rodzaje rdzeni zostały zaprojektowane specjalnie do swoich zadań i każdy z nich obsługuje inny zestaw instrukcji.

Patrząc osobno, te elementy przetwarzające są łatwe do zrozumienia i proste do zaprogramowania. Trudniejszą częścią jest koordynacja ich działania, aby w pełni wykorzystać ich mocne strony. Aby to osiągnąć, koder musi znać komendy programistyczne specyficzne dla komórki i mieć solidną wiedzę o architekturze urządzenia: jego elementach przetwarzających, połączeniach i strukturze pamięci.

Celem tej książki jest omówienie tych tematów na tyle dogłębnie, aby umożliwić tworzenie aplikacji, które maksymalnie wykorzystują możliwości komórki. Znaczna część tej książki dotyczy architektury procesora, ale tylko tych aspektów, które można wykorzystać i skonfigurować w kodzie. Niektóre tematy mogą wydawać się przytłaczające dla tych, którzy nie są przyzwyczajeni do myślenia jak architekci komputerowi, ale nie przejmuj się: Wszystko zostanie wyjaśnione, gdy pojawi się taka potrzeba. A celem tej książki jest zawsze oprogramowanie.

Celem tego rozdziału jest wyjaśnienie, na podstawowym poziomie, czym jest procesor Cell i jak działa. Omówienie rozpoczyna się od opisu tła procesora Cell, w tym jego historii i możliwości, a następnie przechodzi do przedstawienia podstawowej architektury procesora.

1.1 Tło procesora Cell

Procesor Cell jest tak niepodobny do swoich poprzedników, że warto wiedzieć, dlaczego został stworzony i jakie siły korporacyjne ukształtowały jego konstrukcję. Kiedy zobaczysz, dlaczego STI Alliance poświęciło tyle czasu i wysiłku na procesor Cell, będziesz miał lepsze pojęcie, dlaczego warto go poznać.

Historia procesora Cell

Sony zakończyło prace nad konsolą PlayStation 2 w 1999 roku i wypuściło ją na rynek w następnym roku. Mimo ogromnego sukcesu, ówczesny prezes Nobuyuki Idei był zdenerwowany: Jak konsola następnej generacji firmy Sony może przebić PS2? Co jeszcze można osiągnąć? Postanowił, że odpowiedź będzie dwojaka: Kolejna oferta musiała zawierać szerokopasmowe funkcje multimedialne i zapewniać radykalne ulepszenia w przetwarzaniu grafiki. Te wzniosłe cele wymagały całkowicie nowego sprzętu, a żeby to umożliwić, porozumiał się z ówczesnym dyrektorem generalnym IBM, Louisem Gerstnerem. Wspólnie ukształtowali koncepcję, która ostatecznie doprowadziła do powstania Cell Processor.

Szef Sony Computer Entertainment, Ken Kutaragi, doprecyzował wymagania sprzętowe i wysunął żądania, które wykraczały daleko poza aktualny stan techniki. Wyobrażając sobie każdy procesor jako element większej, połączonej w sieć całości, Ken Kutaragi nazwał urządzenie Komórką. Zgodnie z pierwotnym zamiarem Nobuyuki-san, projekt został nazwany Cell Broadband Engine (CBE). Pozostaje to oficjalna nazwa procesora Cell.

Toshiba wyraziła zainteresowanie wykorzystaniem Cell w elektronice użytkowej, a w 2001 roku Sony, Toshiba i IBM ogłosiły utworzenie STI Alliance. Ich deklarowanym celem były badania, rozwój i produkcja przełomowej architektury procesora. Utworzyli oni STI Design Center w Austin w Teksasie, aby urzeczywistnić wymagania CBE.

Jim Kahle, jako główny architekt Cell, zauważył, że wymagania CBE nie mogą być spełnione przez tradycyjny procesor jednordzeniowy – zapotrzebowanie na moc byłoby zbyt duże. Zamiast tego wybrał bardziej energooszczędny projekt, który zawierał wiele jednostek obliczeniowych w jednym układzie scalonym. Ostateczna architektura składała się z dziewięciu rdzeni: jednego centralnego elementu obliczeniowego i ośmiu dedykowanych elementów do szybkich obliczeń.

W chwili pisania tego tekstu Centrum Projektowe STI rozrosło się do ponad 400 inżynierów. Dr H. Peter Hofstee, jeden z założycieli Centrum Projektowego, zajmuje stanowiska głównego naukowca i głównego architekta SPE. W niedawnej prezentacji wymienił główne cele, które przyświecały projektowi Cell:

  1. Znakomita wydajność w grach i aplikacjach multimedialnych
  2. Realna reaktywność w czasie rzeczywistym dla użytkownika i sieci
  3. Możliwość zastosowania na wielu platformach

W 2004 roku zakład produkcji półprzewodników IBM w East Fishkill wyprodukował pierwszy prototyp Cell. Inżynierowie STI zainstalowali system Linux i przetestowali procesor przy prędkościach wykraczających poza powszechnie podawany zakres od 3 do 4GHz. Prototyp zdał egzamin. W ciągu następnego roku Sony i IBM gorączkowo pracowały nad zintegrowaniem urządzenia z konsolą następnej generacji Sony, a oczekujący gracze po raz pierwszy zobaczyli PlayStation 3 na targach Electronic Entertainment Expo (E3) w 2005 roku.

W listopadzie 2006 roku odbyła się pełna komercyjna premiera PS3, a opowieści o długich kolejkach i ledwie zdrowych na umyśle konsumentach będą bawić personel sprzedaży detalicznej przez wiele lat. Oprócz potężnego mózgu procesora Cell, nowa konsola zapewniała rozdzielczość do 1080p oraz napęd Blu-ray dla wideo wysokiej rozdzielczości.

W tym samym roku IBM wydał swój pierwszy zestaw CBE Software Development Kit (SDK), aby umożliwić programistom tworzenie aplikacji dla Cell. SDK udostępnia kompilatory dla obu typów elementów przetwarzających, połączony symulator/debugger, liczne biblioteki kodu oraz środowisko programistyczne oparte na Eclipse. Duża część tej książki dotyczy SDK i tego, jak można go używać do tworzenia aplikacji.

W połowie 2008 roku w Narodowym Laboratorium Los Alamos przetestowano pierwszy superkomputer oparty na architekturze Cell, nazwany IBM Roadrunner. Zawierający 12 960 procesorów Cell i 12 960 Opteronów, Roadrunner osiągnął prędkość przetwarzania 1,026 petaflopsów i stał się najszybszym z superkomputerów z listy TOP500. Jego prędkość ponad dwukrotnie przewyższa prędkość superkomputera zajmującego drugie miejsce, BlueGene/L, z wynikiem .478 petaflopsów.

Potencjał procesora Cell dla obliczeń naukowych

W 2005 roku Lawrence Berkeley National Laboratory zbadało wydajność obliczeniową Cell i zapisało swoje ustalenia w raporcie The Potential of the Cell Processor for Scientific Computing. Przeprowadzono symulacje wielu różnych algorytmów i porównano szybkość przetwarzania Cell z podobnymi procesorami: AMD Opteron, Intel Itanium2 i Cray X1E. W tabeli 1.2 zestawiono ich wyniki.

Tabela 1.2. Wyniki badań Lawrence Berkeley National Laboratory (wszystkie wartości w Gflops/s)

.

Algorytm

Komórka Procesor

Cray X1E

AMD Opteron

Intel Itanium2

Gęste mnożenie macierzowe (pojedyncza precyzja)

Gęste mnożenie macierzowe mnożenie macierzy (podwójna precyzja)

Symetryczna macierz rzadka mnożenie wektorowe (pojedyncza precyzja)1

Symetryczna mnożenie wektorów macierzy rzadkiej (podwójna precyzja)1

niesymetryczne Mnożenie wektorów macierzy nieliczbowych (pojedyncza precyzja)1

.

Nonsymetryczne mnożenie wektorowe macierzy rzadkich (podwójna precyzja)1

2-.D szybkie przekształcenie Fouriera (pojedyncza precyzja)2

2-D fast Fourier transform (double precision)2

Należy pamiętać o dwóch kwestiach. Po pierwsze, wyniki odnoszą się do szybkości obliczeniowej w miliardach flopów (operacji zmiennoprzecinkowych na sekundę), a nie do ilości czasu potrzebnego do wykonania algorytmu. Po drugie, ponieważ mnożniki komórki pierwszej generacji są pojedynczej precyzji, komórka pierwszej generacji radzi sobie znacznie lepiej z wartościami pojedynczej precyzji niż z wartościami podwójnej precyzji. Ale druga generacja zapewnia sprzętowe mnożenie wartości podwójnej precyzji.

Dla inżyniera zainteresowanego przetwarzaniem sygnałów i matematyką obliczeniową (jak ja), wyniki są niczym innym jak zdumiewające. Badanie uzasadnia oburzające roszczenia marketingowe: The Cell naprawdę zapewnia możliwości zbliżone do superkomputera za cenę i moc (około 50 do 60 W) zwykłego procesora.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.