Larrabee: graficzna ofensywa Intela

Larrabee: graficzna ofensywa Intela
01.07.2009 12:00
Larrabee: graficzna ofensywa Intela

Intel to największy na świecie producent układów graficznych. Za sukces rynkowy firmy odpowiadają układy zintegrowane z chipsetami. Firma postanowiła jednak powalczyć z liderami rynku specjalizowanych GPU instalowanych na kartach graficznych i opracowuje układ Larrabee, który ma stawić czoło najlepszym procesorom graficznym ATI i NVIDII. Sęk w tym że Larrabee jest całkowicie nową propozycją - procesorem x86, który przystosowany został do przetwarzania grafiki 3D.

Pomijając podstawowe funkcje graficzne Larrabee ma być procesorem realizującym funkcje GPGPU, czyli najprościej rzecz ujmując kość graficzna przystosowana będzie do wykonywania obliczeń nie związanych z przetwarzaniem strumienia graficznego. Układ taki może zająć się dowolnymi obliczeniami, ale cały czas pozostaje kartą graficzną. Do niedawna najlepszym przykładem typowego układu GPGPU była NVIDIA Tesla, czyli zmodyfikowana na potrzeby skomplikowanych obliczeń numerycznych karta GeForce 28. GTX.
Architektura na wzór Pentium
Architektura Intel Larabee wywodzi się wprost od procesora Pentium. Można powiedzieć, że jest to hybryda zawierają w sobie najlepsze cechy jednostek centralnych ogólnego przeznaczenia i nowoczesnych układów graficznych. Najważniejszą cechą Larrabee jest jego uniwersalność i pełna programowalność, które to cechy zawdzięcza zgodności z architekturą i kodem x86. Bez problemu można zatem wykonać na nim zarówno obliczenia związane z przetwarzaniem strumienia graficznego, jak i np. przetwarzaniem materiałów audio-wideo, obliczeniami związanymi z fizyką postaci, czy innymi dowolnymi zadaniami jakie przyjdą do głowy programiście. Co więcej, może on wspomóc jednostkę centralną komputera w chwili wykonywania na skomplikowanych obliczeń inżynierskich czy naukowych przyczyniając się do poważnego wzrostu ogólnej wydajności peceta. Innymi słowy, można powiedzieć, że Larrabee jest uniwersalnym akceleratorem wspierającym CPU w zależności od potrzeb bądź to w obliczeniach graficznych, bądź w innych sytuacjach wymagający
dużej mocy obliczeniowej.

288771808067598483
Źródło zdjęć: © Budowa modułu Multithreaded Wide SIMD (Kliknij, aby powiększyć) (fot. IDG)

Larrabee od środka
Podstawę konstrukcji Larrabee stanowią odpowiednio zmodyfikowane jądra procesorów Pentium, zwane w tym wypadku jednostkami Multithreaded Wide SIMD. Każda z nich może jednocześnie obsłużyć cztery wątki. Budowa pojedynczego modułu Multithreaded Wide SIMD nie jest skomplikowana. Znaleźć w nim można znaną z procesorów Pentium unowocześnioną jednostkę ALU (Arithmetic Logic Unit), która w odróżnieniu od oryginału może wykonywać operacje 64-bitowe i pracować w trybie wielowątkowym. W celu jej uproszczenia konstruktorzy zrezygnowali z jednostek przewidywania skoków i rozgałęzień (Branch Prediction) oraz modułu Out of Order Execution wykonującego obliczenia poza kolejnością. Oznacza to, że Larrabee wykonuje rozkazy wyłącznie w kolejności, takiej jaką narzuca kod programu.

