Komputery

HSA - teraźniejszość i przyszłość

przeczytasz w 1 min.

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.

Komentarze

16
Zaloguj się, aby skomentować
avatar
Komentowanie dostępne jest tylko dla zarejestrowanych użytkowników serwisu.
  • avatar
    wdowa94
    1
    I to jest to nad czym myślałem 4 lata temu, nawet opracowałem ideeę działania, a tutaj okazuj się że ktoś już pracuje nad tym żeby niemalże identyczna idea (z tego co widzę to jeszcze niedokończona, co wyjdzie w praniu) dostała się do naszych urządzeń.
    Co prawda nie zauważyli jeszcze podstawowych problemów takiego systemu, ale w końcu się zorientują i wyjdzie II generacja które będzie 3-4x wydajniejsza na tych samych procesorach ;)
    • avatar
      Pan Kierownik
      0
      "Inteligentne" kierowaniu obliczeń do układu, który poradzi sobie najszybciej z danym zadaniem oznacza brak wyspecjalizowanego kodu dla GPU/CPU co w praktyce zmniejszy wydajność w stosunku do dzisiejszych rozwiązań. Po prostu nie da się zrobić szybkiego kodu działającego na GPU jeśli ten kod nie jest napisany specjalnie dla GPU. Szybkość programów dla GPU wynika właśnie ze znajomości przez programistę architektury na GPU i odpowiedniej modyfikacji algorytmu aby do tej architektury pasował, tego nie da się zrobić jakimś "inteligentnym" automatem, który w magiczny sposób przerobi kod z CPU na GPU.

      Wygląda na kolejny cudowny wynalazek w stylu JAVA czy C#, który ma przyśpieszyć pisanie programów ale kosztem wydajności w stosunku do dzisiejszych rozwiązań.
      • avatar
        mjwhite
        0
        Z innej beczki...

        Jak wynika z wykresów jedynej słusznej firmy, przyspieszanie wydajności single core stoi pod znakiem zapytania, więc na mizerne przyrosty SB/IVY/HAS narzekacie chyba zupełnie NIESŁUSZNIE!
        • avatar
          eryk1310
          -1
          zobaczymy jakiego kopa da to w grafice :)
          • avatar
            Konto usunięte
            0
            Moglibyście objaśnić ten ostatni wykres.

            To może ja :)

            Kolorowy słupek to ilość linii kodu (LOC), szary to wydajność.

            Serial - szeregowe (nie wiem czy to się tak tłumaczy) rozwiązanie problemu, czytaj: jeden wątek.
            TBB - rozwiązanie Intela do rozbicia problemu na wiele wątków (testy były przeprowadzane na 5800K czyli mamy do dyspozycji cztery wątki).
            Intristics+TBB - szczerze mówiąc nie wiem, w każdym razie to jest max, co możemy wyciągnąć z CPU.
            OpenCL - C - chyba nie trzeba wyjaśniać :)
            OpenCL - C++ - j. w. tylko w C++.
            C++ AMP - wynalazek Microsoftu.
            HSA Bolt - biblioteka do obliczeń heterogenicznych, w sumie to nakładka na OpenCLa, dlatego kod jest krótszy, a wydajność niemal taka sama.
            • avatar
              Konto usunięte
              0
              Gdzie news o HSAemu, nowych członkach fundacji, w tym VIA i s3? Gdzie informacja, że VIA zgłasza patenty na procesory z instrukcjami x86 i ARM, heterogeniczne i sprzętowy emulator? https://encrypted.google.com/search?tbo=p&tbm=pts&hl=en&q=inassignee:%22VIA+Technologies,+Inc.%22#hl=en&q=x86+inassignee%3A%22VIA+Technologies%2C+Inc.%22&start=10&tbm=pts&tbs=sbd:1 Gdzie info, że Power8 od IBM przypomina HSA, a fundacja nie ujawniła jednego członka?
              • avatar
                Konto usunięte
                0
                IMO ten projekt jest skazany na sukces. Trzymam kciuki.
                • avatar
                  Konto usunięte
                  0
                  Z punktu widzenia programowania niby to łatwiejsze a niby nie. Gdy nie trzyma jas już adresowanie 32 bitowe ma to sens :) Karta graficzna jednak ma potencjał w obliczeniach równoległych i wypada z kilkaset razy szybciej od CPU problem jednak polega na tym że trzeba rozbić obliczenia na taki sposób działania co nie zawsze się da zrealizować. Obecnie CPU są nie wykorzystywane w wielordzeniowości to co dopiero jak dostanie się 2000 rdzeni a za kilka lat pewno i z 5000 jak to wejdzie :D ja bym się boomu w grach nie spodziewał za to w obliczeniach profesjonalnych to powinien być progres niesamowity.