-
Data: 2019-09-18 15:46:00
Temat: Re: Kiedy będzie milion rdzeni?
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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
Następne wpisy z tego wątku
- 18.09.19 15:50 fir
- 19.09.19 04:55 k...@g...com
- 19.09.19 11:00 fir
- 19.09.19 21:12 fir
- 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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Czy Sejm RP zahamuje proceder zabijania dla organów?
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=