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

  • Abu85

    HÁZIGAZDA

    válasz Oliverda #35681 üzenetére

    Durva, hogy még mindig nem világos a HBCC, de megpróbálom még egyszer. Szóval a HBCC a WDDM 2.0 alá készült. Mivel a Radeon Instinct egy olyan hardver, ami egyáltalán nem fog találkozni Windows környezettel, így ott a HBCC nem is működik. Természetesen Linuxra is megoldható lenne, csak maga a Linuxra szabott ROCm környezet lehetővé teszi a közvetlen memóriamenedzsmentet, tehát nem az OS-en keresztül lesz a memória allokálva, hanem maga a program intézheti ezt az OS kernel megkerülésével. A HBCC ilyenkor nem tud sokat hozzátenni, mert maga a program tudja, hogy mik az igényei, így képes olyan memóriamenedzsmentet biztosítani, amire a hatékony működéshez szüksége van. A HBCC azokban az esetekben hasznos, amikor az OS vezérli ezt, mert az OS sajnos buta hozzá, hogy minden programra optimálisan reagáljon, ezért az allokáció is olyan általánosra van tervezve, amilyenre csak lehet, hogy a programok kompatibilisek legyenek a biztosított környezettel Ez viszont pazarláshoz vezet, mert a program oldalán nincs közvetlen memóriaelérés.
    A probléma egyébként ugyanaz, mint a konzoloknál. Amíg a PS4-en és az X1-en a fejlesztő közvetlenül kap egy fix memóriamennyiséget (5-8 GB, tökmindegy), addig a PC-n ilyen közvetlen elérés nincsen, mert program oldaláról lehetetlen lenne lekezelni kismillió memóriakonfigurációt. Ez olyan lenne, hogy az alkalmazást rászabják 8 GB RAM-ra és 8 GB VRAM-ra, és ha több-kevesebb van a gépben, akkor meg vagy lőve, el se indul a program, egyszerűen nem realitás. Emiatt közvetlen hozzáférést az OS-ek nem is engednek, mert senkinek nem érdeke, hogy egy program ne fusson az eltérő memóriakonfigurációkon. Viszont így a vezérlés alsó szintjén az OS-nek kell intéznie és nem tudja figyelembe venni, hogy x és y programnak eltérők az igényei, vagyis van egy általános modell, ami igazából mindenre működik, de közben pazarolja az erőforrást. A specifikus környezetekben, amikor tudod, hogy veszel egy bizonyos hardvert, annak a specifikációit ismered, arra dolgozni lehet. Így ilyenkor a HBCC hasztalan. Például a konzolokban sem lenne értelme, mert az OS-nek egy kis mennyiségű memória van fenntartva, a másik részét a program közvetlenül elérheti. Még lapozófájl sincs.

    Végeredményben tehát a HBCC csak olyan környezetben hasznos, amikor nincs közvetlen memóriaelérés. A kéréseknek muszáj átmennie az OS kernelen, a VGA-k esetében pedig a display modul felületen. És a hatása is csak annyi, hogy a display modul pazarlását korrigálja. Gyakorlatilag egy teljesen szoftverben keletkező problémát kerül meg. Ha mondjuk teoretikusan gondolva erre, az alkalmazásoknak lenne közvetlen elérésük a videomemóriához, akkor maga a probléma sem létezne.

    [ 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