Hirdetés

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

  • Balala2007

    tag

    válasz Petykemano #16653 üzenetére

    Tulajdonképpen a bulldozer 1 magja akkor képes volt extrém esetben kvázi 4 ALU szélesként funkcionáln
    Csak az Excavator.

    FPU intenzív terhelés alatt "összeomlott".
    A K15 szeria rengeteg reszletben le van maradva az Intelhez kepest a mar emlitetteken kivul is (pl. nincs uop cache, macrofusion gyengebb, stb), de az FPU-nal a donto az, hogy 3x128b EU all szemben 3x256b EU-kal.

    A rendelkezésre álló erőforrások kihasználtságát az SMT növelheti, hiszen ha két külön szálat futtat a mag, akkor kevesebbet kell bűvészkedni az utasítások párhuzamosíthatóságán.
    Ha ket IP-tol jonnek a uop-ok, akkor azok implicit fuggetlenek, az mar TLP.

    FMAC egységet tartalmaz, ami tulajdonképpen 1-1 add + multiply egység, ha jól sejtem gyárilag összeolvasztott egysége.
    Az FMAC-ban nagyon hangsulyos a Fused, azt jelenti, hogy a szorzas utan kimarad egy kerekitesi fazis, a szorzas eredmenyehez vegtelen pontosaggal adodik a harmadik operandus. Ezt SW-bol eleg nehez pontosan utanozni, az Intel SDE pl. nagysagrendileg ~100x lassabb a nativnal.

    Ezzel szemben a Zennél 2 FMUL és 2 FADD egység van, ami a leírás szerint egyenként 3ciklus késleltetéssel végeznek műveletet
    Csak az ADD 3, az SP MUL 4, a DP MUL 5. Itt egy tablazat a gcc patch-ek alapjan, amit most a Zenrol tudni lehet.

    Itt már is kérdezném, hogy fenti azt jelenti, hogy azért választották-e vajon a különálló FMUL és FADD egységeket, mert a bulldozer esetén a 2 FMAC különálló FADD és FMUL műveleteket is csak ugyanazzal a késleltetéssel tudott végrehajtani, mint FMAC műveleteket és persze ezekből is csak egyszerre kettőt?
    Nem, FMA-ra egyszerubb kulon muveletkent gondolni.

    egy bulldozer mag, pontosabban amikor egy szál futott egy bulldozer modulon, akkor vajon mindkét FMAC egységet tudta-e használni
    Persze, latszik a throughput adatokon.

    1 szálas FPU teljesítményben milyen előrelépést tud majd felmutatni?
    A jobb ADD/MUL latency-n mar nyer, es ha pl. a regiszteren beluli pack/shuffle/permute EU-t nem kapcsoljak ugyanarra a portra, mint az FMA (mint az Intel Port0-1 FMA, Port5 shuffle), akkor azon is, ha a store nem utkozik az elobbiekkel, az megint elony, stb.

    A gcc patchekbol sejtheto, hogy az AMD celja a Zennel a x64-hez hasonlo lehet: ahogy anno az Intel kihagyta a 64b-es x86 kiterjesztest az IA64 kedveert, ugy most a legacy x64-et hanyagolja a 256/512b-es SIMD-ekert. Bar sok reszlet meg hianyzik, az erzodik, h a Zeppelin core-t a legacy x64 kodok futtatasara optimalizaljak.

    Peak Flopsban az Intel 2x erosebb, de ehhez a kodokat is ujra kell forditani -> kicsi Itanium szindroma.

    Ket *szelsoseges* pelda szemlelteteskent:

    Code1 (128b SSE):
    mulps xmm1, xmm2
    mulps xmm14, xmm15
    addps xmm6, xmm7
    addps xmm8, xmm10

    Code2 (256b FMA):
    vmfadd213pd ymm0, ymm1, xmm2
    vmfadd213pd ymm3, ymm4, xmm5
    vmfadd213pd ymm6, ymm7, xmm8
    vmfadd213pd ymm9, ymm10, xmm11

    Code1 throughput Zenen 1clk, Skylake-en 2clk, Zen 2x gyorsabb Skylake-nel a 4 FPU port miatt.
    Code2 throughput Zenen 4clk, Skylake-en 2clk, Skylake 2x gyorsabb a Zennel a 256b-es portok miatt.

    Nekem most ugy tunik, hogy ha kipofoztak a cache-eket, kapott egy nagyobb ROB-ot, egy turheto branch predictort es memoriakezelest, akkor a Zennel integerben ~Skylake, SSE2-SSE4 Skylake+, AVX-AVX2-FMA: XV+ szintet celozhattak meg. Aztan a tesztekbol majd kiderul, mi jott ossze ebbol.

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