9. Skd to si wzio?
Na pocztku byo sowo
Do komunikacji z komputerem wystarczay
terminale znakowe. (nadal wystarczaj )
Renderowanie obrazu skadajcego si z
pixeli (piksli).
Akceleracja 2D, rysowanie ksztat坦w, z-
bufory, spritey.
10. Skd to si wzio?
Gry komputerowe zaczynaj napdza biznes
Wejcie w wiat 3D obliczenia na
wierzchokach bry, wektorach, macierzach liczb
zmiennoprzecinkowych.
Akceleracja 3D coraz bogatsza grafika, coraz
wicej smaczk坦w, dynamiczne owietlenie
11. Skd to si wzio?
Powstanie pierwszego GPU NV10.
Karta graficzna przejmuje obliczenia
Transform&Lightning.
Pojawiaj si shadery kr坦tkie programiki
adowane do karty graficznej obrabiajce
znajdujce si w niej dane (NV30).
12. Skd to si wzio?
Coraz wiksze wymagania dla potoku
przetwarzania i shader坦w.
Pomys obrabiania zjawisk fizyki w grach na
GPU.
Pojawia si CUDA (chipset G80) dowolne
programowanie na GPU z dostpem do prawie
caej infrastruktury karty graficznej w kodzie
pochodnym C.
13. Dlaczego tak to dziaa?
wiat 3D jest konstruowany w karcie graficznej za pomoc liczb
zmiennoprzecinkowych.
Liczby te opisuj wierzchoki bry kt坦re s rzutowane na ekran (lub
inne urzdzenia wywietlajce).
Najczciej s to liczby pojedynczej precyzji.
Architektura GPU jest dostosowana do natury oblicze obrazu 3D.
Wiele wierzchok坦w, wiele pikseli, ale wszystkie obrabiane tym
samym programem.
GPU to procesory SIMD single instruction - multiple data
17. Gdzie znajd zastosowanie GPU
Symulacje objtociowe cieczy i gaz坦w,
Optymalizacja wydajnoci aerodynamicznej pojazd坦w,
Analiza pogody,
Wizualizacje,
Obliczanie hashy,
i wiele innych
Gdziekolwiek gdzie zastosowanie znajduj algorytmy
oblicze r坦wnolegych najlepiej operujce na liczbach
zmiennoprzecinkowych.
18. Gdzie nie znajd zastosowania GPU
Nadzorowanie macierzy RAID
Kontrola ruchu sieciowego
Obliczenia wymagajce du甜ej liczby
rekurencji
Bazy danych
Gdziekolwiek, gdzie potrzebne s operacje
IO.
19. Czasy obecne (u甜ytkownik)
Zwikszanie precyzji oblicze
(double naprawd wchodz do gry)
Ka甜dy producent chce mie swoje GPU do
lider坦w nVidii i ATI(AMD) doczaj Apple,
Samsung, Intel, ARM
Stopniowe odejcie od typowych zastosowa
rozrywkowych
Programy u甜ytkowe zaczynaj czerpa korzyci z
GPU: Photoshop, AutoCAD, ArchiCAD, pakery
20. Czasy obecne (programista)
C++ na kartach graficznych
Rekurencja
Pojawiaj si struktury danych i rozwijaj
biblioteki (CuFFT, CuBLAS.)
PRINTF!!!
Debug na karcie graficznej
21. Wady GPU
Kiepskie IO.
(generalnie tylko O monitor komputera)
Brak wydajnego mostu CPU-GPU.
(PCI-E 16x jest za wolne)
Ilo zu甜ywanej energii.
Spos坦b programowania.
23. CUDA
Cytujc stron NVidii:
CUDA jest opracowan przez firm NVIDIA,
r坦wnoleg architektur obliczeniow, kt坦ra
zapewnia radykalny wzrost wydajnoci
oblicze dziki wykorzystaniu mocy ukad坦w
GPU (graphics processing unit jednostka
przetwarzania graficznego).
24. CUDA
Jest to r坦wnie甜 synonim rozszerzenia
standardowego jzyka C o skadni i
biblioteki potrzebne do wygodnego
przeprowadzania oblicze na kartach
graficznych.
25. CUDA
Kup GeForce'a/Quadro/Tesla/Tegra...
CUDA Zone - nVidia dba o dev坦w
http://www.nvidia.pl/object/cuda_home_new_pl.
html
Du甜e community, du甜o wykad坦w i tutoriali
26. CUDA
Kernel - funkcja adowana do pamici
instrukcji multiprocesora.
Przykadowo
35. CUDA
Ilo wtk坦w:
1024 na blok do uo甜enia w 3 wymiarach w
zakresach x,y:<1;1024> z: <1;64>
(2^31 -1)^3 blok坦w do uo甜enia w 3 wymiarach na
gridzie w zakresach x,y,z:<1;2^31-1>
36. CUDA
Klucz do dobrego programowania w CUDA
(moim zdaniem):
Zmiana sposobu mylenia o programowaniu
r坦wnolegym w bardziej masowy
Opanowanie kruczk坦w obsugi pamici
Opanowanie dobrego programowania w C
37. OpenCL
AMD
http://developer.amd.com/tools/hc/Pages/default
.aspx
Intel
http://software.intel.com/en-us/vcsource/tools/op
encl-sdk
Apple
https://developer.apple.com/library/mac/#docum
entation/Performance/Conceptual/OpenCL_MacProg
Guide/Introduction/Introduction.html
ARM
38. OpenCL
Podobna koncepcja do CUDY:
Thread work-item
Block work-group
Grid ND-range
Dynamiczna kompilacja kerneli
Du甜o wicej formalizmu w zapisie programu
40. CUDA
ZALETY
Przodownik
programowania na GPU
Prdko
Dostp do wszystkich
smaczk坦w programowania
na GPU (zarzdzanie
pamici, wyr坦wnywanie
s坦w w pamici)
WADY
Youll never know what
next CUDA will be
programy pisane s tylko
na dany typ karty (chip)
Monopol nVidii dziaa
tylko na jej urzdzeniach
41. OpenCL
ZALETY
Stay standard
Wszyscy go implementuj
Learn once
Uniwersalny
Dobrze integruje si z
OpenGLem
WADY
Wolniejszy od CUDY
Nie nad甜a za sprztem
Formalny
Dynamiczna kompilacja
kerneli