-
X-Received: by 2002:a37:8547:: with SMTP id h68mr4540461qkd.219.1568920359204; Thu,
19 Sep 2019 12:12:39 -0700 (PDT)
X-Received: by 2002:a37:8547:: with SMTP id h68mr4540461qkd.219.1568920359204; Thu,
19 Sep 2019 12:12:39 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!news.dns-netz.com!ne
ws.freedyn.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.68.MISMATCH
!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-m
edia.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o24no5
80808qtl.0!news-out.google.com!x7ni1046qtf.0!nntp.google.com!o24no580800qtl.0!p
ostnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 19 Sep 2019 12:12:38 -0700 (PDT)
In-Reply-To: <6...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.76;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.76
References: <d...@g...com>
<2...@g...com>
<6...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Kiedy będzie milion rdzeni?
From: fir <p...@g...com>
Injection-Date: Thu, 19 Sep 2019 19:12:39 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6348
X-Received-Body-CRC: 12016861
Xref: news-archive.icm.edu.pl pl.comp.programming:214063
[ ukryj nagłówki ]W dniu środa, 18 września 2019 15:46:02 UTC+2 użytkownik fir napisał:
> W dniu środa, 18 września 2019 15:29:03 UTC+2 użytkownik fir napisał:
> > zalezy co rozumiec za rdzen/sprzetowy watek
> >
> > w swiecie gpu mowia o ile wiem o tzw kanalach, jeden kanal przypada na jednego
floata (przypadajacego niezaleznie do obrobki)
> >
> > o tyle powstaje koncepcja zbudowania czegios w rodzaju komputacyjnej macierzy
> > (powiedzmy 1024x1024 floato) zdolnej np do zaladowania megabajta floatow w jednym
cyklu dodania do niej drugiego miliona floatow w drugim cyklu i zapisania tego
spowrotem w trzecim czy piatym
> >
> > taka komputacyjna macierz wydaje mi sie dobrym pomyslem, pisalem juz o tym choc
nie jestem epwien czy na tej grupie.. (np o tym jak to zintegrowac z c)
> >
> > sporo czesc kodow np rysowanie zbioru mandelbrota (ale i zapewne wiele innych )
daloby sie puscic na tej tablicy prawie bez zmian z milionowym przyspieszeniem (o ile
sprzet mialby milion kanalow)
> >
> > jakies inne przykladowe kody typu jakis kontrast czy usrednienie pikseli itd (mam
na mysli takie kody w ktorych kanal "czyta" wartisci np z 8-miu przylagajacych
kanalow) tez chyab dobrze by szly bo jako ze wszystko jesli liczone w jednym
kroku/cyklu to nei trzeba sie chyba martwic konfliktami w dostepach do pamieci, nie
trzeba nic synchronizowac (choc moze to zalezy od przypadku trzebby przesledzic jakie
algorytmy/kody dobrze wykonuja sie na takiej solidnej tablicy
> >
> > (solina nazywam ja bo kazdy taki kanal nie ma niezlaleznego instruction
pointer...alternatywna bylaby jakas inna tablica gdzie kazdy z milionow kanalow
mialby swoje ip, ale bylby to jakis inny rodzaj tablicy)
> >
> > gdyby mi sie chcialo to bym sie pozastanawial jak rozne algorytmy wpisuja sie ten
schemat, ale ostatnio cos slabo z motywacja - nad pewnymi drobnymi rzeczami mozna sie
jednak zastanowic
> >
> > np smieszne wydalo mi sie zastanowienie jak dzialalby na tym jakis raytracer/kod
z duzymi ifami, bo byloby to wyglada smieszne:
> >
> > zalozmy ze taki kod mialby postac w stylu
> >
> > if(a)
> > {
> > if(b)
> > {
> >
> > }
> > }
> >
> > if(c)
> > {
> >
> > }
> >
> > gdzie te ify sa 'duze'
> >
> > wyglada na to ze taka macierz komputacyjna musialaby wchodzic w kazdy (scislej
prwie kazdy) if poniewaz jakas czesc watkow mialaby byc dla nich liczona, resztka
kanalow by w tym czasie sobie robila nic, alebo nic uzytecznego
> > po wyjsciu z ifa inne watki by wchodzily w inny if a inne by lezaly odlogiem -
> > slowem taki kod zawsze by wlazl w prawie wszystkie ify i tak by wygladal
pojedynczy przebieg (akurat w przypadku raytracerow gdy odbicia promieni sie liczy do
kilku odbic w glab itd to by moglo nieco zwolnic ale i tak bylby spory zysk na
prostocie)
> > *(choc w tych niektorych raytracerach nie tylko liczy sie zalamane odbicia ale
jeszcze np przy odbiciu wprowadza sie cala nowa petle by zeskanowac swiatlo z
otoczenia dla roznych katow, wtedy jeden taki kanal by byl zatrudniony dla liczenia
calej petli i mamy klasyczne zmulando, wiec moze w tym wypadku dynamiczna tablica
kanalow z osobnymi ip sprawdzalaby sie lepiej, ale ja i tak pozostaje chyab pewnym
fanem tej solidnej prostej tablicy 'wykonawczej' (choc tej drugiej pewnie tez)
> >
> > nie wiem jednak czy chce mi sie to rozwazac bo jest to dla nie troche malo
praktyczne (bardziej praktyczne to mogloby byc dla intela/amd/nvidia ;c)
>
> skladnie w c w ekstremalnym uproszczeniu
> w jaki mozna by to wyrazic to cos w stylu
>
> for(1000) {}
>
> for(1000,1000) {}
>
> gdzie zamiast for moze byc tez jakies inne slowo np moze 'map' o ile tu pasuje
> (ciezko mi ocenic czy apsuje) lub jakies inne, podaje for dla uproszczenia
>
> liczba w for podaje ile watkow ma to liczyc, a numer watku jest domyslnie zapodany
w i, jesli podac dwie liczby to i,j a jesli 3 to i,j,k
>
>
> for(1024,1024)
> {
> tab[i+j*1024] = tab[(i+1)+j*1024];
> }
>
> //przesuwa tablice 1 MB pixeli w lewo na milionie kanalow na raz
mozna by sie zastanowic jak rozne algorytmy/kody by sie zachowywaly/jak by sie je
pisalo w takim ujeciu na owa tablice komputacyjna/macierz obliczeniowa, ale nie wiem
czy mi sie chce
na przyklad kod rasteryzera (czyli wazna rzecz): w pierwszej fazie po prostu bierzesz
trojkaty z tablicy trojkatow i mnozysz przez maciez modelu i macierz kamery,
wyrzucasz te ktore sa poza polem widzenia - w wyniku dostajesz np tablice trojkatow
2d+depth, to sie paralelizuje chyba idealnie
dalszy proces jednak juz jest gorszy bo trzeba wypelniac framebufor i tu juz tak
prosto nie jest, chopc ew mozna by nad tym sie zastanowic
Następne wpisy z tego wątku
- 20.09.19 15:00 M.M.
- 22.09.19 12:11 fir
- 22.09.19 12:33 fir
- 22.09.19 17:19 M.M.
- 22.09.19 17:52 fir
- 22.09.19 18:09 fir
- 22.09.19 21:05 fir
- 26.09.19 19:26 fir
- 26.09.19 19:29 fir
- 17.10.19 11:03 g...@g...com
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz