Keresés

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

  • Baryka007

    őstag

    válasz hokuszpk #31947 üzenetére

    Most nem szeretnék kiselőadást tartani a virtuális magok működéséről. De a kedvedért megteszem hókuszpók

    De ugye azt mindenki tudja, hogy a Cores az magot jelent, a Thread meg szálat... És a thread az bizony virtuális mag.

    A probléma vele annyi, hogy nem fizikai hanem virtuális.
    Ugye lehet azzal jönni, hogy a HT 1c-2t cpu képes egyidejűleg 2 utasítást végrehajtani. De a valóság az, hogy ez egy hazugság.

    Mert minden az adatbusz sebességén múlik, ami ha jól megvan húzva a ram az sokat segít a helyzeten, de sajnos a problémát nem oldja meg, csak segít. És soha nem is fogja, mert egy számot akárhányszor elosztasz 2 vel, az soha nem lesz nulla!

    Dióhéjban ez megmagyarázva azt jelenti egy példával leegyszerűsítve, hogy ha van egy 6 mag 12 szálas CPU-d, bár itt a 12 szálnak nincs lényege, csak legyünk tudatában annak, hogy a CPU képes HT vagy SMT vagy akármilyen típusú mag virtualizációra.

    Ha fogod ezt a CPU-t és letiltod a HT-t akkor lesz 6 fizikai magod!
    Lefuttatsz egy tesztet letiltott HT val.
    Majd letiltasz 2 magot a CPU-n és bekapcsolod a HT-t akkor 4 mag 8 szálas lesz a CPU-d.
    Itt azok a hívők, akik elhiszik hogy 4 mag 8 szál = 8 maggal, mert hát 8 szál, tehát 8 utasítást tud a CPU végrehajtani egyszerre. Azok nagyot fognak pislantani, amikor meglátják hogy a 4 mag 8 szál kevesebb pontot fog hozni szintetikus tesztekben, mint a 6 mag 6 szál

    És hogy miért van ez ?
    Azért, mert az adatbusz sebességén múlik az, hogy a CPU mennyire gyorsan kapja meg az utasításokat, a HT miatt viszont 1 mag megoszlik 2 megoldandó utasításra. Ez függ az adatbusz sebességétől, hogy milyen gyakran kaphat utasítást. És ha egy olyan folyamat indul a CPU-n ami nem tudja kezelni a HT-t akkor kijöhet úgy a lépés az adatbuszon ahol 2x64 bitenként kap feladatot a CPU (DDR4 nél) (DDR5 nél 4x32bit ha dual channelről beszélünk m2 esetben) hogy az egyik szál elkér egy feladatot, és a következő utasítás pont nem jön ki a 64 bitre, ezért kell várni egy ciklust a CPU-nak mire feltudja venni újra azt az utasítást.

    Noh ezért nem jó a HT :K -> Virtuális magok használata :U

    A probléma pedig pontosan ez, hogy nem tud végrehajtani 2 utasítást egyszerre, ezáltal sok játék amik nincsenek optimalizálva a virtuális magokra, azok több fps-t fognak hozni kikapcsolt HT val...
    Ezért is írtam fentebb azt, hogy ha végre lesz sok mag, akkor már bőven megéri elfelejteni a HT-t

    Bizonyíték :U

    A single core performanceon egyébként gyönyörűen látszik, hogy bekapcsolt HT val maradtak ki utasítások... Mert volt olyan utasítás amit pont nem tudott felvenni a mag, mert a HT miatt nem tud folyamatosan utasításokat felvenni, csak felváltva a 2 szál között...

    Szerk.:
    Illetve az is látszik, a Multi Thread ration hogy nem maradt ki utasítás kikapcsolt HT val, hiszen 6 mag teljesítménye 6,07 mag :K
    4 mag 8 szál teljesítménye pedig 5,26 mag :U

    [ Szerkesztve ]

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