eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingprogramował ktoś na taki sprzęt? › Re: programował ktoś na taki sprzęt?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!no
    t-for-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: programował ktoś na taki sprzęt?
    Date: Fri, 01 Mar 2013 13:56:42 +0100
    Organization: Netia S.A.
    Lines: 57
    Message-ID: <kgq91k$u7t$1@mx1.internetia.pl>
    References: <6...@g...com>
    <kgo7p0$kcn$1@node2.news.atman.pl>
    <a...@g...com>
    NNTP-Posting-Host: 83.238.197.12
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1362143092 30973 83.238.197.12 (1 Mar 2013 13:04:52 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Fri, 1 Mar 2013 13:04:52 +0000 (UTC)
    In-Reply-To: <a...@g...com>
    X-Tech-Contact: u...@i...pl
    User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.11) Gecko/20121123
    Icedove/10.0.11
    X-Server-Info: http://www.internetia.pl/
    Xref: news-archive.icm.edu.pl pl.comp.programming:202111
    [ ukryj nagłówki ]

    On 01.03.2013 11:14, M.M. wrote:
    >> To cierpi nawet, jeśli są rozgałęzienia programu.
    > To niedobrze :(

    To jest po prostu inny sprzęt i go się inaczej programuje. Na klasycznym
    procesorze sporo przypadków opiera się o różne formy pętli, na GPU na
    podział danych na jednorodne bloki i wykonywanie na nich takich samych
    operacji.


    >
    >
    >> Bardzo dobrze. Ale w swoich zadaniach, to nie jest uniwersalny
    >> procesor do wszystkiego.
    >
    >
    >> Z lekkim przymrożeniem oka możesz patrzeć na to jak na
    >> koprocesor, tylko on nie dostaje do przemnożenia
    >> dwa double, tylko dwie macierze zespolone po 200MB,
    >> albo jakąś funkcję do policzenia w tysiącach punktów naraz.
    > Myślę o tym głównie pod kątem czegoś podobnego do symulowanego
    > wyżarzania, czyli w kółko liczenie wartości funkcji. Niestety
    > ta funkcja, choć nie jest funkcją rekurencyjną, ma
    > dużo ifów.

    Wszystko zależy od przypadku - czasami lepiej napisać if, czasami lepiej
    zamienić coś pokroju (to tylko przykład)

    if(b>10)
    a = 123*b*y;
    else if(b<-10)
    a = 321*b*x;
    else
    a = b*x*y;

    na

    a = (b>10)*123*b*y + (b<-10)*321*b*x + (!(b>10))*(!(b<-10))*b*x*y

    >
    > Może to jednak kwestia asemblera? Nie wiem jak jest dzisiaj.
    > Ale jakieś kilkanaście lat temu, jak przepisałem niechlujnie
    > procedurę w asemblerze, to działała 3 razy szybciej niż
    > skompilowana kompilatorem C/C++.

    Przez kilkanaście lat naprawdę sporo się zmieniło to raz. Po drugie na
    dzisiejsze procesory czasami lepiej jest wygenerować "ciaśniejszy" kod,
    niż "szybszy" bo zaoszczędzenie na dostępach do cache potrafi dawać
    kilkukrotny boost. W języku pokroju C++ wystarczy zmienić atrybuty
    dotyczące optymalizacji, w asm musisz przepisywać ;) W ogóle asm poza
    bardzo rzadkimi przypadkami to strata czasu - liczy się doby algorytm a
    go im wyżej poziomowy język tym szybciej zapisać, przetestować,
    tuningować. Mikrooptymalizacje to robota na sam, sam koniec.

    --
    Pozdrawiam
    Michoo

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: