Keresés

Hirdetés

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

  • con_di_B

    tag

    válasz Fiery #12 üzenetére

    Device-side kernel launch? Annak elvi szinten pont, hogy dGPU-n van tobb ertelme, ha tenylegesen gyorsabb mint a host-side kernel launch.

    Az SVM-hez meg a kotelezoen tamogatott szint az lenyegeben nem szigorubb, mint amit eddig is lehetett tudni egy normalis map/unmap implementacioval cimforditas mellett, nem?

    [ Szerkesztve ]

  • con_di_B

    tag

    válasz con_di_B #13 üzenetére

    Peldaul igy: CL_MEM_USE_PERSISTENT_MEM_AMD.

    Sosem hasznaltam, de ha jol ertettem, ezt tudja azt, hogy a buffer mindig ugyanoda pinnelodik.

    Ha jol ertem, ha ezt tudod, plusz meg annyit megcsinalsz, hogy a kernel launch automatikusan szinkron esemeny legyen, akkor gyakorlatilag kesz van a coarse grained SVM implementaciod. Nem teljesited betu szerint, hogy ugyanazt a virtualis pointert hasznalja a ket eszkoz, de osszesen egyszer tortenik cimforditas, a host oldalon nyugodtan rogzitheted a mutatoidat, ervenyesek fognak maradni, az meg, hogy a GPU valojaban mivel cimez az inkabb filozofiai problema. Ezen kivul az is problema, hogy rohadt sok pinned memory-t fogsz lefoglalni host oldalon, es jo esellyel ki is fogysz belole, dehat nem is azt mondtam, h ez egy jo megoldas, csak azt, hogy meg lehet csinalni.

    De javitsd ki ha tevedek, mert az uj 2.0-s feature-oket sajnos meg nem volt alkalmam kiprobalni a gyakorlatban, szoval lehet olyan scenario, amit ez nem fed le.

    A Fine grained SVM az nyilvan tok eselytelen, de az amugy is csak egy APU/SoC szeru allaton lehet erdekes, ennek megfeleloen, az eleve opcionalis feature.

    [ Szerkesztve ]

  • con_di_B

    tag

    válasz Fiery #15 üzenetére

    "OpenCL maintains memory consistency in a coarse-grained fashion in regions of buffers. We
    call this coarse-grained sharing. Many platforms such as those with integrated CPU-GPU
    processors and ones using the SVM-related PCI-SIG IOMMU services can do better, and can
    support sharing at a granularity smaller than a buffer. We call this fine-grained sharing. OpenCL
    2.0 requires that the host and all OpenCL 2.0 devices support coarse-grained sharing at a
    minimum." - OpenCL 2.0 Specification 5.6.1

    Szoval jah, az IOMMU csak egy pelda, hogy azzal pl lehet fine-grained-et csinalni. Viszont a coarse-grained meg kotelezo, ezert magyaraztam rola, hogy hogyan lehet rapatkolni IOMMU nelkuli, meg gyakorlatilag barmilyen hardverra. Csak ilyen szempontbol vizsgaltam a kerdest, maga a feature engem mindig is relative hidegen hagyott, es inkabb veszelyt latok benne, mert lehetove teszi a portolas "felgyorsitasat" legacy C/C++ kodokrol.

    Az OpenCL 1.x az annyira kotott memoriamodellel jott ki, hogy igy is ugy is at kellett varialni az adatszerkezeteidet, hogy egyaltalan futtathato programot kapjal (amibol nem mellesleg az ezutan elert speed-up nem kis resze szarmazott), ezzel szemben ha rafogod, hogy te marpedig fine-grained APU-kat tamogatsz kizarolag, onnantol kezdve barmennyire kokany meglevo adatszerkezetet radobhatsz a GPU-ra a meglevo (90%, hogy mar eleve optimalizalatlan, trehany) kodbazisodbol, aztan meg majd lehet csodalkozni, hogy miert sokkal lassabb, mint CPU-n volt.

    Aztan persze mondhatod, hogy ott van az az <1% az eseteknek, amikor valaki tenyleg valami ertelmes CPU-GPU ko-op funkciot irt, de mivel minimum ket kernel launchrol beszelunk, meg ket kulon device-rol, es a szinkronizacios primitivek meg nem lettek erosebbek a 2.x-ben sem, ezert a biztos mukodesert ugyanugy kenytelen leszel buffer-level szinkronizalni, ha van fine-grained support, ha nincs.

    Ennel rosszabb mar csak az lesz, amikor jonnek a szemaforok meg a felteteles valtozok, hogy a multi-threaded sracok is ugy erezzek, hogy ertenek valamihez... (bocs-bocs-bocs :R )

    [ Szerkesztve ]

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