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

Wykonywanie algorytmów na GPU

Ostatnio zmodyfikowano 2012-03-19 09:37
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
Wykonywanie algorytmów na GPU
» 2012-03-16 20:52:35
Czy ktoś z Was ma jakieś doświadczenia z obliczeniami na GPU oraz mógłby się podzielić swoim doświadczeniem, refleksjami itp. związanymi z nimi? Np. czy odczuwalne były korzyści oraz jakiego stopnia przyśpieszenie uzyskaliście...
P-52722
Toboe
» 2012-03-16 21:16:50
Problem musi być do obliczania/programowania rozproszonego. Pojedynczy proces GPU nie jest specjalnie szybszy od CPU, więc przetwarzanie danych sekwencyjne na GPU nie da w sumie żadnego polepszenia. Natomiast dla problemów, które można podzielić na setki, albo i tysiące równoległych procesów, najlepiej liczących na tych samych danych, można (względnie) łatwo uzyskać stokroć szybciej wyniki niż dla CPU, a największą część czasu działania programu zajmie wysyłanie danych do GPU.


Sama umiejętność wykorzystywania wielu rdzeni CPU daje parokrotne przyspieszenie obliczeń.
P-52726
DejaVu
Temat założony przez niniejszego użytkownika
» 2012-03-16 21:34:43
yhy :) a jak wygląda sprawa z klasami? Da się przekazać obiekt, na którym ma pracować dane GPU? Chciałbym np. mieć coś takiego:
C/C++
void funkcjaNaGPU( CObiekt * pObiekt )
{
    pObiekt->uruchom();
}
P-52727
yoogi
» 2012-03-16 21:46:59
Wszystko się da tylko trzeba wiedzieć jak :) a z tym "jak" czasami jest wielki problem. Kiedyś pobrałem sobie CUDA ale niestety nie udało mi się zainstalować, zbyt mało chęci i motywacji
P-52728
DejaVu
Temat założony przez niniejszego użytkownika
» 2012-03-16 21:49:49
Jakby to było takie oczywiste to bym nie zadawał tego pytania... dlatego pytam się o osoby posiadające jakieś praktyczne doświadczenie z obliczeniami na GPU.
P-52730
hincu
» 2012-03-16 22:00:32
zapytaj na warsztacie tam powinni ci szybciej pomoc tym bardziej ze to ty masz najwieksze doswiadczenie programistyczne z calego cpp0x : P
P-52732
akwes
» 2012-03-16 22:31:49
Postanowiłem poszperać te parę chwil w internecie, co by się raz odwdzięczyć chociaż a nie wciąż pytać ;>

Wychodzi na to, że o taką funkcję będzie ciężko i wszystko jest zależne od producenta karty.

Kiedyś czytałem o technologi CUDA, moja nowa karta graficzna ma takie coś na pudełku napisane, stara nie miała, to chciałem wiedzieć co mam. Okazuje się że to wspiera developerów. Ale jak mówiłem, stara karta graficzna tego nie miała więc już uniwersalność rozwiązania idzie sobie do lasu.

http://arstechnica.com/old/content/2007/02/8878.ars
i idąc za ciosem
http://developer.nvidia.com/cuda-cc-sdk-code-samples

z drugiej strony wiki mówi coś o standardzie w pracy z takimi zabawami http://en.wikipedia.org/wiki/GPGPU
a tu główna strona http://gpgpu.org/about

Tutaj mamy coś o wbudowanym akcenelatorze dla .NET http://blog.lab49.com/archives/356 http://research.microsoft.com/en-us/projects/Accelerator/

Co wykopałem jeszcze:
https://msmvps.com/blogs/brunoboucard/archive/2011/09/28/introduction-to-gpu-programming-part-1.aspx
http://en.wikipedia.org/wiki/Cg_(programming_language) skoro ma własne typy to i pewnie obliczenia można robić i przekazywać do własnego programu.
http://brahma.ananthonline.net/ dla C#

http://geekswithblogs.net/JoshReuben/archive/2011/12/04/c-amp.aspx <= i tu coś fajnego chyba ;)

C++ AMP is a GPGPU API – it allows you to define functions (kernels) that take some input, perform an expensive calculation on the GPU and return the output to CPU
P-52737
DejaVu
Temat założony przez niniejszego użytkownika
» 2012-03-16 23:13:55
O bibliotece CUDA czytałem trochę... pytanie generalnie moje jest proste. Czy mogę sobie bezkarnie używać dynamicznych struktur danych, typu std::vector (do odczytu i do zapisu). Przygotowane dane chciałbym dostarczyć poprzez wskaźnik na klasę (każdy wątek otrzymałby wskaźnik na inne dane), natomiast wykonywać obliczenia chciałbym już w tym wydzielonym wątku.

/edit:
Dorzucam linki:
http://www.mbapp.com/2011-06/nastepca-opencl-zapowiedziany/
http://forum.warsztat.gd/index.php?topic=21884.0
P-52739
« 1 » 2
  Strona 1 z 2 Następna strona