Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1



Podobne dokumenty
Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

i3: internet - infrastruktury - innowacje

Programowanie procesorów graficznych GPGPU

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Moc płynąca z kart graficznych

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Praca dyplomowa magisterska

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Nowinki technologiczne procesorów

Obliczenia Wysokiej Wydajności

Przetwarzanie Równoległe i Rozproszone

Nowinki technologiczne procesorów

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Architektura mikroprocesorów TEO 2009/2010

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Programowanie aplikacji równoległych i rozproszonych

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

MESco. Testy skalowalności obliczeń mechanicznych w oparciu o licencje HPC oraz kartę GPU nvidia Tesla c2075. Stanisław Wowra

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Programowanie kart graficznych

Nowinkach technologicznych procesorów

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

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI

Budowa Mikrokomputera

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Nowoczesne technologie przetwarzania informacji

Julia 4D - raytracing

Architektura komputerów

Redukcja czasu wykonania algorytmu Cannego dzięki zastosowaniu połączenia OpenMP z technologią NVIDIA CUDA

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Programowanie współbieżne Wprowadzenie do programowania GPU. Rafał Skinderowicz

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Wyniki testów PassMark

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Architektura von Neumanna

XIV International PhD Workshop OWD 2012, October 2012 NOWOCZESNE TECHNIKI WYKONYWANIA ZAAWANSOWANYCH OBLICZEŃ NUMERYCZNYCH

Kryptografia na procesorach wielordzeniowych

Załącznik nr 6 do SIWZ nr postępowania II MJ Zaoferowany. sprzęt L P. Parametry techniczne

Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera

Programowanie Współbieżne

Raport Hurtownie Danych

Laptop Kruger&Matz EXPOLRE PRO 1511

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

Podstawy Informatyki Systemy sterowane przepływem argumentów

Obliczenia Wysokiej Wydajności

Transformacja Fouriera i biblioteka CUFFT 3.0

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

2 099,00 PLN OPIS PRZEDMIOTU AMIGO CORE I7 8X3,7GHZ 8GB 1TB USB3.0 WIN amigopc.pl CENA: CZAS WYSYŁKI: 24H

Algorytmy dla maszyny PRAM

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Welcome to the waitless world. Inteligentna infrastruktura systemów Power S812LC i S822LC

System obliczeniowy laboratorium oraz. mnożenia macierzy

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wykład 2. Mikrokontrolery z rdzeniami ARM

I N S T Y T U T I N F O R M A T Y K I S T O S O W A N E J 2016

INŻYNIERIA OPROGRAMOWANIA

Programowanie kart graficznych

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Tesla. Architektura Fermi

dr inż. Jarosław Forenc

INŻYNIERIA OPROGRAMOWANIA

Artur Janus GNIAZDA PROCESORÓW INTEL

4 NVIDIA CUDA jako znakomita platforma do zrównoleglenia obliczeń

dr inż. Jarosław Forenc

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

XIII International PhD Workshop OWD 2011, October 2011 REALIZACJA OBLICZEŃ W ARCHITEKTURZE MASOWO RÓWNOLEGŁEJ W HETEROGENICZNYCH SYSTEMACH

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Mikroprocesory rodziny INTEL 80x86

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Architektura komputerów

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

NOWE TRENDY ROZWOJU MIKROPROCESORÓW

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Zdjęcia i opis stanowisk laboratoryjnych wykorzystywanych w ramach projektu

Materiały dodatkowe do podręcznika Urządzenia techniki komputerowej do rozdziału 5. Płyta główna i jej składniki. Test nr 5

Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc

Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny**

Bajt (Byte) - najmniejsza adresowalna jednostka informacji pamięci komputerowej, z bitów. Oznaczana jest literą B.

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Komputer VIPER i x4,2ghz 8GB GTX 1050TI 4GB 1TB USB 3.0

Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Procesory. Schemat budowy procesora

Transkrypt:

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Organizacja przedmiotu Dr inż. Robert Banasiak Dr inż. Paweł Kapusta 1

2

Nasze kompetencje R n D Tomografia 3D To nie tylko statyczny obraz! 3

Wybór technologii Czy będzie prosty?? 4

Wykład - CUDA Typowy kurs oparty na (najlepszych we wszechświecie) materiałach szkoleniowych NVidii 5

Wykład - OpenCL Typowy kurs oparty na (najlepszych we wszechświecie) materiałach szkoleniowych NVidii 6

Lab-y (C/O) Zadanie. 1. Mnożenie dużych macierzy (10 różnych rozmiarów oraz danych wygenerowanych losowo, dostosowanych do ilości pamięci RAM CPU i GPU). Rozliczenie: raport elektroniczny z wykresami i komentarzem! : porównanie szybkości działania GPU (conajmniej 3 różne) vs CPU (taki jaki macie w swoich komputerach) w skali rozmiaru macierzy - wyznaczenie przyrostu szybkości, wyznaczenie udziału czasu komunikacji z pamięcią GPU w czasie obliczeń, sprawdzenie poprawności danych pomiędzy CPU i GPU dla typu float (odchylenie standardowe!!). NA OCENĘ 3! (C+O) Zadanie. 2. Implementacja algorytmu transpozycji macierzy, przynajmniej 3 metodami, optymalizacja kodu CUDA i OpenCL - wyznaczenie przyrostu szybkości: CPU vs CUDA vs OpenCL vs CUDA Optimized NA OCENĘ 4! (C/O) Zadanie 3. Implementacja wybranego przez siebie algorytmu do wykrywania krawędzi - Edge Detection (np. Reverse ED) w wybranym przez siebie statycznym obrazie UltraHD 4K (2160p, YT, np. film Transformers: Age of Extinction) przekonwertowanym do skali szarości, porównanie szybkości CPU vs. GPU, wynik porównania w tabelce na ekranie monitora, prezentacja wykrycia krawędzi na ekranie. NA OCENĘ 5! 7

Rozliczenie przedmiotu Zaliczenie lab-ów: Zadanie 1 na ocenę 3 wraz z wymaganym raportem. Zadanie 2 wraz z porównaniemi na ocenę 4 Zadanie 3 wraz z porównaniem na ocenę 5 ;) Zaliczenie wykładu: Ocena będzie przepisana z lab-ów. Nie przewiduję specjalnego kolokwium. Obecność na lab-ach OBOWIĄZKOWA!. Możliwe dwie nieobecności nieusprawiedliwione. Pozostałe nieobecności wymagają zwolnienia lekarskiego. 8

1024 kurczaki czy 2 woły? D.Cray 9

Jak uzyskać wydajność? Mamy coraz więcej tranzystorów, co z tego? Jak możemy uzyskać większą wydajność Zwiększamy szybkość procesora MHz -> GHz w ostatnie 30 lat Moc skaluje się z częstotliwością Ilość pamięci musi nadążąć Równoległe wykonanie procedur Współbieżność, wielowątkowość 10

Prawo Moor a Przetwarzanie szeregowe osiągnęło już swoje granice Procesory muszą zacząć stawać się szersze a nie szybsze Zadanie: myślenie równoległe! 11

Prawo Moor a 12

Jak uzyskać wydajność? 13

14

Myślenie równoległe - Top 500 http://www.olcf.ornl.gov/titan/ http://www.top500.org/list/2014/11/ 15

Pytania? 16

Zapraszam za tydzień ;) 17

Architektura GPU vs CPU 18 Źródło: AMD Corp.

Architektura CPU vs GPU GPU poświęca znacznie więcej tranzystorów na proces przetwarzania danych CPU potrafi realizować złożone zadania 19

Architektura GPU vs CPU Intel 8008 3,500 1972 Intel 10 µm 14 mm² Intel 80386 275,000 1985 Intel 1.5 µm 104 mm² Pentium 3,100,000 1993 Intel 0.8 µm 294 mm² Pentium 4 Willamette 42,000,000 2000 Intel 180 nm 217 mm² Core 2 Duo Conroe 291,000,000 2006 Intel 65 nm 143 mm² Core i7 (Quad) 731,000,000 2008 Intel 45 nm 263 mm² Six-Core Core i7 (Gulftown) 10-Core Xeon Westmere-EX 1,170,000,000 2010 Intel 32 nm 240 mm² 2,600,000,000 2011 Intel 32 nm 512 mm² 62-Core Xeon Phi 5,000,000,000 2012 Intel 22 nm Xbox One Main SoC 5,000,000,000 2013 Microsoft/AMD 28 nm 363 mm² NV10 17,500,000 1999 NVIDIA 220 nm 111 mm² NV40 222,000,000 2004 NVIDIA 130 nm 305 mm² GT200 Tesla 1,400,000,000 [22] 2008 NVIDIA 65 nm 576 mm² Cypress RV870 2,154,000,000 [23] 2009 AMD 40 nm 334 mm² GF100 Fermi 3,200,000,000 [24] Mar 2010 NVIDIA 40 nm 526 mm² GK110 Kepler 7,080,000,000 [27] 2012 NVIDIA 28 nm 561 mm² 20

Architektura GPU vs CPU 21 GPU jest specjalnie zaprojektowany do realizacji wysoko-równoległych zadań

Architektura GPU vs CPU Rdzenie? 3 miliardy tranzystorów 512 rdzeni CUDA (32 rdzenie w 16 multiprocesorach) 64kB pamięci wbudowanej Wysoka przepustowość wewnętrzna 22 Nvidia GTX 580

Architektura GPU vs CPU Pojedynczy rdzeń GPU jest procesorem strumieniowym Rdzenie GPU są grupowane w multiprocesory strumieniowe SM SM jest procesorem typu SIMD (Single Instruction Multiple Data) 23

Myślenie równoległe 1024 kurczaki? Są lepsze rozwiązania.. Przemyśl swoje algorytmy tak by były bardziej przyjazne architekturom wysoko-równoległym (masoworównoległym) Masowo-równoległy? Znaczy: Równoległość danych Równoważenie obciążenia Proste obliczenia Szybki dostęp do danych Unikanie konfliktów dostępu do danych Itd., itp 24 Sporo tego, prawda?

CUDA & OpenCL CUDA (ang. Compute Unified Device Architecture) OpenCL (ang. Open Computing Language) 25

Fakty i mity CUDA i OpenCL są środowiskami programowania kart graficznych, zorienrowanymi na zrównoleglanie obliczeń ogólnego przeznaczenia. CUDA jest własną architekturą programowania procesorów graficznych firmy Nvidia i wspieraną jedynie przez karty tej firmy. Integruje w sobie język programowania oparty na języku C. OpenCL został zaprojektowany początkowo przez firmę Apple, a później przejęty przez The Khronos Group, i uczyniony standardem otwartym. 26

Fakty i mity OpenCL jest otwartym standardem działającym na sprzęcie (procesorach graficznych i nie tylko) różnych producentów chyba jedyna obecnie przewaga OpenCL. OpenCL jest w stanie realizować obliecznia na głównym procesorze, w przypadku gdy procesor graficznych nie jest dostępny. Mówi się, że technologia CUDA jest bardziej dojrzała niż OpenCL, jej API jest wyżej poziomowe i bardziej zaawansowane, co oczywiście jest dziś prawdą, ale nie musi być w przyszłości. 27

Fakty i mity Zarówno CUDA and OpenCL są wspierane przez niemal wszystkie dostępne na rynku standardy systemów operacyjnych (Windows, Linux, and MacOS). Chodzi po świecie plotka, że wewnętrzne procedury OpenCL są po prostu techniką kopiujwklej przenoszone z technologii CUDA. Lecz CUDA wykonuje je szybcie z racji dostępu do natywnych dla Nvidia procesorów graficznych. OpenCL, jako standard otwarty (jedynie??) wydaje się mieć przed sobą bardziej świetlaną przyszłość. 28

Fakty i mity co Pogromcy Mitów na to? 29