Intel przedstawił informacje o swoich kartach graficznych Xe oraz 10-nanometrowych Xeonach. Kluczowe dla sukcesu tego rozwiązania może być jednak nowe oneAPI.
Wszyscy, którzy wróżyli Intelowi rychły koniec, bazując na sukcesach AMD z ostatnich kilkunastu miesięcy, powinni ugryźć się w język. Gigant z Kalifornii przedstawił informacje o swoich planach dla platform serwerowych na najbliższe dwa lata. Karty Intel Xe, procesory Xeon generacji Sapphire Rapids, pamięci DDR5 i PCIe 5.0. To czeka nas w najbliższej, bo sięgającej dwa lata do przodu, przyszłości.
„Niebiescy” mają naprawdę ambitne plany. Prezentację zaczęto od informacji iż to właśnie z wykorzystaniem podzespołów Intela powstanie Aurora – superkomputer budowany w USA, którego moc obliczeniowa ma przekraczać 1 exaflops. Jest, czy raczej będzie, on efektem współpracy Intela i Cray Inc. (obecnie należącej do HP Enterprise). Komputer ma składać się z bloków zawierających 2 procesory Sapphire Rapids i 6 układów graficznych bazujących na architekturze Xe. Na szczęście nie pozostawiono nas tylko z tą informacją – intel zdradził nieco więcej informacji na temat nowych CPU i GPU, oraz, co nie mniej istotne, nowego API, które ma umożliwić pisanie oprogramowania dla różnych platform sprzętowych znacznie łatwiej niż dziś.
Sapphire Rapids – Xeon przyszłości
Procesory, będące podstawą superkomputera Aurora, to w praktyce „młodsi kuzyni” zaprezentowanych w tym roku mobilnych procesorów Intel Ice Lake. Bazować będą na mikroarchitekturze Willow Cove, następcy, prawdopodobnie czerpiącym sporo z Sunny Cove. Bez wątpienia jednak nie będzie to tylko delikatna zmiana w samej architekturze – czeka nas nowy kontroler pamięci (DDR5) oraz nowa wersja interfejsu PCIe. Nie, nie czwarta, znana już z platform AMD, a kolejna, piąta. PCI Express 5.0 prawdopodobnie swój rynkowy żywot zacznie właśnie w serwerach z układami Intela. Sam CPU będzie zbudowany w procesie technologicznym 10 nm. Do czasu jego premiery Intel zapewne zdoła dopracować ów proces na tyle, aby osiągać wyższe niż obecnie częstotliwości.
Intel Xe – Ponte Vecchio
Gdybym miał wskazać jedną ze sprzętowych nowości, na które czekam najbardziej, to z całą pewnością byłyby to układy graficzne Intela zbudowane na nowej architekturze Xe. Zespół, który zbudowali „niebiescy” na potrzeby tego projektu składa się z wybitnych specjalistów w dziedzinie projektowania GPU. Dość powiedzieć, że na jego czele stoi „ojciec Radeonów” Raja Koduri (wcześniej w S3, ATI, AMD). Wersje konsumenckie kart z układami Xe powinniśmy zobaczyć, co potwierdzili przedstawiciele Intela podczas rozmowy z mediami, w której miałem przyjemność uczestniczyć, jeszcze w 2020 roku. Szczegóły pojawiły się jednak na temat wersji serwerowej, nazwanej Ponte Vecchio.
Nazwa odnosi się do słynnego mostu we Florencji. Nie wiem, czy Intel chciał w ten sposób zakomunikować solidność produktu (florencki most nie bez przyczyny nazywany jest starym – stoi w stolicy Toskanii od połowy XIV wieku. Nie zaszkodziła mu ani burzliwa historia miasta, ani nawet II Wojna Światowa) ale z pewnością sam GPU jest ciekawy. Przede wszystkim powstanie w litografii 7 nm i ma korzystać z interfejsu PCIe 5.0.
Intel wyjaśnił też przy okazji co rozumie pod pojęciem architektury Xe. Ma to być termin bardziej pojemny, coś jak GCN AMD, w którym zawierają się różne mikroarchitektury, bazujące jednak ogólnie na tym samym pomyśle. Dlatego też różnice między Ponte Vecchio, a konsumenckimi GPU Intela mogą być, i prawdopodobnie będą, znaczne. Mogą dotyczyć m.in. precyzji obliczeń i niektórych instrukcji, ale też budowy samego GPU. Pewną podpowiedzią może być ujawnienie przez Intela informacji, że Ponte Vecchio powstanie z wykorzystaniem technologii Foveros. Sugeruje to budowę bazującą na wielu jądrach, łączonych za pomocą pasywnej przekładki. Nie wiadomo jaką pamięć Intel zastosuje w tych układach – osobiście stawiałbym na HBM2. O ile w konsumenckich kartach cena tych pamięci może dosłownie zabić produkt, o tyle już w przypadku rozwiązań serwerowych nie ma to aż tak dużego znaczenia.
Ciekawy jest sposób łączenia kilku akceleratorów w blokach, z jakich składać się będzie superkomputer Aurora. GPU mają łączyć się za pomocą tzw. łącz CXL – w praktyce będących interfejsem PCIe 5.0 z dodatkowym usprawnieniem służącym skuteczniejszemu operowania pamięcią. W praktyce cały blok (2 x CPU + 6 x GPU) będzie mógł pracować na jednolitej przestrzeni adresowej. Na premierę tego rozwiązania musimy jednak zaczekać do 2021 roku.
oneAPI – wspólny interfejs dla rożnych platform
Sprzęt to tylko jedna ze składowych potencjalnego sukcesu – drugą jest oczywiście oprogramowanie. Od tego, jak skutecznie Intel zdoła zachęcić do pisania właśnie „pod” Xe, zależy ostatecznie to czy nowe GPU się przyjmą wśród użytkowników. Firma z Santa Clara jest tego z pewnością świadoma. Stąd pomysł na oneAPI. Ma ono pozwolić na tworzenie oprogramowania niezależnego od urządzenia. Jak ma to działać?
W pewnym uproszczeniu, dzięki oneAPI będzie można uprościć proces powstawania oprogramowania. Programista ma pisać kod w języku DPC++ (Data Parallel C++) rozwijanej przez Intela pochodnej C++ lub innych (acz niewymienionych z nazwy) aktualnie stosowanych języków programowania. Kod ma być potem kompilowany do formy zgodnej z zestawem instrukcji Level Zero. Ponieważ ba być to zestaw o jasnej strukturze i powszechnie dostępny, a przy tym wykonywany niezależnie od architektury GPU, tylko od producenta urządzenia będzie zależne to, jak dobrze wykorzysta ono swoją charakterystykę do wykonania kodu. Tyle teoria. Wczesną wersję oneAPI można wypróbować poprzez Intel Devcloud – usługę pozwalającą sprawdzić kod zdalnie, na demonstracyjnych komputerach zbudowanych w oparciu o podzespoły Intela.
Chociaż założenie jest ambitne, to nie da się nie zauważyć, że pomysł uniwersalnego API nie jest nowy i dotychczas działa on z dość mieszanym szczęściem. Najbardziej znanym przykładem jest chyba OpenCL, które, co znamienne, nie jest już rozwijane. Z oneAPI może być jednak inaczej, bo Intel może mieć wyraźnie większy wpływ na programistów niż niejedna organizacja czy firma. Tym samym może dość szybko doprowadzić do popularyzacji interfejsu programowania i zestawu Level Zero.