-
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
- drukarka potrzebna
- Rok 1973
- CFM (airflow) AMD Wraitha
- 16. Raport Totaliztyczny: Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- 15. Raport Totaliztyczny: Średniowiecze Po,Zniszczeniu AmigaOS i Plan9
- USB3.x->HDMI/DP ze sterownikami w win11
- Dell ubija / przemianowuje swoje flagowe linie laptopów
- Ten adapter nie obsłuży dysków HDD PATA 2.5 cala - producent kłamie czy ja jestem głupi ?
- Przedłużacz USB-C działa w połowie
- Fujitsu LIFEBOOK E746
- Alternatywny nośnik do monitoringu zamiast HDD?
- Pendrive, ale dysk
- Dyski HDD SATA 2,5'' >2TB
- Funbox 10 - Czy miał już ktoś styczność z tym sagemowym sprzętem?
- Konwersja dysku z MBR na GPT
Najnowsze wątki
- 2025-02-07 Jaki silikon lub może klej?
- 2025-02-07 Gdańsk => iOS Developer (Swift experience) <=
- 2025-02-07 Warszawa => Starszy Programista C <=
- 2025-02-07 Niby to nie sąd ale kooorwa tak to w sądach dziś wygląda?
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=