Larrabee (mikroarchitektura) - Larrabee (microarchitecture)

Architektura Larrabee GPU, zaprezentowana na konferencji SIGGRAPH w sierpniu 2008 roku.

Larrabee to nazwa kodowa anulowanego układu GPGPU, który Intel rozwijał niezależnie od obecnej linii zintegrowanych akceleratorów graficznych . Jego nazwa pochodzi od Mount Larrabee lub Parku Stanowego Larrabee w hrabstwie Whatcom w stanie Waszyngton, w pobliżu miasta Bellingham. Chip miał zostać wydany w 2010 roku jako rdzeń konsumenckiej karty graficznej 3D, ale plany te zostały anulowane z powodu opóźnień i rozczarowujących wczesnych wyników. Projekt produkcji detalicznego produktu GPU bezpośrednio z projektu badawczego Larrabee został zakończony w maju 2010 roku, a jego technologia została przekazana Xeon Phi . Intel MIC wieloprocesorowych architektura ogłosił w 2010 roku odziedziczył wielu elementów z projektu Larrabee, ale nie funkcjonuje jako jednostka przetwarzania grafiki; produkt jest przeznaczony jako koprocesor do obliczeń o wysokiej wydajności.

Prawie dekadę później, 12 czerwca 2018 r.; Idea dedykowanego procesora graficznego Intela została ponownie ożywiona (jako Intel Xe ) wraz z pragnieniem Intela stworzenia oddzielnego procesora graficznego, którego premiera miałaby nastąpić do 2020 roku. Nie ma jednak pewności, czy ten nowy rozwój jest powiązany z rozwojem Larrabee.

Stan projektu

4 grudnia 2009 r. Intel oficjalnie ogłosił, że Larrabee pierwszej generacji nie zostanie wydany jako konsumencki produkt GPU. Zamiast tego miał zostać wydany jako platforma programistyczna dla grafiki i obliczeń o wysokiej wydajności . Oficjalnym powodem strategicznego resetu były opóźnienia w rozwoju sprzętu i oprogramowania. 25 maja 2010 r. blog Technology@Intel ogłosił, że Larrabee nie zostanie wydany jako procesor graficzny, ale zamiast tego zostanie wydany jako produkt do obliczeń o wysokiej wydajności, konkurujący z Nvidia Tesla .

Projekt produkcji detalicznego produktu GPU bezpośrednio z projektu badawczego Larrabee został zakończony w maju 2010 roku. Architektura wieloprocesorowa Intel MIC ogłoszona w 2010 roku odziedziczyła wiele elementów projektu z projektu Larrabee, ale nie działa jako jednostka przetwarzania grafiki; produkt jest przeznaczony jako koprocesor do obliczeń o wysokiej wydajności. Prototypowa karta została nazwana Knights Ferry , a produkcja karty zbudowanej w 22 nm procesie nazwanym Knights Corner miała być planowana na rok 2012 lub później.

Porównanie z konkurencyjnymi produktami

Według Intela, Larrabee ma w pełni programowalny potok, w przeciwieństwie do kart graficznych obecnej generacji, które są tylko częściowo programowalne.

Larrabee można uznać za hybrydę między wielordzeniowym procesorem a procesorem graficznym i ma podobieństwa do obu. Jego spójna hierarchia pamięci podręcznej i kompatybilność architektury x86 są podobne do CPU, podczas gdy szerokie jednostki wektorowe SIMD i sprzęt do próbkowania tekstur są podobne do GPU.

Jako procesor graficzny, Larrabee obsługiwałby tradycyjną zrasteryzowaną grafikę 3D ( Direct3D i OpenGL ) w grach. Jednak jego hybrydyzacja funkcji CPU i GPU powinna być również odpowiednia do zadań GPU ogólnego przeznaczenia (GPGPU) lub przetwarzania strumieniowego . Na przykład może wykonywać ray tracing lub przetwarzanie fizyki w czasie rzeczywistym w przypadku gier lub offline w przypadku badań naukowych jako komponent superkomputera .

Wczesna prezentacja Larrabee spotkała się z krytyką konkurentów GPU. Na NVISION 08 , Nvidia pracownik o nazwie Intel SIGGRAPH papier o Larrabee „Marketing puff” i cytuje analityka ( Peter Glaskowsky ), którzy spekulują, że architektura Larrabee było „jak GPU od 2006 roku”. Do czerwca 2009 r. Intel twierdził, że prototypy Larrabee były na równi z Nvidia GeForce GTX 285 . Justin Rattner , CTO firmy Intel , wygłosił przemówienie na konferencji Supercomputing 2009 w dniu 17 listopada 2009 r. Podczas swojego wystąpienia zademonstrował przetaktowany procesor Larrabee osiągający wydajność 1 teraFLOPS. Twierdził, że była to pierwsza publiczna demonstracja jednoukładowego systemu przekraczającego jeden teraFLOPS. Wskazał, że był to wczesny krzem, pozostawiając otwartą kwestię ostatecznej wydajności architektury. Ponieważ była to tylko jedna piąta dostępnych konkurencyjnych kart graficznych, Larrabee został anulowany „jako samodzielny produkt z dyskretną grafiką” 4 grudnia 2009 roku.

