eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcpu shading by sse intrinsics › Re: cpu shading by sse intrinsics
  • X-Received: by 10.140.80.179 with SMTP id c48mr85331qgd.16.1404256852217; Tue, 01 Jul
    2014 16:20:52 -0700 (PDT)
    X-Received: by 10.140.80.179 with SMTP id c48mr85331qgd.16.1404256852217; Tue, 01 Jul
    2014 16:20:52 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin3!goblin.stu.neva.ru!news.ripco.com!news.glorb.com!hn18no1601620
    igb.0!news-out.google.com!a8ni1qaq.1!nntp.google.com!w8no5071724qac.0!postnews.
    google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Tue, 1 Jul 2014 16:20:51 -0700 (PDT)
    In-Reply-To: <3...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.30.115.62;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 78.30.115.62
    References: <4...@g...com>
    <3...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <b...@g...com>
    Subject: Re: cpu shading by sse intrinsics
    From: firr <p...@g...com>
    Injection-Date: Tue, 01 Jul 2014 23:20:52 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206098
    [ ukryj nagłówki ]

    co jeszcze moge powiedziec o takim programowaniu
    tymi intrinsicami

    podobaja mi sie takie rzeczy jak

    _mm_and_ps(values, _mm_cmplt_ps(zeros, values));

    czyli takie porownania jakich nie ma w normalnym asmie (a chyba szkoda, (?)) tj nie
    rozgaleziajace kodu a zwracajace 'maski' ktorych pozniej mozna uzyc

    wtady mozna pisac bezifowo rozne takie wyrazenia jak

    a += 17 & (b>10);

    co jest rownowazne
    if(b>10) a+=17;

    w c tez to mozna napisac (jako ze wyzej jest to wlasnie napisane) ale nie wiem czy w
    starym asemblerze (tym bez cmov) dalo sie to zapisac bezifowo - warunek ustawia niby
    flagi ale nie
    pamietam czy byla komenda ktora populowala flage na np cale slowo jedynek itp

    jeszcze inna uwaga, ogolnie jak nawyknac 9juz chyba nawyklem) to to tzw wertykalne
    kodowanie w intrisincowym sse jest zupelnie proste za wyjatkiem tego ze trzeba
    ukladac te dane i akurat jak ja czytam ten kod wyzej to mozna sie pogubic
    na jakiej ilosci danych operuje konkretny operand
    (chyab trzeba sie troche do tego przyzwyczaic tak jak do wskaznikow)

    nie che mi sie tu tlumaczyc o co mi chodzi ale mw o to

    __m128 s1234 = dot(normal, lightDirs);

    wiadomo ze to robi dota normalnej z lightDirs
    i ustawia wynik jako s1234 ale ile dokladnie tego to bierze i jak nie jest dla mnie
    jakos natychmiastowo jasne

    (to jest wertykalny kod wiec wiadomo ze dziala na paczkach po 4 ale tutaj jest chyba
    podwojnie wertykalny - wlasnie nawet nie wiem czy takich zapisow nie nalezy unikac,

    chozi tez o pewna kwestie dotyczaca rozkladu danych
    wiadomo ze dane musza byc by to tak nazwac zgrupowane w poprzek np

    {x[100], y[100], z[100]}
    zamiast
    {x,y,z}[100]

    (ta skladnia nie jest glupia nie wiem czy nie przydalaby sie nawet tak by okreslac
    rozmaite layouty a pozniej uzywac x[i] do abstrakcyjnego latania po tych layoutach)

    ale pytanie jest czy grupowac w male paczki po cztaery w poprzek tj
    {x[4], y[4], z[4]}[25]
    czy zupelnie w poprzek {x[100], y[100], z[100]}

    zupelnie w poprzek wydaje sie senswniejsze ale
    ten paczkowy layout ma pewne 'zalety' czy tez po prostu wlasnosci, mianowicie takie
    ze zeby np
    napisac takiego podwojnie wertylkalnego dota
    wystarczy podac dwa wskazniki tj na jedna paczke i na drugą dot(&a, &b) a bez
    rozkladu paczkowego trzeba podac ich szesc dot(&x,&y,&z, &x2,&y2,&z2) - chociaz ja
    optuje chyba raczej za tym drugim zapisem jest o wiele bardziej czytelny









Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 02.07.14 18:12 Edek
  • 02.07.14 20:13 firr

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: