HSA nie jest alternatywą OpenCL
HSA i hUMA - ostatnio te dwie nazwy często występują w jednym zdaniu. Chociaż dotyczą różnych rzeczy odnoszą się do jednego - obliczeniach w heterogonicznych środowiskach, a dokładnie procesorach złożonych z różnych jednostek obliczeniowych. Mowa tu oczywiście o CPU (procesor to obliczeń ogólnych) i GPU (układ graficzny). Doskonałym tego przykładem jest APU AMD, procesory Intela wyposażone w zintegrowaną grafikę, czy choćby układy ARM stosowane w tabletach i smartfonach.
Z okazji corocznego sympozjum Hot Chips odbyła się telekonferencja poświęcona nowościom z dziedziny HSA, którą poprowadził szef Fundacji HSA - Phil Rogers. Oczywiście nie mogło zabraknąć przedstawicieli ARM, Qualcomma i AMD.
HSA jest fundacją powstałą w czerwcu ubiegłego roku, która została założona między innymi przez firmy ARM i AMD, która zajmuje się opracowywaniem metod programowania właśnie dla systemów heterogenicznych (rozwinięcie nazwy HSA to Heterogenous System Architecture). HSA pracuje nad tym, aby układy wyposażone w różne jednostki obliczeniowe (jak choćby SoC), były łatwiejsze do programowania i optymalizacji, mogły pracować z większą wydajnością oraz pobierały mniej energii. Na początku HSA skupia się oczywiście nad efektywnym włączeniem do obliczeń układu graficznego, ale jak twierdzą przedstawiciele organizacji, jest to dopiero początek.
O specyfikacji HSA szybko stało się głośno i okrzyknięto ją następcą OpenCL, czyli platformy programistycznej, która pozwala przeprowadzać obliczenia zarówno na CPU i GPU. Obecne rozwiązania OpenCL mają jednak swoje minusy, choćby w postaci znacznie bardziej skomplikowanego programowania. Zastąpienie OpenCL przez HSA nie jest to do końca prawdą. Architektura HSA nie zastępuje OpenCL, a jedynie pozwala na jej szybszą i bardziej efektywną implementację.
Prace postępują w różnych rejonach, między innymi przy włączeniu obliczeń OpenCL do platformy Java. Projekt Sumatra ma za cel umożliwienie aplikacjom Java wykorzystanie do obliczeń również układów graficznych. Docelowo deweloperzy przy użyciu obecnych bibliotek będą mogli wykorzystać akcelerację GPU bez żadnych zmian w kodzie. Jak na razie ostrożnie mówi się, że pełna funkcjonalność ma pojawić się wraz z Java 9, czyli okolicach 2015 roku. Cóż... poczekamy, zobaczymy.
HSA - teraźniejszość i przyszłość
W specyfikacji HSA często wspomina się o "inteligentnym" kierowaniu obliczeń do układu, który poradzi sobie najszybciej z danym zadaniem. Wiadomo, że z niektórymi obliczeniami znacznie lepiej poradzi sobie CPU (niewiele wyspecjalizowanych jednostek), a z innymi GPU (wiele prostych jednostek obliczeniowych). Dzięki temu możliwe jest równoczesne zwiększenie wydajności i zmniejszenie poboru energii.
Omówiono również korzyści płynące ze współpracy CPU i GPU na przykładzie silnika fizycznego w grach. Zwrócono uwagę, że obecne algorytmy fizyczne wykorzystujące akcelerację GPU wykorzystywane są wyłącznie w efektach, a nie mają żadnego wpływu na samą rozgrywkę. Dzięki HSA silnik fizyczny będzie mógł kierować obliczenia równocześnie do CPU i GPU operując na tej samej przestrzeni adresowej. Nie trzeba będzie przenosić danych, ale obliczenia do danej jednostki. Każdy układ będzie zajmował się takimi obliczeniami, które będzie mógł wykonać najszybciej.
Na zakończeniu konferencji omówiono problematykę długości programu względem jego wydajności. Jak widać na poniższym slajdzie, zastosowanie OpenCL może skutkować znacznym zwiększeniem wydajności, jednak kosztem długości programu. Inaczej mówiąc programowanie staje się bardziej skomplikowane i czasochłonne. Specyfikacja HSA ma doprowadzić do sytuacji, gdy stworzenie oprogramowania wykorzystującego możliwości wszystkich zasobów systemu (CPU + GPU) będzie szybkie i proste, przy potężnym wzroście wydajności.
Tendencja do wykorzystywania obliczeń różnych rodzajów układów może tylko cieszyć. Dzięki architekturze hUMA (zunifikowana pamięć), w której CPU i GPU posiadają równorzędny dostęp do tej samej przestrzeni adresowej, HSA ma zrewolucjonizować działanie układów wyposażonych w różne jednostki obliczeniowe. Plany są ambitne, a prace postępują pełną parą. Pozostaje nam czekać na dalsze szczegóły oraz pierwsze układy wykorzystujące architekturę HSA.