eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSzukam benchmarków › Re: Szukam benchmarków
  • X-Received: by 10.182.225.162 with SMTP id rl2mr20876obc.13.1405602010391; Thu, 17
    Jul 2014 06:00:10 -0700 (PDT)
    X-Received: by 10.182.225.162 with SMTP id rl2mr20876obc.13.1405602010391; Thu, 17
    Jul 2014 06:00:10 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!h18no3067867igc.0!n
    ews-out.google.com!bp9ni940igb.0!nntp.google.com!h18no1635289igc.0!postnews.goo
    gle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 17 Jul 2014 06:00:10 -0700 (PDT)
    In-Reply-To: <e...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.30.95.248;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 78.30.95.248
    References: <lq5a1e$7rk$1@node1.news.atman.pl>
    <9...@g...com>
    <e...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <b...@g...com>
    Subject: Re: Szukam benchmarków
    From: firr <p...@g...com>
    Injection-Date: Thu, 17 Jul 2014 13:00:10 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206355
    [ ukryj nagłówki ]

    W sumie jeszcze moge dodac , z moich ostatnich
    doswiadczen z optymalizowaniem kodu pod gcc
    mozna wyroznic nastepujace etapy

    0. nalezy napisac jako tako szybki 'bazowy' kod w c (chodzi o to by nie bylo tam
    zadych dziwact tylko strightforward + wypadaloby jakis dobry algorytm choc sporo
    przypadkow to nie sa jakies specjalne algorytmy tylko kawa na lawe-kod), ale to jest
    punkt wyjscia, bazowy kod w c 'strightforward'
    1. nalezy poeksperymentowac z flagami kompilatora
    - niektore potrafily sporo dac (nie pamietam dokladnie jakie i ile bo nie mialem z
    tym poki co az tyle praktyki, ale na pewno unsafe math rowniez chyba jeszcze cos mi
    dalo jakis speedup)
    2. nalezy zinlineowac kod (inlinowanie potrafilo tez oip dawac speedup, i nalezy tez
    uproscic na maksa petle i sprawdzac rozne warianty profilerem
    - ten punkt to jest sporo roboty bo mozliwosci i sztuczek jest sporo [nie do konca
    nawet sprawdzilem co tu mozna robic bo mozna tu robic rozne rzeczy na pewno nalezy
    kod masakrycznie uproscic wyciagac wyrazenie przed petle itp,
    mozna tez rozwijac petle na procesowanie dwu
    elementow na raz itp, moze zmienic rozklad danych w pamieci, integrowac sekwencje dwu

    blokow w jeden ale sprytniejszy itd itd
    3. najprawdopodobniej nalezy przepisac kod na intrinsiki w sse, jest to tez troche
    roboty, sprawdzic jak to wyszlo i dalej nalezy pisac i profilowac w recznym asmie i
    optymalizowac "w stylu abrasha"


    w programowaniu w jawie i c# (moze i innych jezykach) jest w zasadzie to samo tylko
    sa dwie roznice
    -1. nalezy sie upewniec ze ten kompilowany jitem kod bedzie czystym c bez tych
    wtretow spowolnien javy (na ktore dokladnie nie wiem co sie sklada ale ktos
    wspominal: "automatic memory management, arrays bounds checking and resource
    tracking")
    -2. niekotre mozliwosci bede pewnie utrudnione w javie/c# nie wiem jak tam jest w
    tych jezykach z
    zapodawniaem flag kompilacji jak unsafe math albo jak jest ze wstawkami w asmie -
    pewnie mozna
    mw tak samo latwo jak w c odpalic punkty 1. i 2.
    i z nieco wiekszymi pewnie problememi punkt 3.

    w moich ostatnich optymalizacjach (dot rasteryzera tie57) punkty 1. 2. przyniosly
    okolo 2X przyspieszenia (kosztem ponad tygodnia
    siedzenia nad petla), punktu 3. ciagle nie zrobilem z powodu zmeczenia i tymczasowego
    braku
    wprawy ale da sie zrobic, nie oczekuje jednak wielkiego przyspieszenia, Calosciowe
    efekty tej ciezkiej roboty to okolo 2X szybciej niz w wersji 'strightforward' - jesli
    ktos lubi sie pomeczyc tydzoen lub nawet wiecej by cos dzialalo jedynie lub aż 2 razy
    szybciej to warto a jesli nei to moze zostac przy wyjsciowym zwyklym kodzie
    (ja akurat lubie optymalizowac nie tylko ze wzgledu na 2X szybsze dzialanie (choc mz
    2X to
    jest cos co sie liczy) ale tez ze wzgledu na to ze podrodze osiaga sie lepsze
    zrozumienie
    kodu jak i nawet dziedziny nad ktora sie z
    tym kodem siedzi) - moze ew wraz z doswiadczeniem nabede jeszcze inną wizje tego jak
    nalezy do tego podchodzić - wrealnych grach czy innych produkcjach drugim obszarem
    optymalizaci jest optymalizacja na gpu ktora jest podobno bardziej zlozona i
    trudniejsza (mnie w sumie tak przeraza ze nawet nie che sie za to brac)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: