Programowanie równoległe Wprowadzenie do programowania GPU. Rafał Skinderowicz

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie równoległe Wprowadzenie do programowania GPU. Rafał Skinderowicz"

Transkrypt

1 Programowanie równoległe Wprowadzenie do programowania GPU Rafał Skinderowicz

2 CPU Fetch/ Decode ALU (Execute) Data cache (a big one) Execution Context Out-of-order control logic Fancy branch predictor Memory pre-fetcher Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD Rozbudowane układy dekodowania i predykcji instrukcji Duża pamięć cache

3 CPU Celem CPU jest jak najszybsze wykonanie danego strumienia instrukcji Pamięć cache oraz układy predykcji rozgałęzień mają na celu redukcję czasu oczekiwania na dane potrzebne do obliczeń Rozbudowana potokowość (ang. pipelining) wykonywania instrukcji Zmiana kolejności wykonania rozkazów (ang. out-of-order execution)

4 Potokowość Instr. No Clock Cycle Pipeline Stage IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM IF ID EX Uproszczony schemat potokowego wykonania instrukcji. Pobranie instrukcji z pamięci ang. instruction fetch (IF); Zdekodowanie instrukcji ang. instruction decode (ID); Wykonanie instrukcji ang. execute (EX); Dostęp do pamięci ang. memory access (MEM); Zapisanie wyników działania instrukcji ang. store; write back (WB)

5 W kierunku GPU Fetch/ Decode ALU (Execute) Execution Context Usuwamy układy odpowiedzialne za szybkie wykonanie potoku instrukcji redukując istotnie rozmiar rdzenia. Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD

6 W kierunku GPU Fetch/ Decode ALU (Execute) Execution Context Usuwamy układy odpowiedzialne za szybkie wykonanie potoku instrukcji redukując istotnie rozmiar rdzenia. Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD Większość tranzystorów we współczesnych CPU to pamięć cache

7 W kierunku GPU Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD Uproszczona budowa obniża koszty pozwalając na użycie większej ich liczby 16 rdzeni to 16 jednoczesnych strumieni instrukcji

8 W kierunku GPU Fetch/ Decode ALU 1 ALU 2 ALU 3 ALU 4 ALU 5 ALU 6 ALU 7 ALU 8 Ctx Ctx Ctx Ctx Ctx Ctx Ctx Ctx Shared Ctx Data Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD Jeżeli rdzenie będą wykonywać te same instrukcje, ale na różnych danych to mogą dzielić układy pobierania i dekodowania rozkazów Przetwarzanie typu SIMD single instruction, multiple data Problem: oczekiwanie na dane wstrzymuje wszystkie ALU duże opóźnienie wykonania instrukcji

9 Ukrywanie opóźnień Fetch/ Decode ALU 1 ALU 2 ALU 3 ALU 4 ALU 5 ALU 6 ALU 7 ALU 8 Fetch/ Decode ALU 1 ALU 2 ALU 3 ALU 4 ALU 5 ALU 6 ALU 7 ALU 8 Wspólna pamięć 128 KB Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD W pamięci można przechowywać kontekst obliczeniowy dla wielu niezależnych strumieni instrukcji i przełączać się między nimi w miarę potrzeby zwiększając przepustowość

10 Przykład 16 rdzeni 8 mul-add ALU na rdzeń (128 łącznie) 16 niezależnych strumieni instrukcji 64 współbieżne strumienie instrukcji (metoda przeplotu) 512 współbieżnych kontekstów Moc 256 GFLOPs (przy 1GHz) Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD

11 Podsumowanie Główne idee architektury GPU to: Wiele prostych rdzeni obliczeniowych umożliwiających równoległe obliczenia Rdzenie z wieloma ALU umożliwiającymi obliczenia typu SIMD Przeplatane wykonanie wielu grup instrukcji na jednym rdzeniu, żeby ukryć opóźnienia

12 Podsumowanie CPU Thread 1 Thread 2 Thread 3 Thread 4 Lower Latencies GPU Thread 1 Thread 2 Thread 3 Thread 4 Higher Throughput Time Time

13 NVidia Fermi SM NVIDIA GeForce GTX 580 (architektura Fermi) Fetch/ Decode Fetch/ Decode Execution contexts (128 KB) ALU - 16 na procesor strumieniowy (1 instr. MUL-ADD na cykl) * Rdzeń zawiera 32 jednostki ALU * Dwa strumienie instrukcji są wykonywane na cykl * Maksymalnie 48 współbieżnych strumieni (osnów) * Maksymalnie 1536 indywidualnych kontekstów obliczeniowych = 1536 wątków CUDA Shared memory (16+48 KB) Source: Fermi Compute Architecture Whitepaper CUDA Programming Guide 3.1, Appendix G

14 NVidia Fermi GTX rdzeni SM pozwala na współbieżne wykonanie wątków CUDA Rysunek : Źródło: Introduction to GPU Architecture Ofer Rosenberg, AMD

15 Model obliczeń CUDA Program na hoście zleca wykonanie obliczeń na GPU w postaci kerneli Kod kernela wykonywany jest przez wątki tworzące kratę (ang. grid) Wątki kraty wykonywane są w blokach każdy blok na jednym multiprocesorze (SM) Wątki bloku wykonywane są w grupach, tzw. osnowach (ang. warp) po 32 Host Kernel 1 Kernel 2 Device Grid 2 Block (1, 1) Thread (0,0,0) Thread (0,1,0) Grid 1 Block (0, 0) Block (0, 1) (0,0,1) (1,0,1) (2,0,1) (3,0,1) Thread (1,0,0) Thread (1,1,0) Block (1, 0) Block (1, 1) Thread Thread (2,0,0) (3,0,0) Thread Thread (2,1,0) (3,1,0) Block (2, 0) Block (2, 1)

16 Przykład dodawanie wektorów 1 // Kernel odpowiedzialny za obliczenia 2 void vecadd(float *A, float *B, float *C, int N) { 3 for(int i = 0; i < N; i++) 4 C[i] = A[i] + B[i]; 5 } 6 int main() { 7 int N = 4096; 8 // Alokacja pamięci 9 float *A = (float *)malloc(sizeof(float)*n); 10 float *B = (float *)malloc(sizeof(float)*n); 11 float *C = (float *)malloc(sizeof(float)*n); 12 // Wprowadzenie danych wej. 13 init(a); init(b); 14 // Wywołanie kernela 15 vecadd(a, B, C, N); 16 // Zwolnienie pamięci 17 free(a); free(b); free(c); 18 }

17 Przykład dodawanie wektorów na GPU 1 // Kernel CUDA obliczający sumę wektorów 2 global 3 void gpuvecadd(float *A, float *B, float *C) { 4 int tid = blockidx.x * blockdim.x + threadidx.x; 5 C[tid] = A[tid] + B[tid]; 6 } blockidx.x threadidx.x GRID BLOCK (0,0) (0,0) (1,0) (2,0)... (31,0) blockdim.x = 32 BLOCK (1,0) (0,0) (1,0) (2,0)... (31,0)... tid = blockidx.x * blockdim.x + threadidx.x Rysunek : Obliczanie globalnego identyfikatora wątku w kernelu CUDA

18 Przykład dodawanie wektorów na GPU 1 int main() { 2 int N = 4096; 3 float *A = (float *)malloc(sizeof(float)*n); 4 float *B = (float *)malloc(sizeof(float)*n); 5 float *C = (float *)malloc(sizeof(float)*n); 6 init(a); // Inicjuj dane wejściowe 7 init(b);

19 Przykład dodawanie wektorów na GPU 1 // c.d. 2 // Alokacja buforów w pamięci GPU 3 float *d_a, *d_b, *d_c; 4 cudamalloc(&d_a, sizeof(float)*n); 5 cudamalloc(&d_b, sizeof(float)*n); 6 cudamalloc(&d_c, sizeof(float)*n); 7 8 // Kopiowanie danych do pamięci GPU 9 cudamemcpy(d_a, A, sizeof(float)*n, 10 cudamemcpyhosttodevice); 11 cudamemcpy(d_b, B, sizeof(float)*n, 12 cudamemcpyhosttodevice); Kierunek kopiowania: cudamemcpyhosttodevice z pam. hosta (RAM) do pam. GPU cudamemcpydevicetohost z pam. urządzenia do głównej

20 Przykład dodawanie wektorów na GPU 1 // c.d. 2 // Ustalenie podziału obliczeń na wątki 3 dim3 dimblock(32,1); // Rozmiar bloku 4 dim3 dimgrid(n/32,1); // Rozmiar kraty 5 // Uruchomienie kernela 6 gpuvecadd <<< dimblock,dimgrid >>> (d_a, d_b, d_c); 7 // Kopiowanie wyników do pamięci głównej 8 cudamemcpy(c, d_c, sizeof(float)*n, cudamemcpydevicetohost); 9 // Zwolnienie zasobów 10 cudafree(d_a); 11 cudafree(d_b); cudafree(d_c); 12 free(a); free(b); free(c); 13 }

21 Dodawanie wektorów porównanie kerneli 1 // Kernel CPU 2 void vecadd(float *A, float *B, float *C, int N) { 3 for(int i = 0; i < N; i++) 4 C[i] = A[i] + B[i]; 5 } 6 7 // Kernel CUDA 8 global 9 void gpuvecadd(float *A, float *B, float *C) { 10 int i = blockidx.x * blockdim.x + threadidx.x; 11 C[i] = A[i] + B[i]; 12 } // Kernel OpenCL 15 kernel 16 void gpuvecadd( global float *A, global float *B, global float *C) 17 { 18 int i = get_global_id(0); 19 C[i] = A[i] + B[i]; 20 }

22 Dodawanie wektorów porównanie kerneli Uwaga: w przypadku gdy rozmiar wektora jest mniejszy niż liczba wątków konieczne jest sprawdzanie zakresu 1 // Kernel OpenCL 2 kernel 3 void gpuvecadd( global float *A, global float *B, global float *C, 4 int N) 5 { 6 int i = get_global_id(0); 7 if (i < N) { 8 C[i] = A[i] + B[i]; 9 } 10 }

23 Przykład dodawanie macierzy Dodawanie macierzy A oraz B o wymiarach N M a 11 a a 1m a 21 a a 2m A = a 31 a a 3m a n1 a n2... a nm b 11 b b 1m b 21 b b 2m B = b 31 b b 3m b n1 b n2... b nm C = A + B = [a ij + b ij ] dla wszystkich i, j.

24 Dodawanie macierzy porównanie kerneli 1 // Kernel CPU, N - liczba wierszy, M - liczba kolumn 2 void vecadd(float *A, float *B, float *C, int N, int M) { 3 for(int i = 0; i < N; i++) 4 for(int j = 0; j < M; j++) 5 C[i * M + j] = A[i * M + j] + B[i * M + j]; 6 } 7 // Kernel CUDA 8 global 9 void gpuvecadd(float *A, float *B, float *C) { 10 int i = blockidx.y * blockdim.y + threadidx.y; 11 int j = blockidx.x * blockdim.x + threadidx.x; 12 C[i * M + j] = A[i * M + j] + B[i * M + j]; 13 } 14 // Kernel OpenCL 15 kernel 16 void gpuvecadd( global float *A, global float *B, global float *C, 17 int M, int N) 18 { 19 int j = get_global_id(0); 20 int i = get_global_id(1); 21 C[i * M + j] = A[i * M + j] + B[i * M + j]; 22 }

25 Organizacja obliczeń Wybór liczby wymiarów przestrzeni indeksowania (1D, 2D lub 3D) zależy zazwyczaj od natury danych i wybranego algorytmu W przypadku przetwarzania danych 2D naturalne jest umieszczenie indeksów wątków w przestrzeni 2D

26 Organizacja obliczeń blocks Rysunek : Przykład pokrycia tablicy 76x62 grupami po 16x16 wątków (Źródło: David B. Kirk and Wen-mei W. Hwu, Programming Massively Parallel Processors A Hands-on Approach) wątki będą przetwarzać tablicę o wymiarach Konieczne jest sprawdzanie, czy wątek odwołuje się do elementu w dozwolonym zakresie, np. if (get_global_id(0)< 62) W 408 ( 8%) przypadkach wątki nie wykonają użytecznej pracy

27 Organizacja obliczeń Ponieważ do kernela można przekazywać dane w postaci tablic jednowymiarowych, to dane wielowymiarowe muszą być serializowane Tablicę dwuwymiarową można zapisać w tablicy jednowymiarowej wiersz po wierszu (row-major) lub kolumna za kolumną (column-major) M 0,0 M 0,1 M 0,2 M 0,3 M 1,0 M 1,1 M 1,2 M 1,3 M 2,0 M 2,1 M 2,2 M 2,3 M M 3,0 M 3,1 M 3,2 M 3,3 M 0,0 M 0,1 M 0,2 M 0,3 M 1,0 M 1,1 M 1,2 M 1,3 M 2,0 M 2,1 M 2,2 M 2,3 M 3,0 M 3,1 M 3,2 M 3,3 M M 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 M 13 M 14 M 15 Rysunek : Serializacja macierzy wiersz po wierszu M[row][column] M[row * width + column]

28 Organizacja obliczeń M 0,0 M 0,1 M 0,2 M 0,3 M 1,0 M 1,1 M 1,2 M 1,3 M 2,0 M 2,1 M 2,2 M 2,3 M M 3,0 M 3,1 M 3,2 M 3,3 M 0,0 M 1,0 M 2,0 M 3,0 M 0,1 M 1,1 M 2,1 M 3,1 M 0,2 M 1,2 M 2,2 M 3,2 M 0,3 M 1,3 M 2,3 M 3,3 M M 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 M 13 M 14 M 15 Rysunek : Serializacja macierzy kolumna po kolumnie M[row][column] M[column * width + row]

29 Organizacja obliczeń Wątki dzielone są na bloki (grupy), z których każdy wykonuje się na pojedynczym multiprocesorze (PE) Maksymalny rozmiar bloku jest określony w wersji standardu CUDA / OpenCL wspieranej przez urządzenie np. 512/1024 (Compute Capability 1.x / 2.x-3.x) Maksymalny rozmiar bloku w każdym wymiarze (x, y i z) jest również ograniczony, przy czym x y z nie może przekroczyć rozmiaru bloku Wątki w bloku nie mogą używać więcej niż 8k/16k/32k rejestrów (Compute 1.0,1.1/1.2,1.3/2.x) Blok nie może użyć więcej niż 16kb/48kb współdzielonej pamięci (Compute 1.x/2.x)

30 Organizacja obliczeń Uwzględniając ograniczenia duży rozmiar bloku może ograniczyć wydajność, np. ze względu na zapotrzebowanie na pamięć Zbyt mały rozmiar bloku również jest niekorzystny niewystarczające wykorzystanie mocy obliczeniowej ze względu na to, że PE pracują w modelu SIMD/SIMT

31 Organizacja obliczeń wewnątrz bloku W kartach Nvidia 32 wątki bloku tworzą tzw. osnowę (ang. warp) wykonywane są w modelu SIMD/SIMT (ang. single instruction multiple threads) W kartach AMD odpowiednikiem osnowy jest tzw. wavefront złożony zazwyczaj z 64 wątków (w starszych modelach 16 lub 32) W procesorach ogólnego przeznaczenia rozmiar osnowy może zależeć od instrukcji kernela

32 Organizacja obliczeń wewnątrz bloku Rozmiar bloku powinien być wielokrotnością rozmiaru osnowy Jeżeli rozmiar osnowy wynosi 32, a bloku 16 to tracimy 50% mocy obliczeniowej Rozmiar osnowy nie jest ustandaryzowany, jednak udostępniany przez środowisko uruchomieniowe: CUDA CL_DEVICE_WARP_SIZE_NV OpenCL CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE

33 Organizacja obliczeń wewnątrz bloku 1 size_t preferredsizemultiple; 2 clgetkernelworkgroupinfo(kernel, device, 3 CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, 4 sizeof(preferredsizemultiple), 5 &preferredsizemultiple, 6 NULL); 1 const size_t N =...; // Rozmiar danych do przetworzenia 2 size_t local_work_size[] = { preferredsizemultiple }; 3 // global_work_size[0] musi być wielokrotnością local_work_size[0] 4 size_t global_work_size[] = { 5 (size_t)ceil(n / (float)local_work_size[0]) * local_work_size[0] 6 }; Uwaga! Liczba wątków może być większa niż rozmiar danych

34 Organizacja obliczeń wewnątrz bloku 1 const size_t N =...; // Rozmiar danych do przetworzenia 2 size_t local_work_size[] = { preferredsizemultiple }; 3 // global_work_size[0] musi być wielokrotnością local_work_size[0] 4 size_t global_work_size[] = { 5 (size_t)ceil(n / (float)local_work_size[0]) * local_work_size[0] 6 }; Jeżeli N = 1234, preferredsizemultiple = 32 to global_work_size[0] = 39 * 32 = 1248 Wymaga to uwzględnienia w kodzie kernela, np. instrukcja if do sprawdzenia, czy nie odwołujemy się do elementów poza dopuszczalnym zakresem

35 Synchronizacja wątków Wątki wewnątrz grupy / bloku mogą być synchronizowane Wątki należące do różnych grup nie mogą być synchronizowane Jeżeli bariera synchronizacyjna umieszczona jest w bloku instrukcji warunkowej, to albo dla wszystkich wątków warunek jest spełniony, albo dla żadnego nie jest W przeciwnym razie program zakleszczy się Wątek 0 Wątek 1 Wątek 3 Wątek 4 Wątek 5 Wątek n-3 Wątek n-2 Wątek n-1 Czas

36 Synchronizacja wątków Synchronizacja wątków w OpenCL realizowana jest za pomocą funkcji void barrier (cl_mem_fence_flags flags), gdzie flags może przyjmować wartości: CLK_LOCAL_MEM_FENCE zapewnia, że zmiany w pamięci lokalnej dokonane przez wątki zostaną uszeregowane i wątki zobaczą spójny stan pamięci lokalnej CLK_GLOBAL_MEM_FENCE zapewnia, że wszystkie zapisy do pamięci głównej (obiektów pamięci, obrazów) zostaną wykonane i wątki zobaczą jej spójny stan Wywołanie funkcji barrier w różnych miejscach kernela oznacza odrębne bariery synchronizacyjne

37 Ukrywanie opóźnień Wiele uwagi zarówno w architekturze GPU, jak i środowisku programistycznym i wykonawczym poświęcono problemowi ukrywania opóźnień wynikających z powolnych operacji, takich jak odczyt i zapis do pamięci, barier synchronizacyjnych Jednym ze sposobów jest wykonywanie metodą przeplotu większej liczby wątków niż wynika to z liczby jednostek przetwarzających

38 Ukrywanie opóźnień Pojedynczy SM w architekturze Nvidia Fermi może wykonywać współbieżnie: do 48 osnów (warps) 32 wątki = 1536 wątków do 8 bloków jednocześnie SM wyposażony jest w 2 planistów (ang. warp scheduler) SM może jednocześnie wykonywać 2 grupy (osnowy, ang. warp) po 32 wątków Jak widać liczba wątków znacząco przekracza liczbę rdzeni CUDA (jednostek ALU/FP) Rysunek : Schemat SM w architekturze Nvidia Fermi

39 Ukrywanie opóźnień Duża liczba wątków konieczna jest aby ukryć opóźnienia Jeżeli wątki w osnowie muszą czekać na zakończenie wykonywania wolnej instrukcji, to w tym czasie wybierana jest inna osnowa, która gotowa jest do wykonania Jeżeli gotowych jest więcej, to wybór dokonywany jest na podstawie priorytetów Przełączanie pomiędzy osnowami nie powoduje opóźnień, jest to tzw. zero-overhead thread scheduling

40 Ukrywanie opóźnień przykład Pożądane jest by liczba bloków i wątków była blisko granic sprzętowych W przypadku architektury Nvidia Fermi mamy maks. 8 bloków (po maks wątki), ale nie więcej niż 1536 wątków na SM Rozmiar bloku Wątki na blok Liczba bloków Wątki razem 8x x x

41 Ukrywanie opóźnień pamięć Nawet duża liczba bloków i wątków nie zawsze jest w stanie ukryć wszystkich opóźnień, szczególnie wynikających z operacji na pamięci globalnej Opóźnienie w dostępie do pamięci globalnej może sięgać setek cykli, stąd należy redukować liczbę operacji na pamięci, np. przez cacheowanie danych zapewnić ich uporządkowanie łączone odczyty danych z pamięci głównej

42 Hierarchia pamięci GPU Hierarchia pamięci na przykładzie Nvidia Fermi Fermi Memory Hierarchy Review SM-0 SM-1 SM-N Fermi Chip Registers L1 SMEM Registers L1 SMEM Registers L1 SMEM L2 Global Memory NVIDIA Corporation 2011

43 Pamięć GPU opóźnienia W architekturze Nvidia Fermi: rejestry mają łączną przepustowość ok. 8TB/sek. (maks. 63 rejestry 32 bitowe na kernel) pamięć współdzielona / L1 (64KB) ma przepustowość łączną ok 1.6TB/sek. i bardzo niskie opóźnienie (10-20 cykli) pamięć globalna ma przepustowość do 177GB/sek. i opóźnienie rzędu cykli Jak widać, im mniej operacji na pamięci globalnej, tym lepiej

44 Optymalizacja dostępu do pamięci na przykładzie Przyjrzymy się wzorcom dostępu do pamięci w programie mnożącym macierze Złożoność standardowego algorytmu mnożenia to O(n 3 ), dla porównania: Algorytm Strassena ma złożoność O(n ) Najlepszy znany algorytm (2014) autorstwa François Le Gall ma złożoność O(n )

45 Mnożenie macierzy wersja CPU A B Rysunek : Matrix multiplication diagram, autor Bilou 1 /* 2 A, B, C - tablice 2D o rozmiarze size x size 3 */ 4 for (int i = 0; i < size; ++i) { 5 for (int j = 0; j < size; ++j) { 6 sum = 0; 7 for (int k = 0; k < size; ++k) { 8 sum += A[i][k] * B[k][j]; 9 } 10 C[i][j] = sum; 11 } 12 }

46 Mnożenie macierzy wersja CPU A B Rysunek : Matrix multiplication diagram, autor Bilou 1 /* 2 Wersja dla macierzy zapisanych w tablicach 1D 3 A, B, C - tablice 1D o długości size x size 4 */ 5 for (size_t i = 0; i < size; ++i) { 6 for (size_t j = 0; j < size; ++j) { 7 int sum = 0; 8 for (size_t k = 0; k < size; ++k) { 9 sum += A[i*size + k] * B[k*size + j]; 10 } 11 C[i*size + j] = sum; 12 } 13 }

47 Optymalizacja dostępu do pamięci Kernel OpenCL obliczający iloczyn macierzy 1 kernel void matrix_multiply(int size, 2 global float *A, 3 global float *B, 4 global float *C) { 5 const int col = get_global_id(0); 6 const int row = get_global_id(1); 7 if (row < size && col < size) { 8 float sum = 0; 9 for (int i = 0; i < size; ++i) { 10 sum += A[row * size + i] * B[i * size + col]; 11 } 12 C[row * size + col] = sum; 13 } 14 }

48 Analiza dostępu do pamięci Za większość operacji na pamięci głównej odpowiedzialny jest fragment: 1 for (int i = 0; i < size; ++i) { 2 sum += A[row * size + i] * B[i * size + col]; 3 } W każdej iteracji pętli wykonywane jest 1 mnożenie, 1 dodawanie i 2 odczyty z tablic, odpowiednio, A oraz B Stosunek liczby instrukcji obliczeń do liczby instrukcji dostępu do pamięci wynosi 1:1 Nazywany również compute to global memory access (CGMA) ratio

49 Analiza dostępu do pamięci CGMA ma kluczowy wpływ na wydajność obliczeń GPU Zakładając przepustowość pamięci na poziomie 200GB/sek. pozwala to załadować 200GB/4B = 50Giga liczb typu float Przy CGMA = 1.0 kernel może wykonać co najwyżej 50 GFLOPS operacji na sekundę znacznie mniej, niż szczytowa moc obliczeniowa (np GFLOPS) W celu poprawy wydajności należy zwiększyć wartość CGMA, tj. więcej obliczeń na daną liczbę odczytów/zapisów pamięci głównej

50 Optymalizacja dostępu do pamięci Zauważmy, że wątki odwołują się w części do tych samych danych B 0,0 B 0,1 B 1,0 B 1,1 B 2,0 B 2,1 B 3,0 B 3,1 A 0,0 A 0,1 A 0,2 A 0,3 C 0,0 C 0,1 C 0,2 C 0,3 A 1,0 A 1,1 A 1,2 A 1,3 C 1,0 C 1,1 C 1,2 C 1,3 C 2,0 C 2,1 C 2,2 C 2,3 C 3,0 C 3,1 C 3,2 C 3,3 4 wątki wykonują 4 (4 + 4) = 32 odczyty pamięci, przy czym różnych jest jedynie 16

51 Optymalizacja dostępu do pamięci Jeżeli udałoby się zmusić wątki do współpracy i wykorzystania raz załadowanych danych to transfer danych zmniejszyłby się o połowę Rozwiązaniem jest podzielenie obliczeń na małe porcje 2 2 Każdy wątek ładuje element do pomocniczych tablic N oraz M umieszczonych w pamięci lokalnej B 0,0 B 0,1 B 1,0 B 1,1 B 2,0 B 2,1 B 3,0 B 3,1 A 0,0 A 0,1 A 0,2 A 0,3 C 0,0 C 0,1 C 0,2 C 0,3 A 1,0 A 1,1 A 1,2 A 1,3 C 1,0 C 1,1 C 1,2 C 1,3 C 2,0 C 2,1 C 2,2 C 2,3 C 3,0 C 3,1 C 3,2 C 3,3

52 Optymalizacja dostępu do pamięci Faza I: wątek (0,0) wykonuje N 0,0 = A 0,0 M 0,0 = B 0,0 wątek (1,0) wykonuje N 1,0 = A 1,0 M 1,0 = B 1,0... Faza II: wątek (0,0) wykonuje N 0,0 = A 0,0+2 M 0,0 = B 0+2,0 wątek (1,0) wykonuje N 1,0 = A 1,0+2 M 1,0 = B 1+2,0... A 0,0 A 0,1 A 0,2 A 0,3 B 0,0 B 0,1 B 1,0 B 1,1 B 2,0 B 2,1 B 3,0 B 3,1 C 0,0 C 0,1 C 0,2 C 0,3 A 1,0 A 1,1 A 1,2 A 1,3 C 1,0 C 1,1 C 1,2 C 1,3 C 2,0 C 2,1 C 2,2 C 2,3 C 3,0 C 3,1 C 3,2 C 3,3

53 Optymalizacja dostępu do pamięci Wartość elementu C 0,0 jest sumą (N 0,0 M 0,0 + N 0,1 M 1,0 ) I faza + (N 0,0 M 0,0 + N 0,1 M 1,0 ) II faza Analogicznie dla pozostałych elementów Dzięki podzieleniu obliczeń na kafelki (bloki) poprawiamy lokalność odwołań Oczywiście, można stosować kafelki o rozmiarze większym od 2 2, np

54 Optymalizacja dostępu do pamięci 1 #define TILE_WIDTH 16 2 int col = get_global_id(0); 3 int row = get_global_id(1); 4 local float M[TILE_WIDTH][TILE_WIDTH]; 5 local float N[TILE_WIDTH][TILE_WIDTH]; 6 // Współrzędne wątku wew. kafelka / bloku 7 int tx = get_local_id(0); 8 int ty = get_local_id(1); 9 float sum = 0; 10 for (int m = 0; m < ceil(size / (float)tile_width); ++m) { 11 // Wspólne ładowanie macierzy do tablic pomocniczych 12 M[ty][tx] = A[row * size + m * TILE_WIDTH + tx]; 13 N[ty][tx] = = B[(m * TILE_WIDTH + ty) * size + col]; 14 barrier(clk_local_mem_fence); 15 for (int k = 0; k < TILE_WIDTH; ++k) { 16 sum += M[ty][k] * N[k][tx]; 17 } 18 barrier(clk_local_mem_fence); 19 } 20 C[row * size + col] = sum;

55 Optymalizacja dostępu do pamięci Kafelki o rozmiarach pozwalają zmniejszyć ilość odczytywanych danych 16 razy Liczba obliczeń pozostaje taka sama, czyli CGMA rośnie z 1 do 16 Przy 200GB/sek pozwala to wykonać 200GB/4B = 50Giga x 16 = 800GFLOPS

56 Optymalizacja wzorców dostępu do pamięci Wątki wewnątrz warpów wykonują jednocześnie odczyt / zapis do pamięci (SIMD) 32 wątki 32 adresy Jeżeli jeden czeka, to wszystkie czekają W zależności od adresów odczyt może być wykonany w jednej transakcji na pamięci albo wielu

57 Wzorce dostępu do pamięci globalnej Pamięć globalna wątki Łączony (ang. coalesced) dostęp do pamięci Dane odczytywane są segmentami (ang. chunk) nawet jeżeli ptrzebujemy tylko jeden element (słowo)

58 Wzorce dostępu do pamięci globalnej Pamięć globalna wątki Łączony (ang. coalesced) dostęp do pamięci Rozłączny dostęp do pamięci

59 Łączony dostęp do pamięci 1 // Przykład łączonego dostępu do pamięci 2 sum += data[ get_global_id(0) ]; 1 // Przykład niełączonego dostępu 2 sum += data[ get_global_id(0) * 4 ];

60 Wzorce dostępu do pamięci globalnej W architekturze Nvidia Fermi dostępne są dwa rodzaje odczytów: Buforowany (ang. cached) tryb domyślny: próba odczytu z L1, następnie L2, następnie pam. globalnej dane odczytywane są w 128 bajtowych porcjach (32 x 4B) wiersz pam. podręcznej Nie buforowane: próba odczytu z L2, następnie z pam. globalnej dane odczytywane są w porcjach po 32 bajty Jeden rodzaj zapisu do pam. globalnej unieważnienie L1 zapis do L2

61 Przykładowe wzorce odczytu 32 wątki odczytują kolejno 4-bajtowe słowa Adresy mieszczą się w 1 wierszu pam. podręcznej 128 bajtów przesyłanych magistralą Addresses from a warp Memory addresses

62 Przykładowe wzorce odczytu 32 wątki odczytują 4-bajtowe słowa, adresy wymieszane Adresy mieszczą się w 1 wierszu pam. podręcznej 128 bajtów przesyłanych magistralą addresses from a warp Memory addresses

63 Przykładowe wzorce odczytu 32 wątki odczytują 4-bajtowe słowa, kolejne adresy Adresy mieszczą się w 2 wierszach pam. podręcznej 256 bajtów przesyłanych magistralą (50% transferu użyteczne) addresses from a warp Memory addresses

64 Przykładowe wzorce odczytu 32 wątki odczytują to samo 4-bajtowe słowo Adres mieści się w 1 wierszu pam. podręcznej 128 bajtów przesyłanych magistralą (4/128 = 3.125% transferu użyteczne) addresses from a warp Memory addresses

65 Przykładowe wzorce odczytu 32 wątki odczytują 4 bajtowe słowa pod różnymi, rozproszonymi adresami Adresy mieszczą się w N wierszach pam. podręcznej N 128 bajtów przesyłanych magistralą z czego 128/(N 128) użyteczne addresses from a warp Memory addresses

66 Pamięć współdzielona konflikty Pamięć współdzielona podzielona jest na banki W pojedynczym cyklu można odczytać słowo z każdego banku W przypadku gdy kilka wątków próbuje odczytać dane z tego samego banku następuje konflikt żądania odczytu są szeregowane Bank 0 Bank 1 Bank 2 Bank 3 Bank 4 Bank 5 Bank 6 Bank 7 Bank 15

67 Pamięć współdzielona konflikty Thread 0 Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Thread 6 Thread 7 Bank 0 Bank 1 Bank 2 Bank 3 Bank 4 Bank 5 Bank 6 Bank 7 Thread 0 Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Thread 6 Thread 7 Bank 0 Bank 1 Bank 2 Bank 3 Bank 4 Bank 5 Bank 6 Bank 7 Thread 15 Bank 15 Thread 15 Bank 15 Jeżeli każdy wątek próbuje odczytać dane z innego banku nie ma konfliktu

68 Pamięć współdzielona konflikty Thread 0 Thread 1 Thread 2 Thread 3 Thread 4 Thread 8 Thread 9 Thread 10 Thread 11 Bank 0 Bank 1 Bank 2 Bank 3 Bank 4 Bank 5 Bank 6 Bank 7 Bank 15 Thread 0 Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Thread 6 Thread 7 Thread 15 x8 x8 Bank 0 Bank 1 Bank 2 Bank 7 Bank 8 Bank 9 Bank 15 Przykłady konfliktów 2-drożnego oraz 8-drożnego

69 Pamięć współdzielona konflikty W celu wykrycia konfliktów można skorzystać z profilera Nvidia Visual Profiler AMD CodeXL Usunięcie konfliktów wymaga zmiany kolejności operacji na pamięci współdzielonej lub umieszczenia danych w pamięci w taki sposób, by nie zachodził konflikt

Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność

Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność Mnożenie macierzy Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność Literatura: Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; 1 Mnożenie macierzy dostęp do

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1 Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1 Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 GPGPU Modele programowania GPGPU CUDA pierwszy naprawdę popularny model programowania GPGPU OpenCL wzorowany na CUDA,

Bardziej szczegółowo

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA Wprowadzenie do programowania w środowisku CUDA Środowisko CUDA 1 Budowa procesora CPU i GPU Architektura GPU wymaga większej ilości tranzystorów na przetwarzanie danych Control ALU ALU ALU ALU Cache DRAM

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście

Bardziej szczegółowo

architektura komputerów w. 6 Pamięć I

architektura komputerów w. 6 Pamięć I architektura komputerów w. 6 Pamięć I Pamięć -własności Pojemność rozmiar słowa liczba słów jednostka adresowalna jednostka transferu typ dostępu skojarzeniowy swobodny bezpośredni sekwencyjny wydajność

Bardziej szczegółowo

Accelerated Graphics Port AGP Advanced Graphics Port AGP jest magistralą równoległą.

Accelerated Graphics Port AGP Advanced Graphics Port AGP jest magistralą równoległą. AGP i PCI Express Port AGP Accelerated Graphics Port (AGP, czasem nazywany Advanced Graphics Port) zmodyfikowana magistrala PCI, zaprojektowana do obsługi kart graficznych. Jest to 32-bitowa magistrala

Bardziej szczegółowo

CUDA. cudniejsze przyk ady

CUDA. cudniejsze przyk ady CUDA cudniejsze przyk ady Agenda: CPU vs. GPU Mnożenie macierzy CPU Mnożenie macierzy - GPU Sploty Macierze CPU vs. GPU CPU: GPU: Mnożenie wykonywane w kolejnych iteracjach pętli. Przechodzimy przez pierwszy

Bardziej szczegółowo

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: Sieci komputerowe Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeo, np.

Bardziej szczegółowo

Programowanie kart graficznych

Programowanie kart graficznych CUDA Compute Unified Device Architecture Programowanie kart graficznych mgr inż. Kamil Szostek AGH, WGGIOŚ, KGIS Wykorzystano materiały z kursu Programowanie kart graficznych prostsze niż myślisz M. Makowski

Bardziej szczegółowo

Podstawowe działania w rachunku macierzowym

Podstawowe działania w rachunku macierzowym Podstawowe działania w rachunku macierzowym Marcin Detka Katedra Informatyki Stosowanej Kielce, Wrzesień 2004 1 MACIERZE 1 1 Macierze Macierz prostokątną A o wymiarach m n (m wierszy w n kolumnach) definiujemy:

Bardziej szczegółowo

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania Architektura Systemów Komputerowych Sterowanie programem skoki Przerwania 1 Sterowanie programem - skoki Kolejność wykonywania instrukcji programu jest zazwyczaj zgodna z kolejnością ich umiejscowienia

Bardziej szczegółowo

DEMERO Automation Systems

DEMERO Automation Systems Programowanie wektorowych przetwornic częstotliwości serii POSIDRIVE FDS5000 / MDS5000 i serwonapędów POSIDRIVE MDS5000 / POSIDYN SDS5000 firmy Stober Antriebstechnik Konfiguracja parametrów w programie

Bardziej szczegółowo

Programowanie Współbieżne

Programowanie Współbieżne Programowanie Współbieżne Agnieszka Łupińska 5 października 2016 Hello World! helloworld.cu: #include global void helloworld(){ int thid = (blockidx.x * blockdim.x) + threadidx.x; printf("hello

Bardziej szczegółowo

Zagadnienia transportowe

Zagadnienia transportowe Mieczysław Połoński Zakład Technologii i Organizacji Robót Inżynieryjnych Wydział Inżynierii i Kształtowania Środowiska SGGW Zagadnienia transportowe Z m punktów odprawy ma być wysłany jednorodny produkt

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych dr hab. inż. Krzysztof Patan, prof. PWSZ Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.pl Współczesny system komputerowy System

Bardziej szczegółowo

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi

Bardziej szczegółowo

Hybrydowy system obliczeniowy z akceleratorami GPU

Hybrydowy system obliczeniowy z akceleratorami GPU Przemysław Stpiczyński Hybrydowy system obliczeniowy z akceleratorami GPU [A hybrid computing system with GPU accelerators] Wstęp Konstrukcja komputerów oraz klastrów komputerowych o dużej mocy obliczeniowej

Bardziej szczegółowo

G PROGRAMMING. Part #4

G PROGRAMMING. Part #4 G PROGRAMMING Part #4 Tablice, wykresy, klastry Tablice Zbiór elementów danych tego samego typu Zastosowanie gromadzenie danych z powtarzalnych operacji odczytu, obliczeń (magazynowanie danych przebiegów

Bardziej szczegółowo

PRZETWORNIK NAPIĘCIE - CZĘSTOTLIWOŚĆ W UKŁADZIE ILORAZOWYM

PRZETWORNIK NAPIĘCIE - CZĘSTOTLIWOŚĆ W UKŁADZIE ILORAZOWYM PRZETWORNIK NAPIĘCIE - CZĘSTOTLIWOŚĆ W UKŁADZIE ILORAZOWYM dr inż. Eligiusz Pawłowski Politechnika Lubelska, Wydział Elektryczny, ul. Nadbystrzycka 38 A, 20-618 LUBLIN E-mail: elekp@elektron.pol.lublin.pl

Bardziej szczegółowo

KONKURSY MATEMATYCZNE. Treść zadań

KONKURSY MATEMATYCZNE. Treść zadań KONKURSY MATEMATYCZNE Treść zadań Wskazówka: w każdym zadaniu należy wskazać JEDNĄ dobrą odpowiedź. Zadanie 1 Wlewamy 1000 litrów wody do rurki w najwyższym punkcie systemu rurek jak na rysunku. Zakładamy,

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI URZĄDZENIA: 0101872HC8201

INSTRUKCJA OBSŁUGI URZĄDZENIA: 0101872HC8201 INSTRUKCJA OBSŁUGI URZĄDZENIA: PZ-41SLB-E PL 0101872HC8201 2 Dziękujemy za zakup urządzeń Lossnay. Aby uŝytkowanie systemu Lossnay było prawidłowe i bezpieczne, przed pierwszym uŝyciem przeczytaj niniejszą

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń (processing element): jeden wątek wykonywany

Bardziej szczegółowo

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1 Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 Projektowanie kerneli Zasady optymalizacji: należy maksymalizować liczbę wątków (w rozsądnych granicach, granice zależą

Bardziej szczegółowo

2.Prawo zachowania masy

2.Prawo zachowania masy 2.Prawo zachowania masy Zdefiniujmy najpierw pewne podstawowe pojęcia: Układ - obszar przestrzeni o określonych granicach Ośrodek ciągły - obszar przestrzeni którego rozmiary charakterystyczne są wystarczająco

Bardziej szczegółowo

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu

Bardziej szczegółowo

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu Rozdział 6 Pakowanie plecaka 6.1 Postawienie problemu Jak zauważyliśmy, szyfry oparte na rachunku macierzowym nie są przerażająco trudne do złamania. Zdecydowanie trudniejszy jest kryptosystem oparty na

Bardziej szczegółowo

Procesory kart graficznych i CUDA wer 1.2 6.05.2015

Procesory kart graficznych i CUDA wer 1.2 6.05.2015 wer 1.2 6.05.2015 Litreratura: CUDA textbook by David Kirk from NVIDIA and Prof. Wen-mei Hwu from UIUC. CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GP, J.Sanders, E.Kandrot, Helion

Bardziej szczegółowo

Sieci komputerowe cel

Sieci komputerowe cel Sieci komputerowe cel współuŝytkowanie programów i plików; współuŝytkowanie innych zasobów: drukarek, ploterów, pamięci masowych, itd. współuŝytkowanie baz danych; ograniczenie wydatków na zakup stacji

Bardziej szczegółowo

Bioinformatyka Laboratorium, 30h. Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl

Bioinformatyka Laboratorium, 30h. Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl Bioinformatyka Laboratorium, 30h Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl 1 Filogenetyka molekularna wykorzystuje informację zawartą w sekwencjach aminokwasów lub nukleotydów do kontrukcji drzew

Bardziej szczegółowo

Systemy wbudowane Mikrokontrolery

Systemy wbudowane Mikrokontrolery Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład Legenda Zezwolenie Dekoder, koder Demultiplekser, multiplekser 2 Operacja zezwolenia Przykład: zamodelować podsystem elektroniczny samochodu do sterowania urządzeniami:

Bardziej szczegółowo

DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15

DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 Wykonawcy ubiegający się o udzielenie zamówienia Dotyczy: postępowania prowadzonego w trybie przetargu nieograniczonego na Usługę druku książek, nr postępowania

Bardziej szczegółowo

STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW

STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW TYPU MINI ZIELONA GÓRA OPIS: Sterownik ST-04 przeznaczony jest do sterowania małych biologicznych oczyszczalni ścieków. Sterownik posiada 6 wejść cyfrowych,

Bardziej szczegółowo

Transformator Elektroniczny do LED 0W-40W Współpracuje z inteligentnymi ściemniaczami oświetlenia. Instrukcja. Model: TE40W-DIMM-LED-IP64

Transformator Elektroniczny do LED 0W-40W Współpracuje z inteligentnymi ściemniaczami oświetlenia. Instrukcja. Model: TE40W-DIMM-LED-IP64 Elektroniczny do LED 0W-40W Współpracuje z inteligentnymi ściemniaczami oświetlenia Instrukcja Model: TE40W-DIMM-LED-IP64 Zastosowanie: elektroniczny do LED został zaprojektowany do zasilania źródeł światła

Bardziej szczegółowo

Harmonogramowanie projektów Zarządzanie czasem

Harmonogramowanie projektów Zarządzanie czasem Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy

Bardziej szczegółowo

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31. www.hitin.

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31. www.hitin. HiTiN Sp. z o. o. 40 432 Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32) 353 41 31 www.hitin.pl Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, 1999 r. 1 1. Wstęp. Przekaźnik elektroniczny RTT-4/2

Bardziej szczegółowo

OSTRZEŻENIA DANE TECHNICZNE. Wbudowana bateria słoneczna oraz alkaliczna bateria manganowa (1,5 V LR44)

OSTRZEŻENIA DANE TECHNICZNE. Wbudowana bateria słoneczna oraz alkaliczna bateria manganowa (1,5 V LR44) KALKULATOR ELEKTRONICZNY EL-M711E INSTRUKCJA OBSŁUGI OSTRZEŻENIA Nie wolno wywierać nadmiernego nacisku na wyświetlacz ciekłokrystaliczny, ponieważ jest on wykonany ze szkła. W żadnym wypadku nie wolno

Bardziej szczegółowo

Grupa bezpieczeństwa kotła KSG / KSG mini

Grupa bezpieczeństwa kotła KSG / KSG mini Grupa bezpieczeństwa kotła KSG / KSG mini Instrukcja obsługi i montażu 77 938: Grupa bezpieczeństwa kotła KSG 77 623: Grupa bezpieczeństwa kotła KSG mini AFRISO sp. z o.o. Szałsza, ul. Kościelna 7, 42-677

Bardziej szczegółowo

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU

Bardziej szczegółowo

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Zagadnienie tematyczne (blok tematyczny): Bazy danych (Podr.cz. II, str.109-138) Podstawa programowa: Rozwiązywanie problemów

Bardziej szczegółowo

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 6, strona 1. Format JPEG

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 6, strona 1. Format JPEG mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 6, strona 1. Format JPEG Cechy formatu JPEG Schemat blokowy kompresora Transformacja koloru Obniżenie rozdzielczości chrominancji Podział na bloki

Bardziej szczegółowo

Macierze dyskowe RAID

Macierze dyskowe RAID Wrocław, 22 maja 2007 Agenda 1 Wstęp 2 Nowa koncepcja SMDA 3 Metody realizacji macierzy dyskowych 4 Podsumowanie Przyczyny powstania RAID Redundant Array of Independent Disks Przyczyny powstania: Zwiększenie

Bardziej szczegółowo

tel/fax 018 443 82 13 lub 018 443 74 19 NIP 7343246017 Regon 120493751

tel/fax 018 443 82 13 lub 018 443 74 19 NIP 7343246017 Regon 120493751 Zespół Placówek Kształcenia Zawodowego 33-300 Nowy Sącz ul. Zamenhoffa 1 tel/fax 018 443 82 13 lub 018 443 74 19 http://zpkz.nowysacz.pl e-mail biuro@ckp-ns.edu.pl NIP 7343246017 Regon 120493751 Wskazówki

Bardziej szczegółowo

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare) Instrukcja obsługi zamka bibi-z50 (zamek autonomiczny z czytnikiem identyfikatora Mifare) bibi-z50 Copyright 2014 by MicroMade All rights reserved Wszelkie prawa zastrzeżone MicroMade Gałka i Drożdż sp.

Bardziej szczegółowo

NUMER IDENTYFIKATORA:

NUMER IDENTYFIKATORA: Społeczne Liceum Ogólnokształcące z Maturą Międzynarodową im. Ingmara Bergmana IB WORLD SCHOOL 53 ul. Raszyńska, 0-06 Warszawa, tel./fax 668 54 5 www.ib.bednarska.edu.pl / e-mail: liceum.ib@rasz.edu.pl

Bardziej szczegółowo

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.

Bardziej szczegółowo

2. Charakterystyka obliczeń współbieżnych i rozproszonych.

2. Charakterystyka obliczeń współbieżnych i rozproszonych. Od autora(ooo to o mnie mowa :)): Starałem się wygrzebać w necie trochę więcej niż u Gronka na samych slajdach, dlatego odpowiedzi na niektóre pytania są długie (w sensie dłuższe niż normalnie :)), wydaje

Bardziej szczegółowo

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe. Matematyka 4/ 4.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe. I. Przypomnij sobie:. Wiadomości z poprzedniej lekcji... Że przy rozwiązywaniu zadań tekstowych wykorzystujących

Bardziej szczegółowo

NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA

NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA Kraków 31.01.2014 Dział Techniczny: ul. Pasternik 76, 31-354 Kraków tel. +48 12 379 37 90~91 fax +48 12 378 94 78 tel. kom. +48 665 001 613

