Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Löncsi

    őstag

    válasz DRB #29 üzenetére

    Program sose fér közvetlenül a hardverhez, API mindig kell. Általában minél magasabb szintű, annál kényelmesebb benne kódolni (pl. Java), de lassabb. Jelenleg a GPU programozás gyors, de alacsonyszintű (OpenCL, CUDA stb.), HSa ezt akarja egyszerűsíteni.

    Elvették a radírját, azt az egész élete egy nagy kompenzálás, hogy ő igenis kan és igenis 2 méteres a fallosza - by stranger28

  • Löncsi

    őstag

    válasz DRB #31 üzenetére

    HSA is egy API lesz, gyors és könnyű fejlesztést előtérbe rakva, teljesítmény viszont biztos csorbát szenved.

    Konzolon is van API, csak low-level, hatékonyabb kódot lehet írni, csak több idő és pénzbe kerül, illetve az Xbox-os kód csak Xbox-on tud futni és slussz, hardvert nem cserélheted ki alatta. Itt esetleg az Unreal motor ami kivétel, ott gyorsan lehet portolni a megírt cuccot más platformra.

    [ Szerkesztve ]

    Elvették a radírját, azt az egész élete egy nagy kompenzálás, hogy ő igenis kan és igenis 2 méteres a fallosza - by stranger28

  • Abu85

    HÁZIGAZDA

    válasz DRB #29 üzenetére

    Az API-t azt tényleg hagyjuk most mert ez nem az. Ez az API és a hardver között lehet. De elsősorban a GPU compute a cél. A DX-szel nem akar mit kezdeni, egyelőre.
    A működés le van írva a cikkben. Megírsz egy programot OpenCL-ben mondjuk, de úgy, hogy csak az algoritmussal és a futtatással törődsz. A HSA Runtime lesz az a köztes réteg, mely helyetted elvégzi a párhuzamosítást. Ezután jönnek a gyártóspecifikus dolgok, amik a HSAIL kódot a fizikai hardverre fordítják.

    (#34) DRB: A konzoloknak van low-level API-juk, de mivel a hardver adott, így érdemes kézzel optimalizálni a kritikus részeket. Ezzel még így is sokat lehet nyerni. Persze nem kötelező, de az exkluzív címek azért néznek baromira jól ki, mert a fejlesztők megteszik.

    (#33) juzer78: Leegyszerűsítve ez lenne a lényeg, de nem API a HSA, hanem vISA. Illetve a finalizer felel a HSAIL hardverre való fordításáért. Külön optimalizáció pedig itt is kelleni fog. A HSA ad egy nagyon jó alapot, de a legjobb teljesítményhez szükséges a specifikus optimalizálás. A funkcionalitás persze nem szenved csorbát optimalizálás nélkül.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Löncsi

    őstag

    válasz DRB #34 üzenetére

    hogy konzolon nincs API

    Van... ha nem lenne, bekacsolni se tudnád kb a gépet.

    PS/Xbox-nak van saját felülete, PC-n pedig ott az OpenGL/DirectX a grafikához.

    Elvették a radírját, azt az egész élete egy nagy kompenzálás, hogy ő igenis kan és igenis 2 méteres a fallosza - by stranger28

  • huskydog17

    addikt

    LOGOUT blog

    válasz DRB #41 üzenetére

    Nekem is hasonló a gondolkodásmódom, bár Abu azt írta, hogy ez a HSA cucc a hardver és API közé ékelődik be. Tehát így lesz egy plusz lépcsőfok, ami nekem csak egy újabb lassítást jelent, hiszen még egy réteget beiktatnak.

    Amúgy nekem HSA BOLT függvénytárról rögtön az azonos nevű film jutott az eszembe. :D

    Gameplay csatornám: https://www.youtube.com/channel/UCG_2-vD7BIJf56R14CU4iuQ

  • P.H.

    senior tag

    válasz DRB #41 üzenetére

    A HSA a leírt két definíciód között van (ahogy az említett nVidia PTX is pl.):

    - API sok helyen és sok szinten van, előre megírt/megvalósított eljárások összessége, pl. legalapvetőbben OS szinten is így megvalósítható az, hogy egy-egy alkalmazás memóriát foglaljon, írjon/olvasson lemezre, mutasson valamit a képernyőn úgy, hogy ne kelljen a legalacsonyabb szinten megvalósítani külön-külön minden programozónak ezeket (és/vagy az egymás mellett futó programok ne zavarják egymást). Ilyen szempontból a BIOS egy része is API ugyanúgy, ahogy az OpenGL is az, de más-más szinten és célra.

    - az utasításkészleteket közvetlenül megértik a CPU-k, GPU-k, vezérlők (pl. egy-egy SmartCard-szabványnak is eltérő utasításkészlete van, amit megért); ritkábban a nekik megfelelő gépi kóddal, gyakrabban az azt leképező assembly nyelvvel közvetlenül használhatóak (ez például az R600-ra épülő Radeon GPU utasításkészletének leírása). Így bármi megírható rájuk, de az csak azon az architektúrán fut egyáltalán vagy hatékonyan.

    A HSA, a PTX és a többi virtuális ISA a kettő között van: a hardware nem érti meg közvetlenül, ezért fordítani kell külön ARM-ra, x64-re, nVidia-ra, bármire, ami támogatja, de assembly nyelven leírható elemi utasításokból épül fel (mint pl. a PTX), magasabb szintű programozási struktúrák nélkül (nincs for ciklus vagy while se). Egy-egy ilyen vitruális utasítás gépi megvalósítása lehet direkten leképezhető egy-egy gépi utasításra (erre törekszenek a HSA-nál a belépő támogatók, a PTX-nél az nV), vagy sokra (ez a teljesítmény rovására megy, de korábbi hardware-ken is futnak az újabb verzióra épülő programok; gyenge példaként mintha egy AVX-re fordított program is futna egy P3-mon, csak lassan - ezért jó hasonlat a Java).

    Kb. ilyen a viszony a tradicionális API-k és a virtuális ISA-k között, amit ez a dokumentáció mutat , címe "Using inline PTX assembly in CUDA". A PTX-re lefordított bytekódot az nVidia semelyik GPU-ja nem érti meg közvetlenül (a CUDA-programozási környezetek erre fordítanak), a driver-ben van a végső fordító. Viszont egyrészt egyszer, a program az indításakor fordul le PTX-ből arra a gépben levő GPU által megértett gépi kódra, futás közben nem lassít a fordítás ˇ(lásd Java), másrészt erre a szintre lehet más komolyen optimalizálni (mivel a legtöbb vISA utasításnak közvetlenül egy-egy gépi utasítás felel meg; amelynek most nem, annak a következő generációs hardware-ben már meg fog).

    [ Szerkesztve ]

    Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Új hozzászólás Aktív témák