Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wykonywanie obliczeń na GPU

Ostatnio zmodyfikowano 2017-11-20 07:32
Autor Wiadomość
Rashmistrz
Temat założony przez niniejszego użytkownika
Wykonywanie obliczeń na GPU
» 2014-09-29 19:51:31
Jako że dopiero się uczę programować,
zostawiam ten temat dla was jako bardziej
obeznanych w programowaniu ode mnie. :F

Linki:
https://pl.wikipedia.org/wiki​/GPGPU
https://pl.wikipedia.org/wiki​/OpenCL
https://pl.wikipedia.org/wiki​/CUDA
https://developer.nvidia.com​/cuda-zone
P-117759
DejaVu
» 2014-09-29 21:41:50
Analizowałem jakiś czas temu tematykę związaną z wykorzystaniem karty graficznej do wykonywania obliczeń.

Wniosek był ostatecznie jeden: szkoda na to prądu. Znacznie lepiej wykorzystać efektywnie wielordzeniowość CPU i zainwestować później w płytę główną i CPU, które będzie dawało dużą moc obliczeniową. Chociażby w taki procesor:
http://www.komputronik.pl​/product/197878​/AMD_X8_FX_9590_4_7GHz_BOX.html

4.7GHz*8 = 37,6GHz masz wówczas do dyspozycji i nie bawisz się w klepanie dodatkowego kodu dedykowanego specjalnie pod potrzeby karty graficznej, z której takiej mocy raczej nie wyciśniesz i jeszcze będziesz musiał się męczyć przy adaptacji wymyślanych algorytmów aby były one portowalne na GPU.
P-117768
1aam2am1
» 2014-09-29 23:29:43
GPU jest dobre do obliczeń rozproszonych (nie liniowych) wtedy jest najlepszym rozwiązaniem, nawet najlepsze procesory nie dorównują wtedy kartom graficznym
np: NVIDIA GeForce GTX 680 posiada 1536 rdzeni CUDA. A jej częstotliwość bazowa to 1006 MHz. Jak pomnożymy to mamy jakieś 1546 GHz. To dużo więcej jednakże musielibyśmy wykorzystać je wszystkie dlatego najlepiej nadają się do obliczeń rozproszonych.
P-117786
DejaVu
» 2014-09-30 01:23:29
Tworzenie złożonych algorytmów i tak jest upierdliwe na GPU. Pierwszy lepszy przykład to np. chęć użycia własnego vectora na każdym wątku (bądź innej struktury danych).

Efekt: http://stackoverflow.com​/questions/10375680​/using-stdvector-in-cuda-device-code.

Rozwiązania jakieś zaczynają się oczywiście pojawiać, które ułatwiają uzyskanie oczekiwanych efektów ale i tak na chwilę obecną moc obliczeniowa GPU nie jest równoważnym rozwiązaniem do CPU i nie opłaca się w domowym zaciszu walczyć z obliczeniami na GPU w przypadku skomplikowanych algorytmów. To jest oczywiście tylko moje zdanie, ale aplikacji wielowątkowych na swoim koncie mam co najmniej kilkanaście. Co więcej sam chciałem w pewnym momencie wykorzystać CUDA do zwiększenia wydajności aplikacji, ale okazało się, że:
1) kod trzeba by było pisać niemalże od zera;
2) struktury danych nie byłyby tak elastyczne jak te, z których korzysta się swobodnie na wątku uruchomionym na CPU;
3) te struktury danych trzeba by było oczywiście sobie naklepać;
4) kod istotnie utraciłby na czytelności;
5) dużo trudniej namierzałoby się błędy w kodzie i tym samym czas wytwarzania aplikacji znacznie by się wydłużył;
6) modyfikacje/rozbudowy algorytmu również wiązałyby się ze znacznie większym kombinowaniem.

Gdyby ktoś miał potrzebę wykonywania stosunkowo prostych ale powtarzalnych obliczeń matematycznych, to wówczas jak najbardziej CUDA jest warte zachodu. Jeżeli musisz dodatkowo manipulować pamięcią w ramach jednego wątku, przesyłać nieregularne dane wejściowe i otrzymywać nieregularne dane wyjściowe (czytaj: dynamiczna struktura danych na wejściu i wyjściu), to CUDA niestety już nie jest taka fajna.
P-117790
Rashmistrz
Temat założony przez niniejszego użytkownika
» 2014-09-30 17:11:59
Tu coś jeszcze znalazłem :F
(uwaga! mogą być przestarzałe!):
http://www.mbapp.com/category​/gpgpu/
P-117808
DejaVu
» 2014-10-01 18:16:24
Te materiały wyglądają na rozsądne odnośnie obliczeń na GPU i ograniczeń z tym związanych:

http://aragorn.pb.bialystok.pl​/~wkwedlo/PC14.pdf
P-117824
DejaVu
» 2014-10-01 22:11:06
Zamieszczam jeszcze trochę informacji na temat CUDA i możliwości stosowania programowania obiektowego:
http://devblogs.nvidia.com​/parallelforall​/unified-memory-in-cuda-6/
http://stackoverflow.com​/questions/4899425​/what-are-the-real-c-language-c​onstructs-supported-by-cuda-de​vice-code​/5128193

Jak widać technologia się rozwija więc może za te 2/3 lata będzie dostępna biblioteka oraz kontenery umożliwiające dynamiczne zarządzanie pamięcią na GPU.
P-117840
Rashmistrz
Temat założony przez niniejszego użytkownika
» 2014-10-03 07:44:29
Wykład związany z tym tematem:
http://www.pw.edu.pl​/Kalendarium​/Wyklad-Niekonwencjonalne-algorytmy-CFD
Ten wykład się odbył i nie znalazłem nagrań z niego. >_<
P-117863
« 1 » 2 3
  Strona 1 z 3 Następna strona