Bardziej szczegółowo

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). W momencie gdy jesteś studentem lub świeżym absolwentem to znajdujesz się w dobrym momencie, aby rozpocząć planowanie swojej ścieżki

Bardziej szczegółowo

CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie. W prezentacji wykorzystano materiały firmy NVIDIA (http://www.nvidia.

CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie. W prezentacji wykorzystano materiały firmy NVIDIA (http://www.nvidia. CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie W prezentacji wykorzystano materiały firmy NVIDIA (http://www.nvidia.com) 1 Architektura karty graficznej W porównaniu z tradycyjnym

Bardziej szczegółowo

Dr inż. Andrzej Tatarek. Siłownie cieplne

Dr inż. Andrzej Tatarek. Siłownie cieplne Dr inż. Andrzej Tatarek Siłownie cieplne 1 Wykład 3 Sposoby podwyższania sprawności elektrowni 2 Zwiększenie sprawności Metody zwiększenia sprawności elektrowni: 1. podnoszenie temperatury i ciśnienia

Bardziej szczegółowo

1 Granice funkcji. Definicja 1 (Granica w sensie Cauchy ego). Mówimy, że liczba g jest granicą funkcji f(x) w punkcie x = a, co zapisujemy.

1 Granice funkcji. Definicja 1 (Granica w sensie Cauchy ego). Mówimy, że liczba g jest granicą funkcji f(x) w punkcie x = a, co zapisujemy. Granice funkcji Definicja (Granica w sensie Cauchy ego). Mówimy, że liczba g jest granicą funkcji f() w punkcie = a, co zapisujemy f() = g (.) a jeżeli dla każdego ε > 0 można wskazać taką liczbę (istnieje

Bardziej szczegółowo

SERI A 93 S E RI A 93 O FLUSH GRID WITHOUT EDGE TAB

SERI A 93 S E RI A 93 O FLUSH GRID WITHOUT EDGE TAB SERIA E93 CONIC FRINCTION CONIC 2 SERIA 93 SERIA 93 O FLUSH GRID WITHOUT EDGE TAB Podziałka Powierzchnia 30 mm Flush Grid Prześwit 47% Grubość Minimalny promień skrętu taśmy Układ napędowy Szerokość taśmy

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

Warunki Oferty PrOmOcyjnej usługi z ulgą

Warunki Oferty PrOmOcyjnej usługi z ulgą Warunki Oferty PrOmOcyjnej usługi z ulgą 1. 1. Opis Oferty 1.1. Oferta Usługi z ulgą (dalej Oferta ), dostępna będzie w okresie od 16.12.2015 r. do odwołania, jednak nie dłużej niż do dnia 31.03.2016 r.

Bardziej szczegółowo

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ Przykład aplikacji: rys. 1 rys. 2 rys. 3 rys. 4 W tym przypadku do sterowania oświetleniem wykorzystano przekaźniki fi rmy Finder: wyłącznik zmierzchowy 11.01.8.230.0000

Bardziej szczegółowo

Podejmowanie decyzji. Piotr Wachowiak

Podejmowanie decyzji. Piotr Wachowiak Podejmowanie decyzji Co to jest sytuacja decyzyjna? Jest to sytuacja, kiedy następuje odchylenie stanu istniejącego od stanu pożądanego. Rozwiązanie problemu decyzyjnego polega na odpowiedzeniu na pytanie:

Bardziej szczegółowo

Type ETO2 Controller for ice and snow melting

Type ETO2 Controller for ice and snow melting Type ETO2 Controller for ice and snow melting 57652 06/08 (BJ) English page 2 Deutsch page 14 page 26 Russian page 38 SPIS TREŚCI Wyjaśnienie pojęć.................... Strona 26 Wprowadzenie.....................

Bardziej szczegółowo

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska Zarządzanie projektami wykład 1 dr inż. Agata Klaus-Rosińska 1 DEFINICJA PROJEKTU Zbiór działań podejmowanych dla zrealizowania określonego celu i uzyskania konkretnego, wymiernego rezultatu produkt projektu

Bardziej szczegółowo

Uchwała nr 1 Nadzwyczajnego Walnego Zgromadzenia J.W. Construction Holding S.A. z siedzibą w Ząbkach z dnia 1 kwietnia 2008 roku

Uchwała nr 1 Nadzwyczajnego Walnego Zgromadzenia J.W. Construction Holding S.A. z siedzibą w Ząbkach z dnia 1 kwietnia 2008 roku Uchwała nr 1 w sprawie wyboru Przewodniczącego Działając na podstawie art. 409 1 kodeksu spółek handlowych oraz 3 ust. 2 lit. c Regulaminu Walnego Zgromadzenia oraz dokonywania wyboru członków Rady Nadzorczej,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wieczorowe Studia Licencjackie Wrocław, 4..2006 Wstęp do programowania Wykład nr 7 (w oparciu o notatki K. Lorysia, z modyfikacjami) Obliczanie współczynnika dwumianowego Newtona. Definicja. n = m n! m!(

Bardziej szczegółowo

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska Załącznik nr 1 do Lokalnej Strategii Rozwoju na lata 2008-2015 Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska Przepisy ogólne 1 1. Walne Zebranie Członków

Bardziej szczegółowo

RZECZPOSPOLITA POLSKA. Prezydent Miasta na Prawach Powiatu Zarząd Powiatu. wszystkie

RZECZPOSPOLITA POLSKA. Prezydent Miasta na Prawach Powiatu Zarząd Powiatu. wszystkie RZECZPOSPOLITA POLSKA Warszawa, dnia 11 lutego 2011 r. MINISTER FINANSÓW ST4-4820/109/2011 Prezydent Miasta na Prawach Powiatu Zarząd Powiatu wszystkie Zgodnie z art. 33 ust. 1 pkt 2 ustawy z dnia 13 listopada

Bardziej szczegółowo

FUNKCJE STEROWNIKA PK-35 PID

FUNKCJE STEROWNIKA PK-35 PID Sterownik PK-35 PID Uwaga!!! Montażu dokonuje osoba posiadająca odpowiednie uprawnienia elektryczne. UWAGA!!! FUNKCJĘ PID WYBIERAMY PO UPRZEDNIM ODPOWIEDNIM DOBRANIU WSZYSKICH PARAMETRÓW PODAJNIKA W ZALEŻNOŚCI

Bardziej szczegółowo

XIII KONKURS MATEMATYCZNY

XIII KONKURS MATEMATYCZNY XIII KONKURS MTMTYZNY L UZNIÓW SZKÓŁ POSTWOWYH organizowany przez XIII Liceum Ogólnokształcace w Szczecinie FINŁ - 19 lutego 2013 Test poniższy zawiera 25 zadań. Za poprawne rozwiązanie każdego zadania

Bardziej szczegółowo

PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH

PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH PRZEPISY KLASYFIKACJI I BUDOWY STATKÓW MORSKICH ZMIANY NR 2/2010 do CZĘŚCI VIII INSTALACJE ELEKTRYCZNE I SYSTEMY STEROWANIA 2007 GDAŃSK Zmiany Nr 2/2010 do Części VIII Instalacje elektryczne i systemy

Bardziej szczegółowo

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA Wprowadzenie do programowania w środowisku CUDA Środowisko CUDA 1 Budowa procesora CPU i GPU Architektura GPU wymaga większej ilości tranzystorów na przetwarzanie danych Control ALU ALU ALU ALU Cache DRAM

Bardziej szczegółowo

Opracowała: Karolina Król-Komarnicka, kierownik działu kadr i płac w państwowej instytucji

Opracowała: Karolina Król-Komarnicka, kierownik działu kadr i płac w państwowej instytucji OPUBLIKOWANO: 1 SIERPNIA 2013 ZAKTUALIZOWANO: 12 KWIETNIA 2016 Urlop rodzicielski aktualizacja Opracowała: Karolina Król-Komarnicka, kierownik działu kadr i płac w państwowej instytucji Ustawa z dnia 26

Bardziej szczegółowo

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl Systemy wbudowane Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie definicja, zastosowania, projektowanie systemów wbudowanych Mikrokontrolery AVR Programowanie mikrokontrolerów

Bardziej szczegółowo

ŠkodaOctavia Combi 4 4 & Superb 4 4

ŠkodaOctavia Combi 4 4 & Superb 4 4 MIĘDZYOSIOWE SPRZĘGŁO HALDEX CZWARTEJ GENERACJI Międzyosiowe sprzęgło Haldex czwartej generacji zapewnia napęd na cztery koła w nowym Superbie 4 4 oraz Octavii Combi 4 4, zastępując sprzęgło drugiej generacji.

Bardziej szczegółowo

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56 INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56 Program Liczarka 2000 służy do archiwizowania i drukowania rozliczeń z przeprowadzonych transakcji pieniężnych. INSTALACJA PROGRAMU Program instalujemy na komputerze

Bardziej szczegółowo

Szczegółowe zasady obliczania wysokości. i pobierania opłat giełdowych. (tekst jednolity)

Szczegółowe zasady obliczania wysokości. i pobierania opłat giełdowych. (tekst jednolity) Załącznik do Uchwały Nr 1226/2015 Zarządu Giełdy Papierów Wartościowych w Warszawie S.A. z dnia 3 grudnia 2015 r. Szczegółowe zasady obliczania wysokości i pobierania opłat giełdowych (tekst jednolity)

Bardziej szczegółowo

Wykład 4 Wybrane zagadnienia programowania w C++

Wykład 4 Wybrane zagadnienia programowania w C++ Wykład 4 Wybrane zagadnienia programowania w C++ Przykład programu obiektowego Dziedziczenie polimorfizm i metody wirtualne Wzorce (szablony) funkcji Wzorce klas 2016-01-03 Bazy danych-1 W4 1 Dziedziczenie

Bardziej szczegółowo

Uniwersytet Warszawski Teoria gier dr Olga Kiuila LEKCJA 5

Uniwersytet Warszawski Teoria gier dr Olga Kiuila LEKCJA 5 Ad przykład: Stonoga LEKCJA 5 SPNE: każdy gracz zaakceptuje propozycje przyjęcia dowolnej sumy w każdym okresie (czyli każdy gracz wierze, że rywal skończy grę w następnym kroku) Interpretacja gry Stonoga:

Bardziej szczegółowo

enova Workflow Obieg faktury kosztowej

enova Workflow Obieg faktury kosztowej enova Workflow Obieg faktury kosztowej Spis treści 1. Wykorzystanie procesu... 3 1.1 Wprowadzenie dokumentu... 3 1.2 Weryfikacja merytoryczna dokumentu... 5 1.3 Przydzielenie zadań wybranym operatorom...

Bardziej szczegółowo

C5 - D4EB0FP0 - Informacje ogólne : Poduszki powietrzne INFORMACJE OGÓLNE : PODUSZKI POWIETRZNE

C5 - D4EB0FP0 - Informacje ogólne : Poduszki powietrzne INFORMACJE OGÓLNE : PODUSZKI POWIETRZNE Strona 1 z 7 INFORMACJE OGÓLNE : PODUSZKI POWIETRZNE 1. Przedmowa Poduszka powietrzna niezależnie, czy czołowa, czy boczna, jest elementem wyposażenia, który uzupełnia ochronę jaką zapewnia pas bezpieczeństwa.

Bardziej szczegółowo

I. LOGICZNE STRUKTURY DRZEWIASTE

I. LOGICZNE STRUKTURY DRZEWIASTE I LOGICZNE STRUKTURY DRZEWIASTE Analizując dany problem uzyskuje się zadanie projektowe w postaci pewnego zbioru danych Metoda morfologiczna, która została opracowana w latach 1938-1948 przez amerykańskiego

Bardziej szczegółowo

Matematyka:Matematyka I - ćwiczenia/granice funkcji

Matematyka:Matematyka I - ćwiczenia/granice funkcji Matematyka:Matematyka I - ćwiczenia/granice funkcji 1 Matematyka:Matematyka I - ćwiczenia/granice funkcji Granice funkcji Zadanie 1 Wykorzystując definicję Heinego granicy funkcji, znaleźć (1) Zadanie

Bardziej szczegółowo

SCHEMAT ZBIORNIKA HYDROFOROWEGO ZE STALI NIERDZEWNEJ

SCHEMAT ZBIORNIKA HYDROFOROWEGO ZE STALI NIERDZEWNEJ Stosowanie pomp i hydroforów do czystej wody oraz pomp do wody brudnej może być niezastąpionym rozwiązaniem w przypadku braku instalacji wodociągowej i kanalizacyjnej. Do domków letniskowych lub szklarni

Bardziej szczegółowo

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007 GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Rejestr Cen i Wartości Nieruchomości

Bardziej szczegółowo

Mikrokontrolery AVR. Konfigurowanie mikrokontrolera ATMEGA16

Mikrokontrolery AVR. Konfigurowanie mikrokontrolera ATMEGA16 Mikrokontrolery AVR Konfigurowanie mikrokontrolera ATMEGA16 Białystok, 2004 W mikrokontrolerach AVR obok bitów zabezpieczających istnieją bity konfiguracyjne (ang. Fuse). Bite te konfigurują wybrane zespoły

Bardziej szczegółowo

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin 2015-10-16

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin 2015-10-16 Chmura obliczeniowa do przechowywania plików online Anna Walkowiak CEN Koszalin 2015-10-16 1 Chmura, czyli co? Chmura obliczeniowa (cloud computing) to usługa przechowywania i wykorzystywania danych, do

Bardziej szczegółowo

Programowanie CUDA informacje praktycznie i. Wersja

Programowanie CUDA informacje praktycznie i. Wersja Programowanie CUDA informacje praktycznie i przykłady Wersja 16.12.2013 Podstawowe operacje na GPU cudasetdevice() Określenie GPU i ustanowienie kontekstu (analog w GPU tego czym jest proces dla CPU) dla

Bardziej szczegółowo

TEST WIADOMOŚCI: Równania i układy równań

TEST WIADOMOŚCI: Równania i układy równań Poziom nauczania: Gimnazjum, klasa II Przedmiot: Matematyka Dział: Równania i układy równań Czas trwania: 45 minut Wykonała: Joanna Klimeczko TEST WIADOMOŚCI: Równania i układy równań Liczba punktów za

Bardziej szczegółowo

Instrukcja. sporządzania rocznych sprawozdań Rb-WSa i Rb-WSb o wydatkach strukturalnych

Instrukcja. sporządzania rocznych sprawozdań Rb-WSa i Rb-WSb o wydatkach strukturalnych Załącznik nr 40 Instrukcja sporządzania rocznych sprawozdań Rb-WSa i Rb-WSb o wydatkach strukturalnych 1. 1. Jednostka sporządza sprawozdanie z wydatków strukturalnych poniesionych z krajowych środków

Bardziej szczegółowo

1. Od kiedy i gdzie należy złożyć wniosek?

1. Od kiedy i gdzie należy złożyć wniosek? 1. Od kiedy i gdzie należy złożyć wniosek? Wniosek o ustalenie prawa do świadczenia wychowawczego będzie można składać w Miejskim Ośrodku Pomocy Społecznej w Puławach. Wnioski będą przyjmowane od dnia

Bardziej szczegółowo

Dobór nastaw PID regulatorów LB-760A i LB-762

Dobór nastaw PID regulatorów LB-760A i LB-762 1 z 5 Dobór nastaw PID regulatorów LB-760A i LB-762 Strojenie regulatorów LB-760A i LB-762 Nastawy regulatora PID Regulatory PID (rolnicze np.: LB-760A - poczynając od wersji 7.1 programu ładowalnego,

Bardziej szczegółowo

WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof Staryk

WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof Staryk Sygn. akt II UK 27/15 WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ Sąd Najwyższy w składzie: Dnia 3 lutego 2016 r. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof

Bardziej szczegółowo

Programator pamięci EEPROM

Programator pamięci EEPROM Programator pamięci EEPROM Model M- do Dydaktycznego Systemu Mikroprocesorowego DSM-5 Instrukcja uŝytkowania Copyright 007 by MicroMade All rights reserved Wszelkie prawa zastrzeŝone MicroMade Gałka i

Bardziej szczegółowo

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademickie Centrum Informatyki PS. Wydział Informatyki PS Akademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne ROUTING Krzysztof Bogusławski tel. 4 333 950 kbogu@man.szczecin.pl 1. Wstęp 2. Tablica

Bardziej szczegółowo

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25

Bardziej szczegółowo

ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych

ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych PRZYKŁADOWY ARKUSZ EGZAMINACYJNY POZIOM PODSTAWOWY ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych Numer zadania 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 Odpowiedź A B B C C D C B B C

Bardziej szczegółowo

Niezależnie od rodzaju materiału dźwiękowego ocenie podlegały następujące elementy pracy egzaminacyjnej:

Niezależnie od rodzaju materiału dźwiękowego ocenie podlegały następujące elementy pracy egzaminacyjnej: W czasie przeprowadzonego w czerwcu 2012 roku etapu praktycznego egzaminu potwierdzającego kwalifikacje zawodowe w zawodzie asystent operatora dźwięku zastosowano sześć zadań. Rozwiązanie każdego z zadań

Bardziej szczegółowo