lørdag, januar 23, 2021

unrolling recompiling.

Daily Rush Debat Programmering unrolling recompiling.

  • Forfatter
    Emne
  • #0

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    Findes der en automatisk recompiler der kan lave loop unrolling paa allerede compileret kode ?

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

Viser 6 kommentarer - 1 til 6 (af 6 i alt)
  • Forfatter
    Kommentarer
  • #1

    mutley
    Bruger
    2.810 indlæg
    Offline

    ja.

    PSN: Viiviio

    #2

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    #1
    Har du evt et link til dette ?

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #3

    gnavpot
    Bruger
    2.494 indlæg
    Offline

    #0 Du kan finde det for både .Net og Java. Begge deres VM’er kan lave loop unrolling som en del af deres JITkompilering.

    Hvis du havde forventet at finde noget som tager rå cpu-instruktioner og så rekopilerer dem… så skal du nok lede længe.

    Her er man nok nede på et niveau hvor CPU’ens branch prediction alligevel ofte vil give samme effekt som loop unrolling.

    Hellere komme galt afsted, end slet ikke komme afsted.

    #4

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    #3
    ja det var i raa cpu kode jeg havde haabet paa. dvs tage allerede compilerett software og optimere det.

    Grunden til loop unrolling da i nogle tilfalde for at gore intruktionern uafhængig af hinanden saledes at der pga et cache miss i den ene iteratin saa skal cpu ikke venter paa at blive faerdig for den kan ekskvere naeste iteration.

    DVS loop unrolling netop har hjaelper paa OoOE delen

    Desvaere har loop unrolling hvor jeg selv haft rodet med det ikke vist en klar maalbar forbedring

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #5

    Timon5022
    Bruger
    1.363 indlæg
    Offline

    #4

    Jeg troede at loop unrolling potentielt kunne medføre flere cache miss’es, men dette er måske ikke rigtigt? Eller har jeg misforstået?

    #6

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    #5

    ved unrolling har du en langt raaeke ens operationer der bliver udfoert lige i rap af hinandend

    medd loops har du en raekke af den samme operation der bliver koert flere gange med men med en loop operation ind i mellem.

    DVS du skaere hele haandtering af loop counter vaek.

    i mange tilfaelde kna loop unrolling ogsa medfore mindre lokalt afhanginghed i hver iteration saaledes at cpu kan udnytte sin OoE metode bedre til at fylde cpu med instruktioner. og prefetche data i cachen.

    hvis unrolling ikk e hjlaper paa uafhaenghighed og OoO ikke kan hjaelpes til at give boost. saa jo der skal laese mere in i cachen unde en prefetch fordel hvilket kan medfore flere cache miss’

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

Viser 6 kommentarer - 1 til 6 (af 6 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.