[JUG] JCuda
date post
12-Aug-2015Category
Technology
view
224download
3
Embed Size (px)
Transcript of [JUG] JCuda
- 1. JCuda Czy Java i CUDA mog si polubi? Konrad Szakowski
- 2. GPU Dlaczego warto uywa GPU Budowa GPU CUDA JCuda Przykadowa implementacja Agenda
- 3. GPU Co to jest?
- 4. Graphical GPU
- 5. Graphical Processing GPU
- 6. Graphical Processing Unit GPU
- 7. GPU Graphical Processing Unit Procesor graficzny.
- 8. Krtka historia GPU Terminale znakowe
- 9. Krtka historia GPU Terminale znakowe Renderowanie obrazu skadajcego si z pixeli
- 10. Krtka historia GPU Terminale znakowe Renderowanie obrazu skadajcego si z pixeli Akceleracja 2D, rysowanie ksztatw, Z-bufory, sprite'y.
- 11. Krtka historia GPU Wejcie w wiat 3D - obliczenia na wektorach macierzach liczb zmiennoprzecinkowych
- 12. Krtka historia GPU Wejcie w wiat 3D - obliczenia na wektorach macierzach liczb zmiennoprzecinkowych Pojawienie si pierwszego GPU - NV10. Karta graficzna przeja obliczenia T&L.
- 13. Krtka historia GPU Wejcie w wiat 3D - obliczenia na wektorach macierzach liczb zmiennoprzecinkowych Pojawienie si pierwszego GPU - NV10. Karta graficzna przeja obliczenia T&L. Pojawienie si shaderw. Krtkich programw operujcych na danych wewntrz karty graficznej. (NV30)
- 14. Krtka historia GPU Wejcie w wiat 3D - obliczenia na wektorach macierzach liczb zmiennoprzecinkowych Pojawienie si pierwszego GPU - NV10. Karta graficzna przeja obliczenia T&L. Pojawienie si shaderw. Krtkich programw operujcych na danych wewntrz karty graficznej. (NV30) Pojawienie si CUDA - dowolne programowanie na GPU (G80).
- 15. Dlaczego warto uywa GPU Architektura procesora graficznego jest zoptymalizowana pod ktem oblicze zmiennoprzecinkowych.
- 16. Dlaczego warto uywa GPU Architektura procesora graficznego jest zoptymalizowana pod ktem oblicze zmiennoprzecinkowych. Wydajno tego typu oblicze jest a do 5 razy wiksza ni CPU, w przypadku oblicze podwjnej skali precyzji.
- 17. Dlaczego warto uywa GPU Architektura procesora graficznego jest zoptymalizowana pod ktem oblicze zmiennoprzecinkowych. Wydajno tego typu oblicze jest a do 5 razy wiksza ni CPU, w przypadku oblicze podwjnej skali precyzji. I a do 10 razy w przypadku pojedynczej skali precyzji.
- 18. Dlaczego warto uywa GPU Prdko pamici DDR3-19200 ~ 19,2 GB/s
- 19. Dlaczego warto uywa GPU Prdko pamici DDR3-19200 ~ 19,2 GB/s GDDR5 ~ 224 GB/s
- 20. Dlaczego warto uywa GPU Prdko pamici DDR3-19200 ~ 19,2 GB/s GDDR5 ~ 224 GB/s Wydajno mocy Intel i7 Core 980XE: 220 GFLOPS / 130W = 1,7 GFLOPS/W
- 21. Dlaczego warto uywa GPU Prdko pamici DDR3-19200 ~ 19,2 GB/s GDDR5 ~ 224 GB/s Wydajno mocy Intel i7 Core 980XE: 220 GFLOPS / 130W = 1,7 GFLOPS/W NVIDIA GTX 580: 1580 GFLOPS / 244 W = 6,5 GFLOPS/W
- 22. Dlaczego warto uywa GPU rdo:http://www.hardwareinsight.com/
- 23. Dlaczego warto uywa GPU CPU GPU Core 2 Duo Quad Q6600 2,4GHz 4GB DDR2-800 NVidia GeForce GTX470 1296 MB GDDR5
- 24. Dlaczego warto uywa GPU CPU GPU Core 2 Duo Quad Q6600 2,4GHz 4GB DDR2-800 NVidia GeForce GTX470 1296 MB GDDR5 Raytracer 4-8 FPS 80 FPS
- 25. Dlaczego warto uywa GPU CPU GPU Core 2 Duo Quad Q6600 2,4GHz 4GB DDR2-800 NVidia GeForce GTX470 1296 MB GDDR5 Raytracer 4-8 FPS 80 FPS SGEMM 1000x1000 5924 ms 528 ms
- 26. Dlaczego warto uywa GPU CPU GPU Core 2 Duo Quad Q6600 2,4GHz 4GB DDR2-800 NVidia GeForce GTX470 1296 MB GDDR5 Raytracer 4-8 FPS 80 FPS SGEMM 5924 ms 528 ms Sort 10^6 43 ms 547 ms Sort 10^8 1000 ms 800 ms
- 27. Do czego uyto GPU Symulacje objtociowe cieczy i gazw
- 28. Do czego uyto GPU Symulacje objtociowe cieczy i gazw Optymalizacja wydajnoci aerodynamicznej pojazdw
- 29. Do czego uyto GPU Symulacje objtociowe cieczy i gazw Optymalizacja wydajnoci aerodynamicznej pojazdw Analiza pogody
- 30. Do czego uyto GPU Symulacje objtociowe cieczy i gazw Optymalizacja wydajnoci aerodynamicznej pojazdw Analiza pogody Wizualizacje
- 31. Do czego uyto GPU Symulacje objtociowe cieczy i gazw Optymalizacja wydajnoci aerodynamicznej pojazdw Analiza pogody Wizualizacje Symulacja detonacji atomowej bomby plecakowej
- 32. Do czego uyto GPU Symulacje objtociowe cieczy i gazw Optymalizacja wydajnoci aerodynamicznej pojazdw Analiza pogody Wizualizacje Symulacja detonacji atomowej bomby plecakowej Problem n cia i wiele innych.
- 33. Gdzie GPU, bdzie skuteczne Algorytmy przetwarzania rwnolegego
- 34. Gdzie GPU, bdzie skuteczne Algorytmy przetwarzania rwnolegego Mao komunikacji midzy wtkowej
- 35. Gdzie GPU, bdzie skuteczne Algorytmy przetwarzania rwnolegego Mao komunikacji midzy wtkowej Masowe obliczenia zmienno przecinkowe SP
- 36. Zapraszam http://www.nvidia.pl/object/cuda_apps_flash_pl.html
- 37. GPU Pikne liczby, powoduj dreszcze, ale gdzie jest haczyk?
- 38. GPU Pikne liczby, powoduj dreszcze, ale gdzie jest haczyk? Wtki.
- 39. GPU Pikne liczby, powoduj dreszcze, ale gdzie jest haczyk? Wtki. Duo wtkw.
- 40. GPU Pikne liczby, powoduj dreszcze, ale gdzie jest haczyk? Wtki. Duo wtkw. Nawet 2^9 * 2^32 wtkw.
- 41. CPU DRAM
- 42. CPU DRAM Cache
- 43. CPU CONTROL DRAM Cache
- 44. CPU CONTROL DRAM Cache ALU ALU ALU ALU ALU ALU
- 45. GPU DRAM
- 46. GPU DRAM
- 47. GPU DRAM
- 48. GPU DRAM Cache CONT ROL Cache CONT ROL Cache CONT ROL Cache CONT ROL
- 49. GPU DRAM Cache CONT ROL ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU Cache CONT ROL ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU Cache CONT ROL ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU Cache CONT ROL ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU ALU
- 50. GPU Pikne liczby, powoduj dreszcze, ale gdzie jest haczyk? Wtki. Duo wtkw. Ok. 2^24 * 2^32 wtkw. Pami. Zarzdzanie. Transfer. Optymalne wykorzystanie.
- 51. GPU DRAM
- 52. GPU DRAM Pami tekstur Pami staych
- 53. GPU DRAM Cache staychCache tekstur Pami tekstur Pami staych
- 54. GPU DRAM Pami instrukcji Cache staychCache tekstur Procesor Procesor Procesor Procesor Pami tekstur Pami staych
- 55. GPU DRAM Pami instrukcji Cache staychCache tekstur Procesor Procesor Procesor Procesor Rejestry Rejestry Rejestry RejestryRejestry Pami tekstur Pami staych
- 56. GPU DRAM Pami instrukcji Cache staychCache tekstur Procesor Procesor Procesor Procesor Rejestry Rejestry Rejestry Rejestry Pami wspdzielona Rejestry Pami tekstur Pami staych
- 57. CUDA Compute Unified Device Architecture
- 58. CUDA Cytujc stron NVidii: CUDA jest opracowan przez firm NVIDIA, rwnoleg architektur obliczeniow, ktra zapewnia radykalny wzrost wydajnoci oblicze dziki wykorzystaniu mocy ukadw GPU (graphics processing unit jednostka przetwarzania graficznego).
- 59. CUDA Jest to rwnie synonim rozszerzenia standardowego jzyka C o skadni i biblioteki potrzebne do wygodnego przeprowadzania oblicze na kartach graficznych.
- 60. JCuda Zestaw bibliotek opakowywujcych natywne biblioteki CUDY z wykorzystaniem interfejsu JNI. Niestety, zalene od systemu operacyjnego/architektury procesora.
- 61. JCuda CUDA DRIVER API CUDA RUNTIME API
- 62. libJCudaDriver.so libJCudaRuntime.so JCuda CUDA DRIVER API CUDA RUNTIME API
- 63. libJCudaDriver.so libJCudaRuntime.so JCuda CUDA DRIVER API CUDA RUNTIME API JCudaRuntime.jar JCudaDriver.jar
- 64. Jk zawodu na sali Niestety, zalene od systemu operacyjnego/architektury procesora.
- 65. Jk zawodu na sali Niestety, zalene od systemu operacyjnego/architektury procesora. Naley jednak pamita, e API CUDY plus biblioteki to ok. 2500 rnych funkcji zmieniajcych si z kadym wydaniem.
- 66. Co to jest kernel? Funkcja adowana do pamici instrukcji multiprocesora.
- 67. Co to jest kernel? Funkcja adowana do pamici instrukcji multiprocesora. Przykad JCudaVectorAdd.cu: extern "C" __global__ void add(int n, float *a, float *b, float *sum) { int i = blockIdx.x * blockDim.x + threadIdx.x; if (i
- 68. Organizacja przetwarzania struct dim3 { int x, y, z; } dim3 gridDim, blockDim; dim3 blockIdx, threadIdx;
- 69. Organizacja przetwarzania Blok WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek WtekWtek Wtek Wtek
- 70. Organizacja przetwarzania Kady blok moe zosta przydzielony do dowolnego multiprocesora. To w jaki sposb zostanie on przydzielony zaley od jego wymaga co do pamici wspdzielonej oraz rejestrw.
- 71. Organizacja przetwarzania Grid BlokBlok Blok Blok BlokBlok Blok Blok BlokBlok Blok Blok
- 72. Ograniczenia przetwarzania Ograniczenia: Maksymalna ilo wtkw w bloku: 512 (256). Maksymalny wymiar grida 2^16 x 2^16 x 1. Do niedawna brak rekurencji. Do niedawna brak printf.
- 73. Ograniczenia przetwarzania Wtki w bloku formowane s w tzw. warpy po 32 wtki kady i nastpnie s adowane do multiprocesora. W ramach jednego warpa rwnolegle przez wtki moe by wykonywana tylko jedna instrukcja. Jeli nastpi rozgazienie (if) zasada ta nadal obowizuje i instrukcje gazi si przeplataj.
- 74. Typowy przebieg przetwarzania 1. Przygotow