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

  • szabi80sz

    tag

    válasz Bici #165 üzenetére

    Kicsit késtem, de jobb később, mint soha. :)
    Szóval előre leszögezem: nem vagyok a LuxMark fejlesztője, így alapvetően találgatni tudok, viszont vannak egyértelmű dolgok, amik sebességelőnyhöz juttatják az Intel processzorokat az AMD-s processzorokkal szemben OpenCl alatt.
    Fiery válaszaival egyetértek, én is hasonlókat látok. Néhány érdekes kiegészítést tennék csak. A leírtak saját tesztek, amik nagyrészt szintetikusak (osztás, szorzás, maradékos osztás), de pár dolgot biztosan láttatnak abból a sebességtöbbletből, ami az Intel-t előnyhöz juttatja (valószínűleg nem csak a processzort).
    Elsőkén egy kizárás: I7-es volt a tesztalany, ami Hyper Threading-es, így 4 helyett látszólag 8 CPU mag "számol". Ez lényegtelen, mert eddigi tesztekben a HT kikapcsolásával nem lassult egy OpenCl-es kódom sem.
    Másodikként az Intel valóban jobb meghajtóprogrammal és SDK-val rendelkezik. Ez a tesztekben az AVX2, FMA utasítások jobb kihasználását is eredményezi, de alapból is gyorsabb. Egy általam mért teszt:
    Intel i7 2600k (nincs sem FMA, sem AVX, AVX2 meg pláne hiányzik belőle). Csak CPU-n mértem OpenCl teljesítményt (nem segít be a GPU). Az alaplapi tuningok ki voltak kapcsolva (a CPU-ba épített is). A kernel az OpenCl által végrehajtott függvénynek felel meg.
    I7 2600k (3,4 GHz) CPU +Intel OpenCl sdk: kernel futás: 212 - 214 ms
    I7 2600k (3,4 GHz) CPU +AMD (2.9 APP) sdk: kernel futás: 293 - 295 ms
    A10 6700 (3,7 GHz) CPU +AMD (2.9 APP) sdk: kernel futás: 515 - 527 ms
    A10 6700 GPU +AMD (2.9 APP) sdk (zero copy-val): kernel futás: 109 - 111 ms
    Zotac NVidia 650Ti + 332.21 driver: kernel futás: 36 - 38 ms
    Látható, hogy mennyivel lassabb az A10 (amit Fiery is írt, hogy gyenge a processzor), de még az AMD APP SDK is lassú az Inteléhez képest. Persze lehet, hogy AMD-n hatékonyabb kódokat tartalmaz, ezért is lassabb, de szerintem inkább az Intel SDK-ja jobban optimalizált (bizonyítani ezt nem tudom).
    Ha GPU-t és CPU-t is használ az alkalmazás, akkor a kettő összteljesítménye nagy mértékben függ az adatok elosztásától. Ezt a programozó végzi, az algoritmus hatékonysága különböző CPU-GPU páros esetén különböző lehet. Én is úgy gondolom, hogy ebben a tesztben az Intel-lel jobban működik (valószínűleg erre külön figyelhettek).
    A különböző számítások átlapolása sem mindegy hogy hogyan van megoldva.A Zero Copy-t és az InstantAccess-t sem tudom, hogy hogyan és mennyire használja ki a LuxMark.
    Egyébként a LuxMark eredményeit nem tartom lényegesnek, mert gyakran úgy tűnik, mintha az nVIDIA videokártyák mennyire lassúak lennének. Ennek meg akár az nVIDIA OpenCl driver-ből kimaradt párhuzamos másolás is lehet az oka, vagy csak egyszerűen a local_work_size hibás beállítása (nem láttam a kódjukat). Lényeg viszont, hogy az itt minden cikkben hangoztatott: "az nVIDIA által alkalmazott gyorsítótár- és memóriahierarchia nem kedveli annyira a komplex számításokat, mint az AMD GCN architektúrája." szöveg nem fedi a valóságot. Komplexebb feladatok alatt is gyorsabb volt az nVIDIA 430GT nálam, mint pl. a FirePro v4900. Lebegőpontos teljesítményben meg keményen verte. (Bár ez annyira nem ide tartozik, de már nagyon ki kívánkozott belőlem. :B ) Azért az is igaz, hogy az itt leírtak főleg csak simán a kernel futási idejéről szóltak, az OpenCl-es programok futási ideje ennél jóval összetettebb (pl. memóriába fel-le másolás ideje, az első OpenCl utasítás futási ideje, és ezek átlapolása egyéb számításokkal, stb).
    Remélem, hogy hajnak fél 3-kor nem írtam olyat, hogy holnap a fejemet fogjam miatta. :)

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