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

  • Abu85

    HÁZIGAZDA

    válasz namaste #28116 üzenetére

    De nem garantálja, hogy a wave-ek a beérkezés sorrendjében futnak le. Ez egy GPU-s specialitás. A wave-ek várnak az adatra, és közben átadják az erőforrást más wave-eknek, amelyeknek esetleg már befutott az adatuk. Ez pedig azt jelenti, hogy a kreálásuk sorrendjétől eltér a lefutási sorrend. Kicsit, de eltér.
    Ennek a korrigálására jön a global ordered append csoport, ami tulajdonképpen garantálja, hogy wave-ek munkája a submission sorrendjében fejeződik be a teljes lapkán belül. Hasonló az elv, mint a ROVs esetén, csak compute shaderekre.
    Na most erről többször értekezve lett már számos szakmai fórumon, hogy erre azért baromira kell gyúrni hardverből is. Leginkább egy globális adatmegosztásra fenntartott memóriával, amivel szinkronizálható a wave-ek munkája. Ha ilyen nincs a hardverben, akkor a szinkronizálás elvégezhető a VRAM-ban, csak hát az nem egy gyors dolog lesz.

    Azért érdemes egyébként a lapkán belül tartani a munkát, mert a szinkronizáláshoz az kell, hogy multiprocesszoronként csak egy wave fusson, tehát eleve kiesik egy csomó sebesség azáltal, hogy nem lehet átlapolni a memória-hozzáférés késleltetését. Ez ellen lehet küzdeni persze előbetöltéssel. Viszont a szinkronizáció idejére le is kell állítani a munkát, vagyis okvetlenül fontos, hogy maga a szinkronizálás pár órajel alatt meg legyen oldva, és ne kelljen sokszáz ciklust várni a VRAM-ba való trippel.

    [ Szerkesztve ]

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

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