Drugim elementem składowym znajdującym się w module Multithreaded Wide SIMD jest jednostka wektorowa VPU (Vector Processing Unit). Składa się ona z wektorowej jednostki o szerokości wektora 1. oraz działa na liczbach pojedynczej i podwójnej precyzji. W czasie trwania cyklu zegarowego przetwarza szesnaście 32-bitowych operacji i potrafi między innymi wykonywać konwersje między różnymi formatami danych takimi jak Int32, FP32 i FP64 czy łączyć w jedną operację wielokrotne dodawanie na trzech argumentach. Oczywiście, wykonywane są przez nią również inne standardowo wymagane dla jednostek VPU operacje wektorowe. Układ Larrabee obsługiwać będzie także nowy zestawy instrukcji AVE (Advanced Vector Extensions), który ma pozwolić na jednoczesne przetwarzanie całych wektorów danych. Innymi słowy, instrukcje AVE są rozszerzeniem istniejących instrukcji SIMD, które mają przyspieszyć operacje przetwarzania grafiki trójwymiarowej.
Każdy z rdzeni Multithreaded Wide SIMD ma do swojej dyspozycji po 3. KB pamięci cache L1 dla instrukcji i 32 KB dla danych oraz wydzieloną dla siebie 256-kilobajtową pamięć L2. Do pamięci tej, jeżeli zachodzi taka potrzeba mogą odwoływać się również inne rdzenie - odbywa się to za pośrednictwem pierścieniowej, dwukierunkowej magistrali ring-bus o szerokości 1024 bitów (po 512 bitów w każdą stronę). Magistrala ta służy do komunikacji wewnątrz układu Larrabee - rdzenie komunikują się za jej pośrednictwem z kontrolerem pamięci, interfejsem odpowiedzialnym za wyświetlanie wygenerowanego obrazu oraz jednostką teksturującą. Dzięki pierścieniowej magistrali wymiana danych między poszczególnymi procesorami Multithreaded Wide SIMD jest wyjątkowo skuteczna. Po pierwsze procesory mogą przekazywać bezpośrednio między sobą dane jak również korzystać przy wymianie informacji z pamięci cache L2. Zysk wynikający z takiej architektury komunikacyjnej jest znacznie większy, gdyż dane pobrane przez jeden z rdzeni do własnej
pamięci L2 są również dostępne w razie potrzeby dla innych rdzeni i nie ma powodu korzystania wówczas z wolniejszej pamięci zewnętrznej.
Kontroler pamięci cache pierwszego i drugiego poziomu, w odróżnieniu od tego z oryginalnego Pentium, obsługuje funkcje prefetch, która pozwala na wcześniejsze pobranie przewidywanych danych z pamięci, które za chwilę mogą zostać użyte w obliczeniach. Jest to niezbędny warunek opłacalności wykonywaniu obliczeń typu SIMD, gdyż oczekiwanie na dane zniweczyłoby cały zysk płynący z jednoczesnego wykonywania jednej instrukcji na kilku operandach. Warto w tym miejscu dodać, że pamięć cache drugiego poziomu służy nie tylko do wymiany danych, ale również wykorzystywana jest jako bufor kolejności wymiany danych w rozgałęzieniach programowych.
Jednostka teksturująca
Jednak jednostki Multithreaded Wide SIMD, to nie jedyny typ modułów wykonawczych znajdujących się w Larrabee. Konstruktorzy tego układu postanowili zastosować w nim klasyczną jednostkę teksturującą. Taki specjalizowany moduł znacznie lepiej radzi sobie ze specyficznymi operacjami występującymi podczas teksturowania. Wynika to m.in. z pracy przy tworzeniu na blokach danych o wielkości 2×2 piksele, a wszelkie operacje filtrowania wymagają z kolei obliczeń 8-, a nie 64-bitowych, gdyż przy tworzeniu grafiki używa się właśnie przede wszystkim ośmiobitowych tekstur RGBA 8888. Jak wyliczyli inżynierowie z Intela wyspecjalizowana jednostka teksturująca wykona zadanie związane filtrowaniem w czasie ok. 12 razy krótszym niż rdzenie Larrabee i 40 razy szybciej przeprowadzi kompresję i dekompresję tekstur.

288771808067795091
Źródło zdjęć: © Schemat architektury Larrabee (fot. IDG)

Do zadań jednostki teksturującej należy wykonywanie wszystkich typowych operacji przeprowadzanych na teksturach, w tym kompresji i dekompresji tekstur, wykonywanie na nich operacji filtrowania anizotropowego dwu- bądź trzyliniowego, mapowanie tekstur, wykonywanie bump-mapingu, antyaliasingu, nakładania cieni oraz dodawanie w procesie postprocessingu tzw. efektów atmosferycznych czyli mgły, dymu, rozmycia ostrości, deszczu itp.

Rdzenie, rdzenie... zastosowania i sterowniki
Nasuwającym się na zakończenie pytaniem jest to w ile rdzeni Multithreaded Wide SIMD będzie wyposażony Larrabee. Z nieoficjalnych informacji wynika, że mają pojawić się wersje układu wyposażone w 8. 16, 24, 36 i 48 rdzeni Multithreaded Wide SIMD. Podobno pierwsza kość ma rozmiary samej krzemowej struktury wynoszące 5x5 cm - jest to na granicy możliwości technologicznych wykonywania półprzewodnikowych układów scalonych. Oznaczałoby to, że jako pierwsza światło dzienne ujrzy wersja 48-rdzeniowa - zobaczymy, czy tak będzie w rzeczywistości. Przewiduje się, że szybkość taktowania układu ma wynosić od 1,7 do 2,5 GHz. Sama wydajność Larrabee szacowana jest zaś na 1,7-2,5 TFLOPS-a. Układ współpracować ma z graficzną pamięcią GDDR5 o pojemności od 512 do 2048 MB.

288771808067991699
Źródło zdjęć: © Budowa jednostki wektorowej z modułu Multithreaded Wide SIMD (fot. IDG)

Tworzenie grafiki
Intel podkreśla, że Larrabee jest w stanie generować sceny 3. przy wykorzystaniu w czasie rzeczywistym techniki raytracingu. W dostępnych materiałach Intela, technologię tą określa się mianem RTRT (Real-Time RayTracing). Dla przypomnienia, w raytracingu pod uwagę bierze się światło pochodzące bezpośrednio ze źródeł światła, jak również odbite od znajdujących się na trójwymiarowej scenie przedmiotów, co mocno komplikuje obliczenia, ale daje znacznie lepszy efekt wizualny. Karty graficzne z układem Larrabee mogą być zatem wykorzystanie nie tylko do gier, ale również w zastosowaniach profesjonalnych. Wspomina się przy tym o ich wykorzystaniu w diagnostyce medycznej, tam gdzie na bieżąco generowany jest trójwymiarowy obraz prześwietlanych narządów. Oczywiście znajdą też swoje zastosowanie w symulacjach inżynierskich, wizualizacji i w projektowaniu CAD.
Unikatową cechą architektury Larrabee jest jego zgodność z dowolnym graficznym API. Nie ważne czy będzie to obecny DirectX 1. i OpenGL 2.0, czy powstały na przykład za dziesięć lat DX 30 i OpenGL 5.0. Ponieważ Larrabee jest układem w pełni programowalnym jego zgodność z API zależy tylko i wyłącznie od napisanych sterowników. Podobnie może on na przykład obsługiwać nowy typ interfejsu użytkownika, z którym nie poradzą sobie obecne karty graficzne. Nie istotny jest też dla niego system operacyjny w którym będzie działał. Jedyny warunek to ten, że oprogramowanie systemowe dla Larrabee musi być zgodne z kodem x86.
Larrabee ma się pojawić na rynku na początku 2010 roku i powalczy o serca graczy z najbardziej zaawansowanymi procesorami NVIDII i ATI. Intel nie podaje na razie żadnych dalszych szczegółów technologicznych, nie chce również ujawnić ile będą kosztowały karty z nowymi procesorami. Początek kolejnego roku zapowiada się jednak arcyciekawie, bo zarówno NVIDIA jak i ATI już teraz szykują się do odparcia konkurencji ze strony Intela.

Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (12)