Czekacie na grafen? To może być ważniejsze. Czym jest HSA?

Artykuł/Sprzęt 26.11.2014
Czekacie na grafen? To może być ważniejsze. Czym jest HSA?

Czekacie na grafen? To może być ważniejsze. Czym jest HSA?

Heterogeniczna architektura systemu, czyli połączenie mocy obliczeniowej procesorów typu CPU i GPU. Tak w skrócie można zdefiniować to pojęcie. Ale co to tak naprawdę oznacza? I jakie korzyści z tego możemy czerpać?

Zbudować superszybki procesor, który ma gigantyczną moc obliczeniową to nie jest żaden problem. Problem w tym, że to nie jedyne kryterium, jakie producent musi wziąć pod uwagę. Liczy się też jego cena, rozmiar, energooszczędność i wiele innych parametrów. Projektowanie mikroprocesora to decydowanie się z czego trzeba zrezygnować, by osiągnąć coś innego. Na jaki kompromis pójść, by efekt końcowy wyszedł najlepiej. I jakie sztuczki zastosować.

Konsumencki komputer nie może być tylko i wyłącznie wydajny. Ma też długo pracować na baterii, być poręczny i niewiele ważyć. Warto też zdać sobie sprawę, że tego samego oczekuje się nawet od superkomputerów. Te nie mogą być zbyt drogie w eksploatacji, a na te koszty składają się przecież pobór prądu czy energia zużywana przez urządzenia chłodzące.

Nie należy jednak rozumieć tego tak, że wydajność przestała być ważna. Wręcz przeciwnie: to nadal najważniejsze kryterium dla mikroprocesora. Po prostu owa wydajność musi uwzględniać również inne kryteria. Od łatwości programowania procesora po jego niskie koszty produkcji i eksploatacji. Dlatego też inżynierowie głowią się nad kolejnymi „sztuczkami”, mającymi na celu zwiększenie użyteczności mikroprocesorów a zarazem zmniejszenie wyżej wspomnianych kosztów. Jednym z najnowszych pomysłów jest HSA, a więc Heterogeniczna Architektura Systemu.

Wyspecjalizowane procesory, które się nie dogadują

Komputery praktycznie od samego początku wyposażane były w co najmniej jeden procesor ogólnego zastosowania (CPU). Z czasem jednak nauka i technika nauczyły się jak konstruować układy scalone, które wspierałyby CPU w bardzo ważnej i wymagającej dużej mocy obliczeniowej kwestii, jaką jest renderowanie trójwymiarowej grafiki. Tak powstały procesory GPU, a więc wyspecjalizowane jednostki stworzone do jednego, konkretnego celu: przetwarzania wieloboków, tekstur i innych elementów wirtualnego świata.

graph_GPU_CPU

Odwzorowywanie jak najdokładniej otaczającego nas świata wymaga procesorów o mocy, która dla inżynierów nie jest jeszcze osiągalna. Ale ci bardzo się starają. Wystarczy porównać to, co było możliwe w grach wideo na konsolach sprzed dziesięciu lat i na aktualnie sprzedawanych. Z czasem okazało się, że przeliczenia, jakie wykonują dedykowane grafice GPU mają zastosowanie również i w innych problemach matematycznych. Okazało się, że GPU radzą sobie genialnie z równoległym przetwarzaniem danych, a CPU z resztą obliczeń.

Układy GPU są coraz potężniejsze i coraz wydajniejsze. Jednak ich związek z układami CPU do niedawna był znikomy. GPU nie potrafi funkcjonować bez CPU, to ten drugi układ zarządza pracą pierwszego, ale na tym, w dużym uproszczeniu, związek obu procesorów się kończy. A skoro już udało się dojść do tego, że zarówno CPU i GPU nadają się do ogólnych zastosowań, z czego każdy z procesorów jest lepszy do innych rodzajów przeliczeń, to może by tak zwiększyć związek między dwoma układami?

CPU i GPU w tandemie

Po co właściwie łączyć dwa procesory w jeden zgrany zespół obliczeniowy? Przede wszystkim po to, by ułatwić życie programistom. Każdy z układów ma osobną pamięć, więc dane muszą być za każdym razem przenoszone z jednej przestrzeni do drugiej. Na dodatek CPU, jak już wspominaliśmy wyżej, zarządza poprzez sterownik pracą GPU, co powoduje dodatkowe opóźnienia i daje niepotrzebny narzut na moc obliczeniową.

