eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming4ry wierzchołki (głupi problem) › Re: 4ry wierzchołki (głupi problem)
  • Data: 2012-04-08 22:42:27
    Temat: Re: 4ry wierzchołki (głupi problem)
    Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 08.04.2012 20:31, Edek Pienkowski wrote:
    > Dnia Sun, 08 Apr 2012 18:56:26 +0200, Michoo napisal:
    >
    >> On 08.04.2012 15:04, slawek wrote:
    >>>
    >>>
    >>> Dziecko drogie, a jaka jest różnica pomiędzy jawnie napisanym if(a> b)
    >>> - a operacją porównywania a> b ?
    >> A ty nie wiesz?
    >
    > Oj, dzieci, dzieci ;)
    Oj, lubię "dyskutować" ze slawkiem.
    >
    >>
    >>>
    >>> Na poziomie kodu maszynowego - żadna. Musi być jakieś cmp, musi być
    >>> potem skutek tego cmp. Nie ma się co szamotać, że "uda się bez if" - bo
    >>> te if będzie dalej, tyle że zagrzebane w nieczytelnym kodzie.
    >> W tym przypadku akurat to nie ma sensu, ale stosuje się konstrukcje,
    >> gdzie używa się wynik porównania w obliczeniach zamiast if po to aby:
    >> - nie psuć pipeline
    >
    > Yhy.
    >
    >> - nie wykonywać niepotrzebnych skoków
    >> - nie powiększać kodu
    >
    > Zacznij od przeczytania, co to jest SSA. Obie formy tego, co programista
    > napisze kompilują się prędzej czy później do właśnie SSA, zanim
    > staną się kodem maszynowym.
    Pisałem, że w tym przypadku to nie ma sensu. Natomiast "w przypadku
    ogólnym" zdarzało mi się spotkać takie optymalizacje.


    > Kompilator generując kod dba o to, co
    > napisałeś, ale jeżeli rzeczy typu rozmieszczenie danych w pamięci
    > nie przeszkadzają, forma zapisu programisty ma niewiele wspólnego
    > z tym, do czego to się parsuje, nie mówiąc o kodzie maszynowym.
    Zgadza się. Tylko jak musisz rzeźbić optymalizacje na takim poziomie, to
    zazwyczaj rzeźbisz w asm (np jakieś DSP).

    >
    >>
    >> A w przypadku shaderów było to na początku niezbędne (brak instrukcji
    >> skoku).
    >
    > Widać na tym polu kompilatory były bardzo prymitywne,
    Tak z 10 lat temu to nie było jako takich kompilatorów a raczej
    assemblery. Dopiero potem się pojawiło C for graphics, i inne języki
    wysokopoziomowe (HLSL, GLSL).

    > albo język
    > był prymitywny. Zresztą, GPU ma inną architekturę i skok może
    > powodować "divergent warps", jeżeli efektem nie są predykaty.
    Sprzęt nie obsługiwał czegoś takiego jak skok. Oidp najpierw potem
    pojawiła się możliwość warunkowego wykonania instrukcji, możliwość
    przedwczesnego powrotu z programu, a na końcu dopiero "branching".

    --
    Pozdrawiam
    Michoo

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: