eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPrzyspieszenie na OpenCL, CUDA, DirectCompute, itd › Re: Przyspieszenie na OpenCL, CUDA, DirectCompute, itd
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.straub-
    nv.de!open-news-network.org!feeder.news-service.com!news.astraweb.com!border5.a
    .newsrouter.astraweb.com!not-for-mail
    Date: Sat, 31 Jul 2010 14:29:13 +0100
    From: Bronek Kozicki <b...@s...net>
    Organization: (my opinions are just mine)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.7)
    Gecko/20100713 Thunderbird/3.1.1
    MIME-Version: 1.0
    Newsgroups: pl.comp.programming
    Subject: Re: Przyspieszenie na OpenCL, CUDA, DirectCompute, itd
    References: <6...@f...googlegroups.com>
    <4c53274b$0$28823$c3e8da3@news.astraweb.com>
    <8...@y...googlegroups.com>
    In-Reply-To: <8...@y...googlegroups.com>
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 30
    Message-ID: <4c54252a$0$26474$c3e8da3@news.astraweb.com>
    NNTP-Posting-Host: 41deec8b.news.astraweb.com
    X-Trace: DXC=>B5DN4eC]`o:PIc[8_6SKeL?0kYOcDh@jaG`Xh4eXWDl9WT^]^lgWloRc[=S4Li0]fLGDMFa
    =GYcnPIN7]`CEdVi
    Xref: news-archive.icm.edu.pl pl.comp.programming:186206
    [ ukryj nagłówki ]

    On 31/07/2010 01:09, Mariusz Marszałkowski wrote:
    > W sumowanym wektorze są też liczby ujemne, nie można wybrać po
    > prostu całego zakresu.


    ok, więc nieco poważniejsze rozważania. Trzymanie w pamięci jednej
    zmiennej suma do której wszystkie wątki zapisują, zupełnie się nie
    skaluje. Musisz wymyśleć lepszy algorytm.

    Np - w każdym wątku pętla od 0 do SIZE, wątków tyle ile kolumn. Każda
    pętla tworzy histogram elementów w kolumnie. Dodatkowo (jeszcze jeden
    niezależny wątek) pętla tworząca historam wektora. Na podstawie
    ostatniego będziesz widział z których wierszy możesz zrezygnować z
    najmniejszą stratą, na podstawie histogramów kolumn będziesz wiedział
    które kolumny maję najmniejszy maksymalny element, drugi od końca itd. i
    w ten sposób sobie dobierzesz minimalne wartości N i pasujący wybór
    kolumn. Z perspektywy przetwarzania wielowątkowego ważne jest że w ten
    sposób rozbiłeś część zadania na wiele (liczba kolumn + jeden na wektor)
    niezależnych wątków wykonania z których każdy zapisuje swoje własne dane
    do pamięci. Co więcej, każdy wątek bedzie później mógł niezależnie te
    histogramy analizować ze stosunkowo niewielką wymianą danych między
    wątkami (preferowane wiersze do utraty, przesłane z histogramu wektora
    do histogramów kolumn).

    Jak to się ma do CUDA? Nie wiem, bo w tym nie programuję. Ale,
    skalowalność na wiele wątków (sprzętowych czy programowych) działa tylko
    wtedy, jeżeli nie musisz dostępu do danych synchronizować w każdym kroku.


    B.

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: