-
11. Data: 2013-12-01 11:06:07
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: "Ghost" <g...@e...pl>
Użytkownik "Marcin N" <m...@o...pl> napisał w wiadomości
news:529b0619$0$2169$65785112@news.neostrada.pl...
>W dniu 2013-12-01 10:37, Ghost pisze:
>>
>> Użytkownik "Marcin N" <m...@o...pl> napisał w
>> wiadomości news:529a2e82$0$2157$65785112@news.neostrada.pl...
>>> W dniu 2013-11-30 16:07, Ghost pisze:
>>>>
>>>> Użytkownik "Marcin N" <m...@o...pl> napisał w
>>>> wiadomości news:5291bfb1$0$2287$65785112@news.neostrada.pl...
>>>>> Mamy nowe konsole i coraz więcej procesorów 6-8 rdzeniowych.
>>>>>
>>>>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>>>>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą
>>>>> idą te algorytmy.
>>>>
>>>> No ale jaki konkretnie masz problem?
>>>>
>>>> W grze masz tak, ze sporo rzeczy dzieje sie rownolegle, wiec podzial na
>>>> watki jest naturalny.
>>>> Mozna np. porozdzielac sztuczna postaci inteligencje na poszczegolne
>>>> rdzenia.
>>>
>>> Mów dalej. Jakie wątki? Gdzie te równolegle dziejące się rzeczy na
>>> przykład w FPS'ie?
>>
>> No przeciez np. AI przeciwnikow pracuje jendoczesnie. To akurat
>> naturaclny podzial. A jest jeszcze sporo robotek dla procesora,
>> zajmujacych mu mniej czasu i normalnie odpalanych co jakis interwal, w
>> tym momecie te zadania moga tez byc rozdzielane na kolejne procesory.
>>
>> Programowales cos kiedykolwiek? Bo ja naprawde nie widze problemu, malym
>> problemem moze byc idealnie rownomierne obciazenie procesorow, ale to
>> jest problem sztuczny. Trzeba zdawac sobie sprawe, ze cztery procesory
>> nie oznacza cztery razy szybciej, nie tylko ze wzgledu na nieoczywistosc
>> podzialu.
>
> Programowałem w czasach, gdy istniał tylko jeden rdzeń.
> Czemu poruszam ten temat? Bo przewagą nowych procesorów nad starymi jest
> głównie liczba rdzeni. Trudno mi uwierzyć, żeby 8 rdzeniowiec był wyraźnie
> szybszy od 4, bo jakoś nie umiem sobie wyobrazić algorytmów pozwalających
> na niezależne prowadzenie obliczeń aż w tylu grupach.
A zastanawiales ile rdzeni ma karta graficzna od wieeeelu lat?
> Nie wiem, czy to kompilatory próbują przydzielać zadania rdzeniom, czy to
> wyłącznie rola programisty.
Zadania moega byc przydzialane na krotki okres czasu i tu raczej bedzie
przydzielal OS a nie kompilator. Reszta to raczej programista.
> Tak sobie rozmyślam, gdy czytam o nowych 8 rdzeniowych konsolach do
> gier...
Nie widze problemu.
-
12. Data: 2013-12-01 11:26:15
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: Robert Winkler <n...@n...org>
W dniu 2013-11-24 09:58, Marcin N pisze:
> Mamy nowe konsole i coraz więcej procesorów 6-8 rdzeniowych.
>
> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą idą
> te algorytmy.
>
>
Jeśli dla ciebie 8 rdzeni to dużo to co powiesz
ma produkt firmy Adapteva.
Obecnie pzryjmują zamówienia na swój produkt o nazwie Epiphany-IV,
jest to moduł obliczeniowy stworzony na bazie procesora
posiadającego 64 niezależne rdzenie typu RISC,
każdy wykonujący swój własny kod.
Ich celem jest przygotowanie do roku 2018 procesora
posiadającego 64 tyś. rdzeni.
Czy im się uda, zobaczymy już za kilka lat.
Jeśli chodzi o zwykłe komputery PC, poczytaj sobie o OpenMP dostępnym
obecnie w wiekszości kompilatorów C++.
Z mojego podwórka mogę ci podrzucić Task Parallel Library (TPL)
które jakiś czas temu weszło w skład .NET Framework
http://msdn.microsoft.com/en-us/library/dd537608%28v
=vs.110%29.aspx
/Robert
-
13. Data: 2013-12-01 11:42:04
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: "Ghost" <g...@e...pl>
Użytkownik "Robert Winkler" <n...@n...org> napisał w wiadomości
news:529b0ec5$0$2169$65785112@news.neostrada.pl...
>W dniu 2013-11-24 09:58, Marcin N pisze:
>> Mamy nowe konsole i coraz więcej procesorów 6-8 rdzeniowych.
>>
>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą idą
>> te algorytmy.
>>
>>
>
> Jeśli dla ciebie 8 rdzeni to dużo to co powiesz
> ma produkt firmy Adapteva.
> Obecnie pzryjmują zamówienia na swój produkt o nazwie Epiphany-IV,
> jest to moduł obliczeniowy stworzony na bazie procesora
> posiadającego 64 niezależne rdzenie typu RISC,
> każdy wykonujący swój własny kod.
> Ich celem jest przygotowanie do roku 2018 procesora
> posiadającego 64 tyś. rdzeni.
> Czy im się uda, zobaczymy już za kilka lat.
>
>
> Jeśli chodzi o zwykłe komputery PC, poczytaj sobie o OpenMP dostępnym
> obecnie w wiekszości kompilatorów C++.
> Z mojego podwórka mogę ci podrzucić Task Parallel Library (TPL)
> które jakiś czas temu weszło w skład .NET Framework
> http://msdn.microsoft.com/en-us/library/dd537608%28v
=vs.110%29.aspx
Czytja ze zrozuminiem. Pytanie dotyczylo rdzeni na potrzeby gier (i to
niegraficznych rdzeni).
-
14. Data: 2013-12-01 17:44:56
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: Robert Winkler <n...@n...org>
W dniu 2013-12-01 11:42, Ghost pisze:
>
> Użytkownik "Robert Winkler" <n...@n...org> napisał w wiadomości
> news:529b0ec5$0$2169$65785112@news.neostrada.pl...
>> W dniu 2013-11-24 09:58, Marcin N pisze:
>>> Mamy nowe konsole i coraz więcej procesorów 6-8 rdzeniowych.
>>>
>>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą idą
>>> te algorytmy.
>>>
>>>
>>
>> Jeśli dla ciebie 8 rdzeni to dużo to co powiesz
>> ma produkt firmy Adapteva.
>> Obecnie pzryjmują zamówienia na swój produkt o nazwie Epiphany-IV,
>> jest to moduł obliczeniowy stworzony na bazie procesora
>> posiadającego 64 niezależne rdzenie typu RISC,
>> każdy wykonujący swój własny kod.
>> Ich celem jest przygotowanie do roku 2018 procesora
>> posiadającego 64 tyś. rdzeni.
>> Czy im się uda, zobaczymy już za kilka lat.
>>
>>
>> Jeśli chodzi o zwykłe komputery PC, poczytaj sobie o OpenMP dostępnym
>> obecnie w wiekszości kompilatorów C++.
>> Z mojego podwórka mogę ci podrzucić Task Parallel Library (TPL)
>> które jakiś czas temu weszło w skład .NET Framework
>> http://msdn.microsoft.com/en-us/library/dd537608%28v
=vs.110%29.aspx
>
> Czytja ze zrozuminiem. Pytanie dotyczylo rdzeni na potrzeby gier (i to
> niegraficznych rdzeni).
Po pierwsze OpenMP to co innego niż OpenCL.
OpenMP pozwala co za pomocą "#pragma" określasz przykładowo,
że kod danej pętli ma zostać zrównoleglony automatycznie
przez kompilator i runtime.
Dotyczy to oczywiście kodu CPU a nie GPU.
O ile zapewni się synchronizacje przy dostępie do współdzielonych danych
można ten mechanizm z powodzeniem użyć do detekcji kolizji,
lub obliczania fizyki, czy też AI postaci.
We wszystkich przypadkach pracujemy przecież na listach obiektów
i pętlach kolejno je przetwarzających.
Piszesz wieć:
#pragma omp parallel for
for (int x = 0; x < imageWidth; x++) {
for (int y = 0; y < imageHeight; y++) {
Color shadedColor = shootRay(x,y);
image.SetPixel(x, y, shadedColor);
}
}
i masz zrównoleglony kod, podzielony na wątki,
a kod znajdujący się za pętlą zostanie uruchomiony
kiedy wszystkie wątki skończą już prace.
/Robert
-
15. Data: 2013-12-01 22:27:04
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: "Ghost" <g...@e...pl>
Użytkownik "Robert Winkler" <n...@n...org> napisał w wiadomości
news:529b6785$0$2144$65785112@news.neostrada.pl...
>W dniu 2013-12-01 11:42, Ghost pisze:
>>
>> Użytkownik "Robert Winkler" <n...@n...org> napisał w wiadomości
>> news:529b0ec5$0$2169$65785112@news.neostrada.pl...
>>> W dniu 2013-11-24 09:58, Marcin N pisze:
>>>> Mamy nowe konsole i coraz więcej procesorów 6-8 rdzeniowych.
>>>>
>>>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>>>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą idą
>>>> te algorytmy.
>>>>
>>>>
>>>
>>> Jeśli dla ciebie 8 rdzeni to dużo to co powiesz
>>> ma produkt firmy Adapteva.
>>> Obecnie pzryjmują zamówienia na swój produkt o nazwie Epiphany-IV,
>>> jest to moduł obliczeniowy stworzony na bazie procesora
>>> posiadającego 64 niezależne rdzenie typu RISC,
>>> każdy wykonujący swój własny kod.
>>> Ich celem jest przygotowanie do roku 2018 procesora
>>> posiadającego 64 tyś. rdzeni.
>>> Czy im się uda, zobaczymy już za kilka lat.
>>>
>>>
>>> Jeśli chodzi o zwykłe komputery PC, poczytaj sobie o OpenMP dostępnym
>>> obecnie w wiekszości kompilatorów C++.
>>> Z mojego podwórka mogę ci podrzucić Task Parallel Library (TPL)
>>> które jakiś czas temu weszło w skład .NET Framework
>>> http://msdn.microsoft.com/en-us/library/dd537608%28v
=vs.110%29.aspx
>>
>> Czytja ze zrozuminiem. Pytanie dotyczylo rdzeni na potrzeby gier (i to
>> niegraficznych rdzeni).
>
> Po pierwsze OpenMP to co innego niż OpenCL.
> OpenMP pozwala co za pomocą "#pragma" określasz przykładowo,
> że kod danej pętli ma zostać zrównoleglony automatycznie
> przez kompilator i runtime.
> Dotyczy to oczywiście kodu CPU a nie GPU.
> O ile zapewni się synchronizacje przy dostępie do współdzielonych danych
> można ten mechanizm z powodzeniem użyć do detekcji kolizji,
> lub obliczania fizyki, czy też AI postaci.
> We wszystkich przypadkach pracujemy przecież na listach obiektów
> i pętlach kolejno je przetwarzających.
> Piszesz wieć:
> #pragma omp parallel for
> for (int x = 0; x < imageWidth; x++) {
> for (int y = 0; y < imageHeight; y++) {
> Color shadedColor = shootRay(x,y);
> image.SetPixel(x, y, shadedColor);
> }
> }
> i masz zrównoleglony kod, podzielony na wątki,
> a kod znajdujący się za pętlą zostanie uruchomiony
> kiedy wszystkie wątki skończą już prace.
polska jenzyka tródna jenzyka, powinni jednak zwrocic kase z atfojom
edukacjem
hit: sprobuj jednak czymac kupe z wontkiem
-
16. Data: 2013-12-02 05:51:18
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: G Nowak <g...@g...com>
On 01/12/2013 09:32, Ghost wrote:
>
> Użytkownik "G Nowak" <g...@g...com> napisał w wiadomości
> news:Putmu.29$rx5.20@fx05.am4...
>>>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>>>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą
>>>> idą te algorytmy.
>>>
>>> No ale jaki konkretnie masz problem?
>>>
>>> W grze masz tak, ze sporo rzeczy dzieje sie rownolegle, wiec podzial na
>>> watki jest naturalny.
>>> Mozna np. porozdzielac sztuczna postaci inteligencje na poszczegolne
>>> rdzenia.
>>
>> Malo pradwopodobne. Jakim cudem udaloby sie osiagnac rownomierne
>> obciazenie na wszystkich rdzeniach (Battlefield 4, 8 logicznych).
>
> Ale naoprawde naiwnie wierzysz w rownomierne obciazenie rdzeni?
Tak, po uruchomieniu gry mozna obserwowac niemalze rownomierna
fluktuacje obciazenia na wszystkich rdzeniach (logicznych) w zaleznosci
od aktywnosci w grze.
--
G
-
17. Data: 2013-12-02 12:26:52
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: "Ghost" <g...@e...pl>
Użytkownik "G Nowak" <g...@g...com> napisał w wiadomości
news:0lUmu.375$5z4.367@fx29.am4...
> On 01/12/2013 09:32, Ghost wrote:
>>
>> Użytkownik "G Nowak" <g...@g...com> napisał w wiadomości
>> news:Putmu.29$rx5.20@fx05.am4...
>>>>> Jak tworzy się algorytmy gier, które potrafią ogarnąć tyle rdzeni?
>>>>> Nie potrafię sobie tego wyobrazić. Powiedzcie w skrócie, jaką drogą
>>>>> idą te algorytmy.
>>>>
>>>> No ale jaki konkretnie masz problem?
>>>>
>>>> W grze masz tak, ze sporo rzeczy dzieje sie rownolegle, wiec podzial na
>>>> watki jest naturalny.
>>>> Mozna np. porozdzielac sztuczna postaci inteligencje na poszczegolne
>>>> rdzenia.
>>>
>>> Malo pradwopodobne. Jakim cudem udaloby sie osiagnac rownomierne
>>> obciazenie na wszystkich rdzeniach (Battlefield 4, 8 logicznych).
>>
>> Ale naoprawde naiwnie wierzysz w rownomierne obciazenie rdzeni?
>
> Tak, po uruchomieniu gry mozna obserwowac niemalze rownomierna fluktuacje
> obciazenia na wszystkich rdzeniach (logicznych) w zaleznosci od aktywnosci
> w grze.
Tzn, co, dokladznie 32,5% na kazdym rdzeniu? Nierealne.