Różnice w stosunku do współczesnych procesorów graficznych

Larrabee miał się różnić od starszych dyskretnych procesorów graficznych, takich jak seria GeForce 200 i seria Radeon 4000, na trzy główne sposoby:

  • Było to użycie zestawu instrukcji x86 z rozszerzeniami specyficznymi dla Larrabee.
  • Miał zapewniać spójność pamięci podręcznej we wszystkich rdzeniach.
  • Miał zawierać bardzo mało specjalistycznego sprzętu graficznego, zamiast wykonywać zadania takie jak buforowanie Z, przycinanie i mieszanie w oprogramowaniu, przy użyciu podejścia renderowania opartego na kafelkach .

Oczekiwano, że dzięki temu Larrabee będzie bardziej elastyczny niż obecne procesory graficzne, umożliwiając większe zróżnicowanie wyglądu między grami lub innymi aplikacjami 3D. Dokument SIGGRAPH 2008 firmy Intel wspomniał o kilku funkcjach renderowania, które były trudne do osiągnięcia na obecnych procesorach graficznych: odczyt celu renderowania, przezroczystość niezależna od kolejności , nieregularne mapowanie cieni i śledzenie promieni w czasie rzeczywistym .

Nowsze procesory graficzne, takie jak Radeon HD 5xxx firmy ATI i seria GeForce 400 firmy Nvidia, oferują coraz szersze możliwości obliczeniowe ogólnego przeznaczenia poprzez DirectX11 DirectCompute i OpenCL, a także zastrzeżoną technologię CUDA firmy Nvidia , dając im wiele możliwości Larrabee.

Różnice z procesorami

Rdzenie procesorów x86 w Larrabee różniły się na kilka sposobów od rdzeni w obecnych procesorach Intela, takich jak Core 2 Duo czy Core i7 :

  • Jego rdzenie x86 były oparte na znacznie prostszej konstrukcji P54C Pentium, która jest nadal utrzymywana do użytku w aplikacjach wbudowanych . Rdzeń pochodzący z P54C jest superskalarny, ale nie obejmuje wykonywania poza kolejnością , chociaż został zaktualizowany o nowoczesne funkcje, takie jak obsługa x86-64 , podobna do mikroarchitektury Bonnell stosowanej w Atom . Wykonanie w kolejności oznacza niższą wydajność poszczególnych rdzeni, ale ponieważ są one mniejsze, na jednym chipie można zmieścić więcej, co zwiększa ogólną przepustowość. Wykonywanie jest również bardziej deterministyczne, więc kompilator może wykonywać instrukcje i szeregowanie zadań.
  • Każdy rdzeń zawierał 512-bitową jednostkę przetwarzania wektorowego , zdolną do przetwarzania 16 liczb zmiennoprzecinkowych o pojedynczej precyzji na raz. Jest to podobne, ale czterokrotnie większe niż jednostki SSE na większości procesorów x86, z dodatkowymi funkcjami, takimi jak instrukcje rozpraszania/zbierania i rejestr maski, zaprojektowany tak, aby korzystanie z jednostki wektorowej było łatwiejsze i bardziej wydajne. Larrabee miał czerpać większość swojej mocy w przetwarzaniu liczb z tych jednostek wektorowych.
  • Zawierał jedną główną cechę sprzętu graficznego o stałych funkcjach : jednostki próbkowania tekstur . Wykonują one filtrowanie trójliniowe i anizotropowe oraz dekompresję tekstury .
  • Miał 1024-bitową (512-bitową w każdą stronę) magistralę pierścieniową do komunikacji między rdzeniami i pamięcią. Ta magistrala może być skonfigurowana w dwóch trybach, aby obsługiwać produkty Larrabee z 16 rdzeniami lub więcej lub mniej niż 16 rdzeniami.
  • Zawierał wyraźne instrukcje kontroli pamięci podręcznej, aby zmniejszyć zaśmiecanie pamięci podręcznej podczas operacji przesyłania strumieniowego, które odczytują/zapisują dane tylko raz. Obsługiwane jest również jawne pobieranie z wyprzedzeniem do pamięci podręcznej L2 lub L1.
  • Każdy rdzeń obsługuje wielowątkowość z czterokierunkowym przeplotem, z czterema kopiami każdego rejestru procesora .

