-
Data: 2013-12-01 17:44:56
Temat: Re: Algorytmy gier na procesory wielordzeniowe - jak?
Od: Robert Winkler <n...@n...org> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Plaskaty uchwyt VESA 100x100 na sciane?
- klawiatura podświetlana zasilana z sieci
- Upgrade z i7-6xxx
- Mały komputer potrzebny.
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- SMART na SAS
- Drukara a wifi
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
- Pendrive - czy to rzeczywiście Sony ?
- [OT] Dobry dysk na komornika i rozwody
- Czujnik dławienia termicznego procesora - który?
- Grubość socketa AM4+procesor
- własny ekran startowy
- Tani, ale szybki i niezawodny modem LTE...
- EPS12V
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek