|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
SZCZUR
żul
Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów
|
Wysłany: Wto 14:19, 30 Paź 2007 Temat postu: CUDA |
|
|
topic dedykowany głównie dla Cedrica...
przesyłanie tablic do GPU:
float* cpu_mem = new float[size];
cpu_mem[...] = ....
void* gpu_mem;
cudaMalloc((void**) &gpu_mem, size * sizeof(float));
cudaMemcpy(gpu_mem, cpu_mem, size * sizeof(float), cudaMemcpyHostToDevice);
//teraz przesylasz do kernela
abcd<<< grid, threads >>>(gpu_mem);
//jak byś chciał coś przesłać z powrotem to:
cudaMemcpy(hcpu_mem, gpu_mem, mem_size, cudaMemcpyDeviceToHost)
GPU może pracować tylko z float i int przy czym inty są ok 4x wolniejsze. reszta typów jest emulowana i nie wiem jaka ma wydajność..
trzeba jeszcze pamiętać ze float nie jest zgodny z IEEE-754.
(dotyczy to miedzy innymi odwrotności, sqrt, NaN...)
jak byś allokowal na gpu tablice 2D to używasz "cudaMallocPitch"
można tez przesyłać dane jako tekstury i jak byś tego potrzebował to pisz...
(tekstury automatycznie mogą zmieniać np: byte na float ale to komplikuje trochę sprawę)
edit:
gpu działa asynchronicznie z cpu wiec w czasie gdy gpu jest zajęte warto sie zając generowaniem następnych danych dla gpu a dopiero później pobierać wyniki z gpu. pobieranie wyników z gpu wymusza wstrzymanie pracy cpu dopóki gpu nie jest gotowe.
edit2:
nie wiem jak dobrze znasz CUDA wiec dam ci jeszcze parę hintów:
-zamiast if/for/while... używaj operacji matematycznych o ile to możliwe bo każdy multiprocesor ma tylko jedna jednostkę dekodująca rozkazy i jeśli hoc jeden watek wejdzie do if to wszystkie inne czekaj aż on z niego wyjdzie.
-operacjie +, -, * na floatach trwaja 4 cykle "1/x", "1/sqrt(x)" trwaja 16 cykli
-operacjie + - * na intach trwaja 16 cykli
-dostęp do shared mem trwa 2 cykle, do global 600~800 cykli
-nvidia wydala kalkulatorek do obliczania optymalnych ilosci watków. (w pliku xml)
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
dzendras
Germański oprawca
Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów
Skąd: Chorzów
|
Wysłany: Wto 19:01, 30 Paź 2007 Temat postu: |
|
|
hm a nie można po prostu wysłać PW?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Wto 19:29, 30 Paź 2007 Temat postu: |
|
|
dostal taki prace w drimlabie i od razu sie wymadrza ;p bys sie uczyl od szczura, a nie marudzil ;p
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
dzendras
Germański oprawca
Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów
Skąd: Chorzów
|
Wysłany: Wto 19:53, 30 Paź 2007 Temat postu: |
|
|
staż, nie pracę ;P
|
|
Powrót do góry |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|