Teoretycznie rdzenie procesora x86 Larrabee byłyby w stanie uruchomić istniejące oprogramowanie komputerowe, a nawet systemy operacyjne. Inna wersja procesora może znajdować się w gniazdach procesorów płyty głównej za pomocą QuickPath , ale Intel nigdy nie ogłosił żadnych planów dotyczących tego. Chociaż natywny kompilator Larrabee C/C++ zawierał automatyczną wektoryzację, a wiele aplikacji było w stanie wykonać poprawnie po ponownej kompilacji, oczekiwano, że maksymalna wydajność wymaga optymalizacji kodu przy użyciu wewnętrznych elementów wektorowych C++ lub wbudowanego kodu asemblera Larrabee. Jednak, jak we wszystkich GPGPU, nie wszystkie oprogramowanie skorzystałoby na wykorzystaniu jednostki przetwarzania wektorowego. Jeden z serwisów poświęconych dziennikarstwu technologicznemu twierdzi, że możliwości graficzne Larrabee miały być zintegrowane z procesorami opartymi na mikroarchitekturze Haswell .

Porównanie z silnikiem szerokopasmowym Cell

Filozofia Larrabee dotycząca korzystania z wielu małych, prostych rdzeni była podobna do idei stojącej za procesorem Cell . Istnieje kilka innych wspólnych cech, takich jak użycie magistrali pierścieniowej o dużej przepustowości do komunikacji między rdzeniami. Było jednak wiele istotnych różnic we wdrażaniu, które miały uprościć programowanie Larrabee.

  • Procesor Cell zawiera jeden procesor główny, który steruje wieloma mniejszymi procesorami. Dodatkowo na procesorze głównym można uruchomić system operacyjny. W przeciwieństwie do tego, wszystkie rdzenie Larrabee są takie same i nie oczekiwano, że Larrabee będzie uruchamiał system operacyjny.
  • Każdy rdzeń komputera w komórce ( SPE ) ma lokalny magazyn, dla którego operacje jawne ( DMA ) są używane dla wszystkich dostępów do DRAM. Zwykłe odczyty i zapisy do DRAM nie są dozwolone. W Larrabee wszystkie pamięci na chipie i poza chipem podlegają automatycznie zarządzanej spójnej hierarchii pamięci podręcznej , dzięki czemu jej rdzenie wirtualnie współdzielą jednolitą przestrzeń pamięci za pomocą standardowych instrukcji kopiowania ( MOV ). Każdy z rdzeni Larrabee miał 256 KB lokalnej pamięci podręcznej L2, a dostęp do innego segmentu L2 trwa dłużej.
  • Ze względu na wspomnianą powyżej spójność pamięci podręcznej, każdy program działający w Larrabee miał praktycznie dużą pamięć liniową, tak jak w tradycyjnym procesorze ogólnego przeznaczenia; podczas gdy aplikacja dla Cell powinna być programowana z uwzględnieniem ograniczonego zużycia pamięci lokalnego magazynu związanego z każdym SPE (szczegóły w tym artykule ), ale z teoretycznie większą przepustowością. Jednak ponieważ dostęp do lokalnego L2 jest szybszy, nadal można skorzystać z metod programowania w stylu komórki.
  • Cell wykorzystuje DMA do przesyłania danych do i z pamięci lokalnych na chipie, co umożliwia wyraźne utrzymanie nakładek przechowywanych w pamięci lokalnej, aby przybliżyć pamięć do rdzenia i zmniejszyć opóźnienia dostępu, ale wymaga dodatkowego wysiłku w celu utrzymania spójności z pamięcią główną; mając na uwadze, że Larrabee używał spójnej pamięci podręcznej ze specjalnymi instrukcjami do manipulowania pamięcią podręczną (w szczególności wskazówki dotyczące eksmisji pamięci podręcznej i instrukcje wstępnego pobierania), które łagodziły kary za chybienie i eksmisje oraz zmniejszały zanieczyszczenie pamięci podręcznej (np. do renderowania potoków i innych obliczeń podobnych do strumieni) kosztem dodatkowy ruch i obciążenie w celu utrzymania spójności pamięci podręcznej.
  • Każdy rdzeń obliczeniowy w komórce uruchamia tylko jeden wątek na raz, w kolejności. Rdzeń w Larrabee zawierał do czterech wątków, ale tylko jeden na raz. Hiperwątkowość Larrabee pomogła ukryć opóźnienia związane z wykonaniem w kolejności.

Porównanie z Intel GMA