Tak powstał pomysł na HSA, czyli układ scalony integrujący CPU i GPU i pozwalający obu tym procesorom na ściślejszą współpracę, eliminując wyżej przedstawione wady. Dzięki HSA, aplikacje mogą tworzyć struktury danych w pojedynczej przestrzeni adresowej, a ich przetwarzaniem zajmie się układ który lepiej się do tego nadaje, nie wchodząc zarazem w drogę drugiemu. Korzyści, jak się okazało, są gigantyczne.

HSAAcceleratedProcessingUnit

AMD, jedna z firm zajmujących się promocją HSA, sprawdziła ile w efekcie możemy zyskać. Wykorzystała do tego oprogramowanie Haar Face Detects które służy do rozpoznawania twarzy w strumieniu wideo. Porównano wersję pracującą w standardzie OpenCL ale niezoptymalizowaną pod HSA oraz taką, która uwzględnia nową architekturę (przy czym optymalizacja była prosta, w formie rozszerzeń do kodu napisanego w C++). Efekt? 2,3-krotne zwiększenie wydajności przy 2,4-krotnym zredukowaniu poboru prądu.

Sprzęt już jest, czemu więc nadal brakuje aplikacji?

Opracowanie sprzętu to dopiero połowa sukcesu. Producenci sprzętu muszą również zaprojektować procesory i dokumentację tak, by programistom było jak najłatwiej pisać aplikacje wykorzystujące moc HSA. A to wcale nie jest takie proste i oczywiste. W dzisiejszych czasach nie mamy jednej, obowiązującej platformy sprzętowej i software’owej. Deweloperzy muszą przewidzieć przeróżne architektury i systemy operacyjne, a to dla nich są bardzo duże koszty. Dlatego też starają się pisać kod w sposób uniwersalny, by przy okazji decyzji na udostępnienie programu na inną platformę, pracy nad portowaniem tejże aplikacji było jak najmniej.

W tym celu powołano Fundację HSA, której założycielami są AMD, ARM, Imagination Technologies MediaTek, Texas Instruments, Samsung i Qualcomm. Fundacja ta ma zająć się wspieraniem i promowaniem otwartych standardów do ujarzmienia możliwości, jakie drzemią w nowej architekturze. Przykładowym efektem tych prac jest niskopoziomowa warstwa interfejsu o nazwie HSAIL (HSA Indermediate Language), dzięki której deweloperzy nie muszą optymalizować kodu pod różne kombinacje CPU i GPU.

Istnienie tej fundacji jest niezbędne do popularyzacji HSA z bardzo prostego względu: przekonywanie poszczególnych twórców oprogramowania do optymalizacji kodu pod nowe rozwiązanie sprzętowe jest skazane na porażkę. Tych twórców jest zbyt wielu, a na dodatek nie każdy może dostrzec dla siebie korzyści w optymalizacji pod HSA. Kluczowym jest więc ułatwianie życia deweloperom jak tylko się da i zapewnianiu im odpowiednich narzędzi, by ci nie musieli ich szukać i tworzyć na własną rękę.

HSASolutionStack

Pracy przed fundacją jest jeszcze sporo. Zwłaszcza, że dwóch istotnych dla rynku graczy, a więc Intel i Nvidia, nie są zainteresowane promocją tego standardu, a sama fundacja działa raptem od dwóch lat. Postępy jednak widać już teraz. Warto przypomnieć, że dwie najbardziej liczące się konsole do gier zapewniają twórcom gier i aplikacji na nie pełnię dobrodziejstw tej architektury. Coraz więcej aplikacji na PC również powstaje z uwzględnieniem tej architektury. HSA jest też już częścią specyfikacji OpenCL 2.0 a Windows 10, a więc platforma mająca napędzać szeroki przekrój urządzeń, od Xboxa One, przez tablety, gadżety iOT i komputery osobiste aż po smartfony daje duże nadzieje na unifikację sposobu pisania aplikacji z uwzględnieniem możliwości, jakie zapewnia HSA.

Reszta to tylko kwestia czasu.

*Ilustracja tytułowa pochodzi z serwisu Shutterstock

Dołącz do dyskusji

*/ ?>
Advertisement