Mark Fernandez, główny naukowiec ds. technologii kosmicznych oraz główny badacz programu HPE Spaceborne Computer-2 w firmie Hewlett Packard Enterprise, w komentarzu dla ISBtech o tym co zdefiniuje przyszłość informatyki.
Kiedy mówi się o konsoli Nintendo 64, uwaga zwykle skupia się na grach, dzięki którym środowiska 3D po raz pierwszy stały się intuicyjne i realistyczne. Mało kto zdaje sobie sprawę, że ten przełom nie był wyłącznie wynikiem innowacji w branży rozrywkowej [1]. Opierał się na dziesięcioleciach prac inżynieryjnych w dziedzinie wysokowydajnych obliczeń komputerowych (HPC), w szczególności w takich obszarach jak symulacje lotu, wizualizacja naukowa i renderowanie w czasie rzeczywistym.
Dlaczego ta historia ma znaczenie? Ponieważ opowieść o współczesnych procesorach graficznych i superkomputerach AI często skupia się na jednym aspekcie: branża gier stworzyła procesory graficzne, które później stały się niezbędne dla sztucznej inteligencji. I to jest prawda, ale nie cała prawda. Na długo zanim GPU zaczęły odgrywać kluczową rolę w AI, w ramach systemów IT dla firm i instytucji naukowych wypracowano wiele zasad, które umożliwiły rozwój zaawansowanej grafiki: obliczenia równoległe, szybki przesył danych, pamięć współdzieloną i ściśle zintegrowane systemy. Firma Silicon Graphics Inc., czyli SGI, pomogła przenieść te zasady do obliczeń wizualnych, a jej technologie i kultura inżynieryjna stały się później częścią HPE, gdzie były dalej rozwijane, aby napędzać najszybsze współczesne superkomputery.
Architektura stojąca za konsolą
Aby zrozumieć, dlaczego system Nintendo 64 miał kluczowe znaczenie dla rozwoju
branży gier, warto przyjrzeć się jego konstrukcji. U podstaw systemu leżały dwa główne elementy. Pierwszym był CPU – procesor centralny, zaprojektowany do szybkiej i wydajnej obsługi zadań ogólnych. Drugim był dedykowany układ graficzny i multimedialny, opracowany z wykorzystaniem wiedzy specjalistycznej SGI i oparty na rozwiązaniach stosowanych w wysokiej klasy stacjach roboczych do zastosowań filmowych, projektowych i naukowych.
Mówiąc najprościej, konsola dzieliła pracę. Układ CPU odpowiadał za ogólną logikę gry, natomiast układ graficzny koncentrował się na tworzeniu obrazów wyświetlanych na ekranie. Taki podział był ważny, ale prawdziwy przełom nie wynikał z działania któregokolwiek z tych elementów osobno. Kluczowy był sposób, w jaki współpracowały one ze sobą za pośrednictwem szybkiej architektury pamięci współdzielonej.
Wiele zastosowanych rozwiązań, takich jak nakładanie tekstur i równoległe przetwarzanie obrazów, wykorzystywano już wcześniej w systemach 1 Nintendo and Silicon Graphics join forces to create world’s most advanced video entertainment technology specjalistycznych. Wyzwaniem było dostosowanie tych koncepcji do kompaktowego i przystępnego cenowo urządzenia, przy zachowaniu wydajności wystarczającej do płynnego wyświetlania grafiki 3D w czasie rzeczywistym.
W ten sposób konsola pozwoliła wyciągnąć jedną z najważniejszych lekcji dla współczesnej informatyki: wydajność nie zależy wyłącznie od szybkości wykonywania obliczeń przez procesor. Liczy się również to, czy system jest w stanie dostarczać dane do każdego elementu we właściwym czasie. Jeśli przepływ danych stanie się wąskim gardłem, nawet najszybszy procesor na świecie będzie spędzał zbyt wiele czasu na oczekiwaniu.
Od równoległego przetwarzania grafiki do obliczeń akcelerowanych
Druga lekcja płynęła z samej grafiki: niektóre problemy są zbyt złożone, aby można je było skutecznie rozwiązywać krok po kroku. Weźmy grafikę 3D. Zanim cokolwiek pojawi się na ekranie, system musi przekształcić każdy obiekt w przestrzeni: określić jego położenie, obrócić go, wyświetlić na ekranie i obliczyć sposób, w jaki reaguje na światło. W konsoli Nintendo 64 zadanie to wykonywał dedykowany procesor wektorowy wywodzący się ze stacji roboczych SGI.
Prawdziwe wyzwanie pojawia się później: trzeba przekształcić geometrię w piksele. Każda klatka wymaga obliczenia koloru milionów pikseli, nałożenia tekstur, ustalenia głębi i łączenia powierzchni kilkadziesiąt razy na sekundę. Tej pracy nie da się wykonywać sekwencyjnie, dlatego systemy graficzne projektowano tak, aby przetwarzały równolegle wiele pikseli.
Przełomem było przetwarzanie równoległe, czyli wykonywanie wielu podobnych obliczeń w tym samym czasie. Wymaga to doprecyzowania, ponieważ przetwarzanie równoległe nie narodziło się wraz z zaawansowaną grafiką. Superkomputery oparte na procesorach CPU od dawna wykorzystywały tę metodę, łącząc wiele procesorów ogólnego przeznaczenia, aby mogły wspólnie rozwiązywać złożone problemy naukowe.
Grafika przyniosła inny rodzaj przetwarzania równoległego, zoptymalizowany pod kątem stosowania podobnych operacji do dużych ilości danych wizualnych. Inżynierowie dostrzegli, że ten model, ukierunkowany na wysoką przepustowość, może znaleźć zastosowanie daleko poza grafiką: nie zastąpił superkomputerów opartych na CPU, lecz je uzupełnił. Układy GPU zaczęły pełnić funkcję akceleratorów w zadaniach o wysokim stopniu równoległości, podczas gdy CPU nadal odpowiadały za koordynację, sterowanie i szerszą organizację działania systemu.
Ta obserwacja doprowadziła do powstania tego, co dziś nazywamy GPGPU (general- purpose computing on GPUs), czyli obliczeniami ogólnego przeznaczenia na procesorach graficznych – jednego z fundamentów sztucznej inteligencji. Trenowanie sieci neuronowej sprowadza się na przykład głównie do powtarzania prostych obliczeń, takich jak mnożenie i dodawanie liczb, na bardzo dużych zbiorach danych. Doskonale odpowiada to możliwościom sprzętu zaprojektowanego do równoległego wykonywania wielu podobnych operacji.
Prowadzi to do trzeciej i najważniejszej lekcji: szybki układ nie oznacza automatycznie szybkiego komputera. Seymour Cray, ojciec współczesnych superkomputerów i wizjoner stojący za technologią oferowaną dziś w ramach rozwiązań HPE Cray, powiedział kiedyś: „Każdy może zbudować szybki procesor CPU. Sztuką jest zbudować szybki system”. W erze eksaskali ta sama logika dotyczy GPU. Surowa moc obliczeniowa ma znaczenie, ale to architektura otaczająca procesor decyduje o tym, czy można tę moc efektywnie wykorzystać.
System znaczy więcej niż czip
Nintendo 64 pokazało, jak staranna integracja może umożliwić praktyczne zastosowanie zaawansowanych technologii graficznych w kompaktowym urządzeniu konsumenckim. Nie chodziło jedynie o zminiaturyzowanie technologii stosowanej w stacjach roboczych. System musiał zapewniać równowagę między wydajnością, kosztem, pamięcią, przesyłem danych i szybkością reakcji w czasie rzeczywistym, a wszystko to w obudowie, która miała zajmować jak najmniej miejsca w domu.
Współczesne superkomputery rozwiązują znacznie większą wersję tego samego problemu. Zamiast koordynować procesor CPU, podsystem graficzny i pamięć konsoli, muszą łączyć ogromną liczbę procesorów CPU i GPU, systemów pamięci, warstw pamięci masowej oraz komponentów oprogramowania, tak aby działały jak jedna spójna maszyna. Bez takiego projektowania na poziomie całego systemu wydajność szybko spada, niezależnie od mocy poszczególnych procesorów.
W tym miejscu decydujące znaczenie zyskuje dziedzictwo technologii HPE Cray. Frontier, pierwszy na świecie superkomputer eksaskalowy, zdolny do wykonywania ponad tryliona operacji na sekundę, powstał w oparciu o architekturę HPE Cray EX. Swojej wydajności nie zawdzięcza on wyłącznie układom GPU. Wynika ona ze współdziałania procesorów CPU i GPU, szybkich połączeń, odpowiednio zaprojektowanej pamięci, pamięci masowej i oprogramowania w ramach jednego systemu. W porównaniu z pierwszymi systemami Cray, podstawowe wyzwanie pozostaje znajome: minimalizować oczekiwanie, maksymalizować użyteczne obliczenia i utrzymywać przepływ danych.
Zmieniły się natomiast skala, gęstość i złożoność architektury. Eksaskala wymaga koordynowania znacznie większej liczby równoległych zadań na znacznie większej liczbie komponentów, przy jednoczesnym kontrolowaniu opóźnień, zużycia energii i przepływu danych na poziomie, z którym wcześniejsze systemy nigdy nie musiały się mierzyć.
Nieprzerwana podróż technologiczna
Konsole domowe przeniosły część zasad konstrukcji superkomputerów do urządzeń
konsumenckich: kompaktowych, ekonomicznych, ściśle zintegrowanych i skoncentrowanych na wydajności w czasie rzeczywistym. To właśnie ta adaptacja sprawia, że konsola stanowi ważny punkt odniesienia.
Dziś te same zasady są stosowane w przeciwnym kierunku i na radykalnie większą skalę. Sztuczna inteligencja i odkrycia naukowe zależą od systemów, które potrafią inteligentnie dzielić pracę, przetwarzać wiele zadań równolegle i przesyłać dane na tyle szybko, aby zasoby obliczeniowe nie pozostawały bezczynne. Związek między maszyną do gier a eksaskalą nie polega na tym, że pierwsza bezpośrednio zainspirowała stworzenie drugiej. Obie odzwierciedlają tę samą dyscyplinę inżynieryjną: projektowanie każdego elementu systemu w taki sposób, aby wydajność nie pozostawała uwięziona w pojedynczym komponencie.
Od konsolowej architektury pamięci współdzielonej, przez kompleksową architekturę systemową superkomputera Frontier, aż po wysokowydajne obliczenia w przestrzeni kosmicznej, pytanie pozostaje niezmienne: jak zbudować system, w którym nic nie musi czekać? Odpowiedź HPE ewoluowała wraz ze stacjami roboczymi, superkomputerami Cray, współczesnymi systemami AI i kosmicznym HPE Spaceborne Computer.
Przyszłości informatyki nie zdefiniują wyłącznie szybsze układy, nawet układy kwantowe. Zdefiniuje ją zdolność do połączenia wielu wydajnych elementów w jeden spójny system.
































