Intel rozpoczął integrację linii procesorów graficznych z płytami głównymi pod marką Intel GMA w 2004 roku. Będąc integrowane z płytami głównymi (nowsze wersje, takie jak te wydane z Sandy Bridge, są wbudowane w tę samą matrycę co procesor), te chipy nie były sprzedawane osobno. Chociaż niski koszt i zużycie energii chipów Intel GMA sprawiły, że nadają się one do małych laptopów i mniej wymagających zadań, brakuje im mocy przetwarzania grafiki 3D, aby konkurować ze współczesnymi procesorami graficznymi Nvidia i AMD/ATI o udział w rynku zaawansowanych komputerów do gier , rynek HPC , czy miejsce w popularnych konsolach do gier wideo . W przeciwieństwie do tego, Larrabee miał być sprzedawany jako oddzielny procesor graficzny, niezależny od płyt głównych i miał działać wystarczająco dobrze, aby można go było rozważyć w następnej generacji konsol do gier wideo.

Zespół pracujący nad Larrabee był oddzielony od zespołu Intel GMA. Sprzęt został zaprojektowany przez nowo utworzony zespół w zakładzie Intela w Hillsboro w stanie Oregon , niezależnie od tych, którzy zaprojektowali Nehalem . Oprogramowanie i sterowniki zostały napisane przez nowo powstały zespół. Stos 3D został specjalnie napisany przez programistów z RAD Game Tools (w tym Michaela Abrasha ).

Instytut Intel Visual Computing będzie badał podstawowe i stosowane technologie, które można zastosować w produktach opartych na Larrabee.

Przewidywane dane dotyczące wydajności

Wyniki analizy porównawczej z artykułu SIGGRAPH z 2008 r., przedstawiające przewidywaną wydajność jako przybliżoną funkcję liniową liczby rdzeni przetwarzających

Artykuł SIGGRAPH 2008 firmy Intel opisuje symulacje z dokładnością do cyklu (uwzględniono ograniczenia pamięci, pamięci podręcznej i jednostek tekstur) przewidywanej wydajności Larrabee. Wykresy pokazują, ile rdzeni Larrabee 1 GHz jest wymaganych do utrzymania 60 klatek/s przy rozdzielczości 1600×1200 w kilku popularnych grach. Gears of War bez antyaliasingu wymaga około 25 rdzeni , FEAR z 4-krotnym antyaliasingiem i 10 rdzeni dla Half-Life 2: Episode 2 z 4-krotnym antyaliasingiem. Intel twierdził, że Larrabee prawdopodobnie będzie działał szybciej niż 1 GHz, więc liczby te nie reprezentują rzeczywistych rdzeni, a raczej ich wirtualnych przedziałów czasowych. Kolejny wykres pokazuje, że wydajność w tych grach skaluje się niemal liniowo wraz z liczbą rdzeni do 32 rdzeni. Przy 48 rdzeniach wydajność spada do 90% tego, czego można by oczekiwać, gdyby liniowa zależność była kontynuowana.

Artykuł PC Watch z czerwca 2007 r. sugerował, że pierwsze chipy Larrabee będą miały 32 rdzenie procesora x86 i wyjdą pod koniec 2009 r., wyprodukowane w 45-nanometrowym procesie . Chipy z kilkoma wadliwymi rdzeniami z powodu problemów z wydajnością byłyby sprzedawane jako wersja 24-rdzeniowa. Później, w 2010 roku, Larrabee został zmniejszony do 32-nanometrowego procesu produkcyjnego, aby umożliwić wersję 48-rdzeniową.

Ostatnie zestawienie wydajności można obliczyć (teoretycznie jest to maksymalna możliwa wydajność) w następujący sposób: 32 rdzenie × 16 pojedynczej precyzji float SIMD/rdzeń × 2 FLOP (fused multiply-add) × 2 GHz = 2 TFLOPS teoretycznie.

Demonstracje publiczne

Publiczna demonstracja możliwości ray tracingu Larrabee odbyła się na Intel Developer Forum w San Francisco 22 września 2009 roku. W czasie rzeczywistym pokazano wczesną wersję poprzedniego projektu badawczego opartego na procesorach Quake Wars: Ray Trace d. Scena zawierała śledzoną promieniami powierzchnię wody, która dokładnie odbijała otaczające obiekty, takie jak statek i kilka latających pojazdów.

Drugie demo zostało wygłoszone na konferencji SC09 w Portland 17 listopada 2009 r. podczas przemówienia wygłoszonego przez Justina Rattnera, dyrektora ds. technologii Intel . Karta Larrabee była w stanie osiągnąć 1006 GFLops w obliczeniach SGEMM 4Kx4K.

Próbka inżynieryjna karty Larrabee została zakupiona i zrecenzowana przez Linusa Sebastiana w filmie opublikowanym 14 maja 2018 r. Nie był jednak w stanie sprawić, by karta dawała wyjście wideo, a płyta główna wyświetlała kod POST D6.

Zobacz też

Bibliografia

Zewnętrzne linki