Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny**
|
|
- Henryka Zalewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 AUTOMATYKA 2011 Tom 15 Zeszyt 3 Magdalena Szymczyk*, Piotr Szymczyk* Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny** 1. Wprowadzenie Aplikacje stosowane do przetwarzania obrazu i sygna³u wideo oraz grafiki staj¹ siê du ym i coraz wa niejszym obszarem zastosowañ wspó³czesnych komputerów. Wspó³czesne mikroprocesory ogólnego zastosowania (CPU Central Processing Unit) nie spe³niaj¹ jednak wysokich wymagañ wydajnoœciowych zwi¹zanych z tego typu aplikacjami. W odró nieniu od CPU specjalizowane procesory dostarczaj¹ jednak e odpowiedni¹ elastycznoœæ i programowalnoœæ niezbêdn¹ do zaimplementowania odpowiednich architektur oraz modeli programistycznych spe³niaj¹cych ich wymagania. Jednym z mo liwych rozwi¹zañ jest zastosowanie nowoczesnych kart graficznych GPU (Graphics Processing Unit). Celem artyku³u jest ogólne przedstawienie architektury GPU, zapoznanie ze sposobem implementacji aplikacji na tego typu procesorach oraz analiza mo liwoœci wykorzystania ich do tworzenia efektywnych aplikacji zwi¹zanych z przetwarzaniem obrazów. 2. CPU kontra GPU Czêstotliwoœæ pracy CPU jest obecnie ograniczana poprzez w³asnoœci fizyczne materia³ów, z których zosta³ wykonany, a tak e przez wysoki stopieñ zu ycia energii. W g³ównej mierze coraz to lepsze wydajnoœci tego typu procesorów uzyskuje siê dziêki stosowaniu coraz to wiêkszej liczby rdzeni, przy czym nale y pamiêtaæ, e s¹ to procesory ukierunkowane na wykonywanie aplikacji najczêœciej stosowanych przez zwyk³ych u ytkowników (typu edytory tekstu, przeszukiwarki internetowe itp.). Zastosowanie wielu rdzeni w CPU daje mo liwoœæ wykonywania procesów równolegle na podstawie modelu przetwarzania równoleg³ego typu MIMD (Multiple Instructions/Multiple Data) wed³ug taksonomii Flynna. * AGH Akademia Górniczo-Hutnicza, Wydzia³ Elektrotechniki, Automatyki, Informatyki i Elektroniki, Katedra Automatyki, al. A. Mickiewicza 30, Kraków ** Projekt z Ministerstwa Nauki i Szkolnictwa Wy szego nr 0128/R/t00/2010/12 271
2 272 Magdalena Szymczyk, Piotr Szymczyk Zatem ka dy z rdzeni pracuje niezale nie od pozosta³ych, wykonuj¹c ró ne instrukcje dla ró nych procesów. Cech¹ charakterystyczn¹ pamiêci w procesorach ogólnego przeznaczenia jest swobodny dostêp do niej. CPU jest tak zaprojektowane, e wykonuje na swych rdzeniach pojedynczy w¹tek z³o ony z pojedynczych instrukcji maksymalnie szybko, natomiast GPU jest tak opracowane, aby wykonywaæ szybko wiele równoleg³ych w¹tków. Oczywiœcie projektanci CPU staraj¹ siê spe³niæ tak e wymaganie wykonywania wielu instrukcji równolegle, maksymalizuj¹c efektywnoœæ przy u yciu superskalarnego wykonywania instrukcji, a tak e korzystaj¹c z wykonywania instrukcji typu out-of-order. Jednak e wykonywanie równoleg³e w¹tków instrukcji na CPU ma pewne podstawowe ograniczenia i zwiêkszanie liczby elementów wykonawczych nie daje proporcjonalnego wzrostu wydajnoœci procesora. Uk³ady NVIDIA czy AMD (g³ówni producenci kart graficznych) zbudowane s¹ przy u yciu architektury multiprocesorowej o 8 10 rdzeniach i setkach ALU, tysi¹cach rejestrów i pamiêciach wspó³dzielonych [12]. Ka da karta graficzna ma bardzo szybk¹ pamiêæ globaln¹, która jest dostêpna dla wszystkich multiprocesorów, pamiêæ lokaln¹ dla ka dego multiprocesora oraz specjalne pamiêci dla sta³ych. GPU jest ukierunkowana na wykonywanie instrukcji równolegle. Na pocz¹tek otrzymuje ona zbiory wielok¹tów, które nastêpnie poddawane s¹ wielu transformacjom i niezbêdnym operacjom w celu uzyskania z kolei zbioru pikseli. Operacje na wielok¹tach i pikselach wykonywane s¹ równolegle i niezale nie. Z powodu równoleg³ej organizacji architektury GPU dane do uk³adów wykonawczych s¹ dostarczane z tak¹ sam¹ ³atwoœci¹ jak dla pojedynczego w¹tku dla CPU. Szczególnie widoczne s¹ ró nice w dostêpie do pamiêci pomiêdzy tymi uk³adami. Wynika to z charakteru danych, na których zazwyczaj pracuje GPU. Teksele tekstury nie s¹ potrzebne pojedynczo, stanowi¹ one pewn¹ zwart¹ ca³oœæ, zazwyczaj powierzchniê, zatem na pewno zostan¹ w najbli szej przysz³oœci pobrane teksele bêd¹ce w s¹siedztwie pierwszego. Ta sama zasada dotyczy pikseli przy zapisie do pamiêci, gdy do bufora ramki zostanie wpisany jeden, to na pewno po pewnej liczbie cykli do niej zostan¹ wpisane piksele s¹siednie. GPU w odró nieniu od CPU nie potrzebuj¹ du ych pamiêci typu cache. Wiele procesorów typu CPU nie ma wbudowanych sterowników pamiêci, a GPU maj¹ wiele takich uk³adów. Karty graficzne u ywaj¹ du o szybszych pamiêci (charakteryzuj¹cych siê du ¹ przepustowoœci¹) w celu sprawnego dostarczenia ogromnych strumieni danych, co jest niezwykle istotne z punktu widzenia przetwarzania równoleg³ego. Procesory ogólnego przeznaczenia w du ej mierze wykorzystuj¹ swój obszar matrycy z tranzystorami do realizacji buforów instrukcji, sprzêtowego przewidywania rozga³êzieñ czy te ogromnych rozmiarów pamiêci cache. Takie rozwi¹zania s¹ potrzebne do przyspieszenia wykonywania kilku strumieni instrukcji. W przypadku GPU jest inaczej, tranzystory s¹ wykorzystywane do budowy tablic uk³adów wykonawczych, ekspedytorów instrukcji, ma³ych pamiêci dzielonych i sterowników pamiêci dla wielu kana³ów. Te rozwi¹zania nie powoduj¹ przyspieszenia wykonania poszczególnych strumieni instrukcji, daj¹ natomiast mo liwoœæ przetwarzania setek tysiêcy w¹tków równolegle przy wymaganiu wysokiej przepustowoœci pamiêci. Szczególnym aspektem odró niaj¹cym CPU od GPU jest sposób wykonywania operacji wielow¹tkowych.
3 Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny 273 Specyfika pracy GPU wynika w g³ównej mierze z budowy pamiêci typu cache. Ró nice projektowe pomiêdzy budow¹ CPU a GPU pokazano na rysunku 1. W CPU zadaniem tej pamiêci jest ukrycie d³ugich czasów dostêpów do danych, w przypadku karty graficznej cache oraz pamiêæ wspó³dzielona u ywana jest do zwiêkszenia przepustowoœci pamiêci. Gdy GPU czeka na dane dla konkretnego w¹tku, wykonuje on wówczas inny w¹tek bez opóÿnieñ. Jest to mo liwe, gdy w uk³adach tych w odró nieniu od CPU, koszt prze³¹czenia siê na inny w¹tek to mniej ni jeden cykl, a w procesorach ogólnego przeznaczenia setki cykli zegarowych. Ogólnie rzecz ujmuj¹c, nowoczesne CPU pracuj¹, opieraj¹c siê na architekturze równoleg³ej typu SIMD (Single Instruction Multiple Data) na jednostkach wektorowych wykorzystywanych do obs³ugi instrukcji typu SSE2 i SSE3, natomiast GPU na architekturze SIMT (Single Instruction Multiple Threads) do przetwarzania skalarnych w¹tków. Karty graficznie s¹ wykorzystywane w obliczeniach równoleg³ych, które s¹ przeprowadzane na ogromnych zbiorach danych i na tych danych wykonywane s¹ te same matematyczne operacje. Najlepsze wyniki s¹ otrzymywane przy wysokiej wartoœci ilorazu liczby operacji arytmetycznych do liczby odwo³añ do pamiêci. Istotnym aspektem tego typu aplikacji jest tak e ma³a liczba instrukcji rozga³êziaj¹cych. Cechy aplikacji na GPU powoduj¹, e zanika potrzeba stosowania rozbudowanych pamiêci typu cache. Rys. 1. Ró nice projektowe pomiêdzy budow¹ CPU a GPU [12]
4 274 Magdalena Szymczyk, Piotr Szymczyk 3. Wykorzystanie GPU do obliczeñ równoleg³ych Mikroprocesory oparte na jednej jednostce centralnej, których przyk³adami mog¹ byæ Operon firmy AMD czy te Pentium Intela, charakteryzuj¹ siê wysokim przyrostem wydajnoœci wraz ze znacznym zmniejszeniem kosztów produkcji w ostatnich dwóch dekadach. Jednak e od 2003 roku mo na zauwa yæ wyraÿny spadek wydajnoœci, ze wzglêdu na du e zapotrzebowanie na energiê zasilania oraz du e straty spowodowane wydzielaniem energii cieplnej. Ma to wp³yw na czêstotliwoœæ pracy procesora, jej przyrost jest ograniczany tymi zjawiskami. W celu ratowania sytuacji producenci procesorów przerzucili siê na produkcjê uk³adów zawieraj¹cych wiele procesorów, tzw. rdzeni, w celu zapewnienia wzrostu mocy przetwarzania aplikacji. Ta operacja mia³a ogromny wp³yw na œrodowisko projektantów oprogramowania. Dotychczas aplikacje w wiêkszoœci pisane by³y na architekturê von Neumanna, w której programy realizowane s¹ krok po kroku sekwencyjnie. Je eli taki sekwencyjny program zostanie uruchomiony na jednym z rdzeni, to jego czas wykonania nie skróci siê ju znacznie, jeœli nie zostan¹ wprowadzone pewne innowacje technologiczne. Sposobem na zwiêkszenie wydajnoœci jest zastosowanie programowania równoleg³ego w nowych generacjach mikroprocesorów. Programowanie równoleg³e nie jest pojêciem nowym. By³o i jest ono stosowane przez dziesiêciolecia w oprogramowaniu komputerów drogich i o du ej skali. Jednak e tylko pewna czêœæ programistów potrafi pisaæ tego typu aplikacje. Z pojawieniem siê procesorów nowego typu programiœci musz¹ podj¹æ siê nowego wyzwania opracowywania nowych równoleg³ych aplikacji na nowe procesory. Od 2003 rozwój mikroprocesorów podzieli³ siê na dwie linie, jedn¹ z nich jest linia procesorów wielordzeniowych (multicore), pocz¹wszy od dwurdzeniowych, aktualnie na czterech skoñczywszy. Drug¹ jest linia many-core, która szczególnie ukierunkowana jest na przepustowoœæ wykonania aplikacji równoleg³ych. Procesory te maj¹ du ¹ liczbê rdzeni, przy czym ich liczba podwaja siê ka dego roku. Przyk³adem mo e byæ karta graficzna Ge- Force GTX 280 NVIDIA z 240 rdzeniami. GPU w porównaniu z CPU wykazuj¹ od 2003 sta³y, du o wiêkszy wzrost wydajnoœci w wykonywaniu operacji zmiennoprzecinkowych, osi¹gaj¹c w 2009 wartoœæ 10 do 1, na rysunku 2 mo na zauwa yæ tê tendencjê. G³ównym zadaniem kart graficznych jest ich wykorzystanie do celów renderyzacji grafiki 3D, ale ju bardzo wczeœnie próbowano wykorzystaæ je do innych typów aplikacji. Pocz¹tki by³y trudne i wymaga³y od programistów doskona³ej znajomoœci architektury GPU, znajomoœci problematyki grafiki 3D, co w znacznym stopniu ogranicza³o wykorzystanie tych kart. Wraz z rozwojem i udoskonalaniem potoku renderyzacji realizowanym na kartach graficznych mo liwe stawa³o siê tworzenie coraz to bardziej zaawansowanych aplikacji z dziedziny przetwarzania obrazów czy te systemów wizyjnych jak wykrywanie krawêdzi, okreœlanie podobieñstwa obrazów, detekcja cech obrazu, filtrowanie, a tak e tworzenie obrazów panoramicznych. Pierwszym doœæ popularnym kompilatorem do celów GPGPU by³ BrookGPU [8] przystosowany do tworzenia aplikacji niegraficznych na GPU. Z grupy projektantów tego
5 Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny 275 oprogramowania wydzieli³y siê osoby, które przy³¹czy³y siê do NVIDIA w celu tworzenia zintegrowanej architektury daj¹cej mo liwoœæ programowania równoleg³ego na GPU osobom nieznaj¹cym graficznego API. Tak pojawi³a siê technologia CUDA (Computed Unified Device Architecture). Rys. 2. Porównanie wydajnoœci przetwarzania operacji zmiennoprzecinkowych przez procesory CPU i GPU [12] 4. Ogólne spojrzenie na architekturê NVIDIA CUDA NVIDIA projektuj¹c now¹ generacjê kart graficznych opartych na DirectX 10, zapocz¹tkowa³a mo liwoœæ wykorzystania GPU przez programistów w podobny sposób jak standardowe procesory ogólnego przeznaczenia. U ytkownicy mog¹ od tej pory deklarowaæ równoleg³oœæ danych w swoich aplikacjach. Procesory NVIDIA mo na traktowaæ jako wysoko wydajne procesory przetwarzaj¹ce dane zmiennoprzecinkowe jak i ca³kowite w równoleg³y sposób dla wspomagania logicznego potoku graficznego. Linia Tesla GPU, rozpoczynaj¹ca siê od GeForce 8800GTX poprzez póÿniejsze G92 i GT200 zosta³a wzbogacona w porównaniu ze swoimi poprzednikami o procesory cieniuj¹ce (shader), które sta³y siê w pe³ni programowalne z du ¹ pamiêci¹ dla instrukcji, cachem dla nich oraz logicznym uk³adem przetwarzania rozga³êzieñ. Dodatkowo wzbogacono zbiór instrukcji o instrukcje dostêpu swobodnego do pamiêci (zapis i odczyt), aby upodobniæ styl programowania do jêzyka C. Aplikacje niegraficzne dosta³y mo liwoœæ wykorzystania bardziej ogólnego modelu programowania opartego na w¹tkach, barierach synchronizacji i operacjach atomowych w celu wykonywania i zarz¹dzania wysoko równoleg³ymi programami.
6 276 Magdalena Szymczyk, Piotr Szymczyk Kompilator CUDA C/C++, biblioteki oraz oprogramowanie do uruchamiania zosta³ zaprojektowany w celu prostego dostêpu przez programistów do potencja³u oferowanego przez architekturê Tesla. Programy uruchamiane na nowoczesnych GPU, zarówno te graficzne jak i aplikacje CUDA, korzystaj¹ z mo liwoœci wykorzystania masowej, drobnoziarnistej równoleg³oœci opartej na danych, przy czym jest to oprogramowanie transparentne i skalowalne. Na rysunku 3 pokazano nowoczesn¹ kartê graficzn¹ GPU realizuj¹c¹ architekturê CUDA. Rys. 3. Architektura nowoczesnej karty graficznej GPU realizuj¹cej architekturê CUDA [12] Model programowania CUDA zbudowany jest z hosta, który zazwyczaj jest jednostk¹ CPU (wykonuj¹c¹ program szeregowo lub równolegle, ale w stopniu doœæ ograniczonym) i wielu urz¹dzeñ (devices) zbudowanych z masowo-równoleg³ych procesorów wyposa onych w du ¹ liczbê arytmetycznych jednostek wykonawczych. Kod programu (a w³aœciwie zbiór funkcji opartych na równoleg³oœci danych) uruchamiany jest na GPU i oznaczony poprzez s³owo kluczowe kernel. Funkcje kernel uruchamiaj¹ ogromn¹ liczbê w¹tków w celu wykorzystania równoleg³oœci danych. Wa n¹ informacj¹ jest to, e w¹tki te ró ni¹ siê od w¹tków uruchamianych na CPU, s¹ one l ejszego typu (prze³adowanie takiego w¹tku trwa kilka cykli pracy procesora w odró nieniu od tysiêcy cykli dla procesora CPU). Wykonanie typowego programu CUDA przedstawione jest na rysunku 4. Wykonanie rozpoczyna siê na hoœcie (CPU), a nastêpnie wywo³ywane s¹ funkcje kernela. Wszystkie w¹tki uruchamiane
7 Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny 277 przez kernel s¹ okreœlane wspólna nazw¹ grid. Gdy w¹tki danego kernela zakoñcz¹ swoje dzia³anie, grid jest zamykany i sterowanie programem powraca na host, gdzie ewentualnie wywo³ywany jest nastêpny kernel. Rys. 4. Wykonanie programu na GPU [6] 5. Zalety i ograniczenia technologii CUDA do wykonywania aplikacji typu GPGPU CUDA ma wiele zalet w porównaniu z tradycyjnym oprogramowaniem ogólnego zastosowania na GPU przy u yciu graficznego API: tzw. scattered reads jedna operacja czytania danych powoduje zapis do wielu miejsc w pamiêci; pamiêæ wspó³dzielona CUDA udostêpnia szybk¹ pamiêæ wspó³dzielon¹ pomiêdzy w¹tkami (do 48 kb na multiprocesor) i mo e ona s³u yæ jako zarz¹dzany przez u ytkownika cache o du ej przepustowoœci; szybsze operacje transferu danych z i do GPU; pe³ne wspomaganie operacji ca³kowitoliczbowych oraz bitowych.
8 278 Magdalena Szymczyk, Piotr Szymczyk G³ówne ograniczenia CUDA: CUDA pozbawiona jest mo liwoœci wywo³ywania funkcji rekurencyjnych oraz korzystania ze wskaÿników, renderowanie tekstury nie jest mo liwe, podwójna precyzja dostêpna jest dla CUDA 1.3 i powy ej, z pewnymi zmianami w stosunku do standardu IEEE 754, transfer informacji pomiêdzy CPU a GPU mo e byæ w¹skim gard³em aplikacji, w¹tki powinny byæ wykonywane w grupach co najmniej 32-elementowych dla lepszej efektywnoœci, model SIMD wykonania programu doœæ ogranicza zadania z wewnêtrzn¹ dywergencj¹, w odró nieniu do OpenCL, CUDA dostêpna jest tylko dla NVIDIA (GeForce8, Quadro i Tesla). 6. Wykorzystanie CUDA do systemów wizyjnych Systemy wizyjne w ostatnim dziesiêcioleciu sta³y siê integralnym elementem aplikacji stosowanych w medycynie, transporcie i ochronie. Algorytmy z zakresu systemów wizyjnych zawieraj¹ w sobie algorytmy z zakresu wielu dyscyplin naukowych (statystyka, optyka, sztuczna inteligencja, przetwarzanie obiektów, rozpoznawanie obrazów, teoria grafów). Algorytmy tego typu charakteryzuj¹ siê ogromn¹ intensywnoœci¹ obliczeñ i w zasadzie uruchamianie ich na tradycyjnych CPU spotka³o siê ju z barier¹ ich mo liwoœci. Wspó³czesne systemy wizyjne nak³adaj¹ na tego typu aplikacje wymaganie wykonania w czasie rzeczywistym, a to mo e zostaæ zrealizowane przy u yciu procesorów równoleg³ych. Aktualnie tak¹ mo liwoœæ daj¹ tanie i ³atwo dostêpne karty graficzne GPU przy wykorzystaniu miêdzy innymi jêzyka programowania CUDA. Wykonywanie takich programów na procesorach GPU przy u yciu wysokowydajnych algorytmów równoleg³ych daje efekty nieosi¹galne dotychczas. Szczególnie istotnym aspektem w opracowywaniu systemów wizyjnych uruchamianych w czasie rzeczywistym jest teraz opracowanie nowych algorytmów równoleg³ych doskonale wykorzystuj¹cych potencja³ nowoczesnych GPU (architektura Tesla). Ta dyscyplina jest obecnie obszarem wzmo onej pracy naukowców w celu opracowania wysoko wydajnego opartego o GPU oprogramowania dla systemów wizyjnych. Ogólnie rzecz bior¹c, algorytmy systemów wizyjnych przetwarzaj¹ niezale nie ogromne iloœci pikseli oraz pewnych struktur dla których wykorzystanie modelu programowania równoleg³ego typu SIMT doskonale siê sprawdza. W dalszej czêœci przedstawione zostan¹ prace zwi¹zane z pewnymi wybranymi algorytmami wykorzystywanymi w przetwarzaniu obrazów na GPU i przedstawione zostan¹ pewne wytyczne dotycz¹ce sposobu ich projektowania wynikaj¹ce z tych badañ.
9 Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny Modu³ OpenCV CUDA OpenCV jest aktualnie rozwijan¹ doœæ intensywnie bibliotek¹ graficzn¹ u³atwiaj¹c¹ implementacje z³o onych systemów wizyjnych typu open-source [12]. W 2010 NVIDIA oficjalnie og³osi³a wsparcie dla tej biblioteki. Dotychczas czêœæ algorytmów zosta³a zaimportowana do CUDA: HOG, SURF, konwersja kolorów, rozmycie gaussowskie. Kod jest aktualnie rozwijalny i cechuje siê pewn¹ niestabilnoœci¹ czêsto raportowan¹ przez u ytkowników. Jednak e uda³o siê ju przeprowadziæ pewne testy i okreœliæ wp³yw wykorzystania GPU dla istniej¹cego ju, jednak e zorientowanego na CPU oprogramowania. 8. Biblioteka NVIDIA NPP Biblioteka ta jest tworzona przez NVIDIA [5] i zawiera w sobie funkcje korzystaj¹ce z technologii CUDA w celu przyspieszenia obliczeñ. Pocz¹tkowo by³a ona ukierunkowana na przetwarzanie obrazów i jest ona intensywnie wykorzystywana przez projektantów tego typu aplikacji. Z czasem zosta³a poszerzona o inne trudne obliczeniowo zadania w ró nych obszarach zastosowañ. Biblioteka NPP jest pisana w sposób elastyczny, nie trac¹c przy tym na swych wysokich mo liwoœciach wydajnoœciowych. Mo e ona zostaæ u yta jako niezale na osobna biblioteka dodana do aplikacji w celu przyspieszenia ich pracy na GPU przy minimalnym wysi³ku programisty. Drugie rozwi¹zanie to w³¹czenie funkcji tej biblioteki w kod programu w celu stworzenia efektywnego kodu pracuj¹cego na GPU. Wybrane funkcje do przetwarzania obrazu to: wymiana danych i ich inicjalizacja (set, convert, transpose, swapchannels, copyconstborder, copy), operacje arytmetyczne i logiczne (add, sub, mul, div, absdiff), progowanie oraz porównywanie, konwersja kolorów, funkcje filtruj¹ce, transformacje geometryczne, funkcje statystyczne, algorytmy Haar, Canny. Bibliotek¹ wspó³pracuj¹c¹ z NPP jest biblioteka CUVI Lib realizuj¹ca bardziej z³o one algorytmy z przeznaczeniem do systemów wizyjnych. 9. Konwersja kolorów oraz rozmycie gaussowskie Algorytmy te nale ¹ do czêsto wykorzystywanych operacji na obrazach (retusz, korekcja koloru). Algorytmy te na CUDA zaimplementowali T. Lengyel, J. Gedarovich i inni [13]. Wykonano testy konwersji kolorów oraz rozmycia gaussowskiego na karcie graficznej NVIDIA GeForce 9800 GT przy u yciu obrazu o rozdzielczoœci pikseli oraz na CPU Intel CORE ,13 GHz. Testy wykaza³y, e algorytm istniej¹cy
10 280 Magdalena Szymczyk, Piotr Szymczyk zaimportowany do CUDA wykonuje siê 2,7 razy szybciej, przy czym wiêkszoœæ czasu zosta³a wykorzystana na przesy³anie danych pomiêdzy CPU a kart¹. Wnioski, jakie wynikaj¹ z tych badañ s¹ takie, e algorytmy te osi¹gaj¹ lepsze przyspieszenie przy du ych obrazach, gdzie czas obliczeñ jest znacz¹cy w porównaniu z czasem transferu. Wynika to z d³ugiego czasu dostêpu do pamiêci globalnej multiprocesora (oko³o 500 cykli zegara) zatem operacje czytania i pisania do niej s¹ bardzo kosztowne. Czas ten mo e zostaæ zniwelowany przez wykonanie ogromnej liczby niezale nych obliczeñ zmiennoprzecinkowych. 10. HOG Detekcja osób jest doœæ istotnym zadaniem wspó³czesnych systemów ochrony. Algorytm HoG zaprezentowany przez Dalala i Triggsa [3] oblicza histogram lokalnie znormalizowanych gradientów kierunku przy u yciu bloków pikseli (reprezentacja okna detekcji). Fakt, e okno to rozci¹ga siê przez ten obraz we wszystkich mo liwych skalach obrazu, powoduje, e to podejœcie staje siê raczej trudne do wykorzystania przez systemy czasu rzeczywistego (systemy wspomagania kierowania samochodem, œledzenia czy te nadzoru). Jedn¹ z najwa niejszych prac w detekcji obiektów ostatniego dziesiêciolecia jest kaskadowy detektor, który wykonali Viola i Jones [15]. Jest to algorytm odporny na b³êdy i oprócz tego wykazuje du o lepsze przyspieszenie (oko³o jednego rzêdu wartoœci) w porównaniu z podobnymi pracami. Ich praca oparta jest miêdzy innymi o specjaln¹ strukturê integral image, która powoduje, e obliczenie cech jest zwi¹zane z operacj¹ sumowania pikseli obrazu w pewnych regionach. Operacje te dobrze siê paralelizuj¹, gdy zawieraj¹ w sobie miêdzy innymi ³atwe do zrównoleglenia operacje sumowania. Wyniki z pracy Berkina Bilgica [2] wykazuj¹ przyspieszenie równe oko³o 3 w porównaniu z aplikacjami na CPU. Algorytm ten jest kluczowym elementem algorytmu do szybkiej detekcji osób, zatem zaimplementowanie w postaci równoleg³ej pozosta³ej czêœci detektora jest obiecuj¹ce. Berkin Bilgic w swej pracy raportuje przyspieszenie ponaddziesiêciokrotne dla tego algorytmu. Zatem te rozwi¹zania zbli aj¹ nas do wykorzystania kaskadowych detektorów w systemach z wysokimi wymaganiami czasowymi jakimi s¹ systemy czasu rzeczywistego. Testy przeprowadzone przez T. Lengyel, J. Gedarovich i innych [13] potwierdzi³y, e algorytm ten jest bardzo dobrym kandydatem na algorytm równoleg³y wykonywany na GPU. 11. Viola-Jones na GPU Testy przeprowadzone w 2009 przez studentów Harvarda [4] przy u yciu funkcji z biblioteki OpenCV oraz CUDA 2.0 dla tej aplikacji przy wykorzystaniu sprzêtu CPU Intel 32-bitowy Core-2 (2,13 GHz) 1 GB RAM oraz GPU 512 MB NVIDIA GeForce 9800GT wykaza³y osi¹gniêcie dwukrotnego przyspieszenia.
11 Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny Implementacja algorytmu SURF na GPU Aktualnie prowadzone s¹ przez autorów intensywne prace nad implementacj¹ algorytmu SURF [1] na GPU przy u yciu pakietu CUDA. Wstêpne wyniki uzyskane z przeprowadzonych testów wykazuj¹, e czas przetwarzania algorytmu równoleg³ego wykazuje niewielk¹ zale noœæ od liczby punktów charakterystycznych. W zwi¹zku z tym istnieje du y potencja³ zastosowania GPU dla tego typu algorytmu. Szczegó³owe wyniki prowadzonych prac zostan¹ opublikowane w najbli szym czasie. 13. Podsumowanie GPU dostarczaj¹ pewne rozwi¹zania technologiczne u³atwiaj¹ce przetwarzanie multimedialnych aplikacji na GPU. Do takich mo liwoœci mo na zaliczyæ w zakresie tekstury: cache tekstury, interpolacjê dwuliniow¹ wykonywan¹ sprzêtowo, konwersjê danych, dostêpnoœæ tekstury po wielu kana³ach, wielowymiarowoœæ, nieomal optymaln¹ wydajnoœæ przy dostêpie do lokalnych danych 2D. CUDA daje mo liwoœæ bardzo szybkiego dostêpu do pamiêci dzielonej, w której mo na umieœciæ fragment obrazu i dzieliæ piksele pomiêdzy w¹tkami. Wykorzystanie potencja³u GPU do systemów wizyjnych jest bardzo obiecuj¹c¹ technologi¹. W celu wydajnego wykorzystania kart graficznych do tego celu koniecznym jest opracowanie algorytmów równoleg³ych wykorzystuj¹cych specyfikê ich pracy jak te dalsza praca nad bibliotek¹ OpenCV dla GPU. Problemem jest tutaj te czas przesy³ania danych pomiêdzy hostem a kart¹, ale przy dzisiejszym rozwoju algorytmów koduj¹cych i dekoduj¹cych obrazy, to w¹skie gard³o mo e zostaæ usuniête. Literatura [1] Bay H., Ess A., Tuytelaars T., Van Gool L., SURF:Speeded Up Robust Features. Computer Vision and Image Understanding (CVIU), vol. 110, No. 3, 2008, [2] Bilgic B., Fast Human Detection with Cascaded Ensembles. S.M. thesis, Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, February [3] Dalal N., Triggs B., Histograms of Oriented Gradients for Human Detection. [4] Hsiao C.H., Dai A., Face detection on CUDA. 2009, [5] [6] [7] [8] [9] [10]
12 282 Magdalena Szymczyk, Piotr Szymczyk [11] [12] Kirk D.B., Hwu W.W., Programming Massively Parallel Processors. Morgan Kaufmann, Elsevier, [13] Lengyel T.K., Gedarovich J., Cusano A., Peters T.J., GPU Vision: Accelerating Computer Vision algorithms with Graphics Processing Unit. University of Connecticut, [14] Park I.K., Singhal N., Lee M.H., Cho S., Efficient design and implementation of visual computing algorithms on tha GPU. ICIP [15] Viola P., Jones M., Robust Real-time Object Detection. Second International Workshop on Statistical and Computational Theories of Vision Modeling, Learning, Computing, and Sampling, Vancouver, Canada, 2001.
Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1
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!
Bardziej szczegółowoCUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki
Bardziej szczegółowoArchitektury komputerów Architektury i wydajność. Tomasz Dziubich
Architektury komputerów Architektury i wydajność Tomasz Dziubich Przetwarzanie potokowe Przetwarzanie sekwencyjne Przetwarzanie potokowe Architektura superpotokowa W przetwarzaniu potokowym podczas niektórych
Bardziej szczegółowoROCZNIKI 2010 GEOMATYKI. Metodyka i technologia budowy geoserwera tematycznego jako komponentu INSPIRE. Tom VIII Zeszyt 3(39) Warszawa
POLSKIE TOWARZYSTWO INFORMACJI PRZESTRZENNEJ ROCZNIKI 2010 GEOMATYKI Metodyka i technologia budowy geoserwera tematycznego jako komponentu INSPIRE Tom VIII Zeszyt 3(39) Warszawa PROPOZYCJA ZASAD POLSKIE
Bardziej szczegółowoPorównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego
Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.
Bardziej szczegółowoBudowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
Bardziej szczegółowoi3: internet - infrastruktury - innowacje
i3: internet - infrastruktury - innowacje Wykorzystanie procesorów graficznych do akceleracji obliczeń w modelu geofizycznym EULAG Roman Wyrzykowski Krzysztof Rojek Łukasz Szustak [roman, krojek, lszustak]@icis.pcz.pl
Bardziej szczegółowoSprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer
Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący
Bardziej szczegółowoRedukcja czasu wykonania algorytmu Cannego dzięki zastosowaniu połączenia OpenMP z technologią NVIDIA CUDA
Dariusz Sychel Wydział Informatyki, Zachodniopomorski Uniwersytet Technologiczny w Szczecinie 71-210 Szczecin, Żołnierska 49 Redukcja czasu wykonania algorytmu Cannego dzięki zastosowaniu połączenia OpenMP
Bardziej szczegółowoTesla. Architektura Fermi
Tesla Architektura Fermi Tesla Tesla jest to General Purpose GPU (GPGPU), GPU ogólnego przeznaczenia Obliczenia dotychczas wykonywane na CPU przenoszone są na GPU Możliwości jakie daje GPU dla grafiki
Bardziej szczegółowoBudowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
Bardziej szczegółowoProgramowanie 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ółowoMoc płynąca z kart graficznych
Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe
Bardziej szczegółowoSprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer
Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący
Bardziej szczegółowoLarrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami
Larrabee GPGPU Zastosowanie, wydajność i porównanie z innymi układami Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee
Bardziej szczegółowoRDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem
Bardziej szczegółowoZastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera
Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera Adam Hrazdil Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok V hrazdil@op.pl
Bardziej szczegółowoArchitektura mikroprocesorów TEO 2009/2010
Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład
Bardziej szczegółowoArchitektura von Neumanna
Architektura von Neumanna Klasyfikacja systemów komputerowych (Flynna) SISD - Single Instruction Single Data SIMD - Single Instruction Multiple Data MISD - Multiple Instruction Single Data MIMD - Multiple
Bardziej szczegółowoPROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK
1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Część teoretyczna Informacje i wstępne wymagania Cel przedmiotu i zakres materiału Zasady wydajnego
Bardziej szczegółowoProgramowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
Bardziej szczegółowo16. Taksonomia Flynn'a.
16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się
Bardziej szczegółowoGrafika komputerowa i wizualizacja
Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet
Bardziej szczegółowoSYSTEM INFORMACJI GEOGRAFICZNEJ JAKO NIEZBÊDNY ELEMENT POWSZECHNEJ TAKSACJI NIERUCHOMOŒCI**
GEODEZJA l TOM 12 l ZESZYT 2/1 l 2006 Piotr Cichociñski*, Piotr Parzych* SYSTEM INFORMACJI GEOGRAFICZNEJ JAKO NIEZBÊDNY ELEMENT POWSZECHNEJ TAKSACJI NIERUCHOMOŒCI** 1. Wstêp Nieunikniona zapewne w przysz³oœci
Bardziej szczegółowoPodstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Bardziej szczegółowoMikroprocesory rodziny INTEL 80x86
Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając
Bardziej szczegółowoAnaliza obrazów RTG w celu zwiêkszenia skutecznoœci predykcji dysplazji oskrzelowo-p³ucnej u noworodków
AUTOMATYKA 2008 Tom 12 Zeszyt 2 Marcin Ochab* Analiza obrazów RTG w celu zwiêkszenia skutecznoœci predykcji dysplazji oskrzelowo-p³ucnej u noworodków 1. Wprowadzenie Dotychczas w pracach dotycz¹cych przewidywañ
Bardziej szczegółowoBudowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
Bardziej szczegółowoSystemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1
i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:
Bardziej szczegółowoPROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX
amigopc.pl 883-364-274 SKLEP@AMIGOPC.PL PROCESOR INTEL CORE I7-4790K QUAD CORE, 4.00GHZ, 8MB, LGA1150, 22NM, 84W, VGA, BOX CENA: 1 473,00 PLN CZAS WYSYŁKI: 24H PRODUCENT: INTEL NUMER KATALOGOWY: BX80646I74790K
Bardziej szczegółowoAlgorytmy dla maszyny PRAM
Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROGRAMOWANIE APLIKACJI RÓWNOLEGŁYCH I ROZPROSZONYCH Programming parallel and distributed applications Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach specjalności: Inżynieria
Bardziej szczegółowoRozproszona pamiêæ dzielona - 1
Rozproszona pamiêæ dzielona - 1 Wieloprocesor - wiele ma dostêp do wspólnej pamiêci g³ównej Wielokomputer - ka dy ma w³asn¹ pamiêæ g³ówn¹; nie ma wspó³dzielenia pamiêci Aspekt sprzêtowy: Skonstruowanie
Bardziej szczegółowoKlasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.
Rok akademicki 2011/2012, Wykład nr 6 2/46 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012
Bardziej szczegółowoBudowa komputera Komputer computer computare
11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału
Bardziej szczegółowoPrzegląd architektury PlayStation 3
Przegląd architektury PlayStation 3 1 Your Name Your Title Your Organization (Line #1) Your Organization (Line #2) Sony PlayStation 3 Konsola siódmej generacji Premiera: listopad 2006 33,5 mln sprzedanych
Bardziej szczegółowoArchitektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC
Architektura Systemów Komputerowych Rozwój architektury komputerów klasy PC 1 1978: Intel 8086 29tys. tranzystorów, 16-bitowy, współpracował z koprocesorem 8087, posiadał 16-bitową szynę danych (lub ośmiobitową
Bardziej szczegółowoPrzetwarzanie Równoległe i Rozproszone
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Bardziej szczegółowoNowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 6 (27.04.2012) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoINŻYNIERIA OPROGRAMOWANIA
INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia
Bardziej szczegółowoJCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski
JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski Agenda GPU Dlaczego warto używać GPU Budowa GPU CUDA JCuda Przykładowa implementacja Co to jest? GPU GPU Graphical GPU Graphical Processing GPU
Bardziej szczegółowoCUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka
CUDA część 1 platforma GPGPU w obliczeniach naukowych Maciej Matyka Bariery sprzętowe (procesory) ok na. 1 10 00 la raz t y Gdzie jesteśmy? a ok. 2 razy n 10 lat (ZK) Rozwój 1985-2004 i dalej? O roku ów
Bardziej szczegółowoProcesory. Schemat budowy procesora
Procesory Procesor jednostka centralna (CPU Central Processing Unit) to sekwencyjne urządzenie cyfrowe którego zadaniem jest wykonywanie rozkazów i sterowanie pracą wszystkich pozostałych bloków systemu
Bardziej szczegółowoWykorzystanie architektury Intel MIC w obliczeniach typu stencil
Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej
Bardziej szczegółowoSkanowanie trójwymiarowej przestrzeni pomieszczeñ
AUTOMATYKA 2008 Tom 12 Zeszyt 3 S³awomir Je ewski*, Micha³ Jaros* Skanowanie trójwymiarowej przestrzeni pomieszczeñ 1. Wprowadzenie Obecnie w erze komputerów, które pozwalaj¹ na wizualizacje scen nie tylko
Bardziej szczegółowoINŻYNIERIA OPROGRAMOWANIA
INSTYTUT INFORMATYKI STOSOWANEJ 2014 Nowy blok obieralny! Testowanie i zapewnianie jakości oprogramowania INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania
Bardziej szczegółowoPROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK
1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Trendy rozwoju współczesnych procesorów Budowa procesora CPU na przykładzie Intel Kaby Lake
Bardziej szczegółowoProgramowanie współbieżne Wprowadzenie do programowania GPU. Rafał Skinderowicz
Programowanie współbieżne Wprowadzenie do programowania GPU Rafał Skinderowicz Literatura Sanders J., Kandrot E., CUDA w przykładach, Helion. Czech Z., Wprowadzenie do obliczeń równoległych, PWN Ben-Ari
Bardziej szczegółowoImplementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek
Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja
Bardziej szczegółowoAutomatyka i Robotyka studia stacjonarne drugiego stopnia
#384 #380 dr inż. Mirosław Gajer Projekt i implementacja narzędzia do profilowania kodu natywnego przy wykorzystaniu narzędzi Android NDK (Project and implementation of tools for profiling native code
Bardziej szczegółowoPodsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor
Plan wykładu 1. Pojęcie podsystemu graficznego i karty graficznej 2. Typy kart graficznych 3. Budowa karty graficznej: procesor graficzny (GPU), pamięć podręczna RAM, konwerter cyfrowo-analogowy (DAC),
Bardziej szczegółowoJulia 4D - raytracing
i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja
Bardziej szczegółowoktóra metoda jest najlepsza
która metoda jest najlepsza dr inż. Marek Żabka Instytut Matematyki Wydział Matematyki Stosowanej Politechnika Śląska 20 września 2012r Nowa metoda tworzenia grafiki na stronie internetowej: element,,canvas
Bardziej szczegółowoArchitektura Komputerów
1/3 Architektura Komputerów dr inż. Robert Jacek Tomczak Uniwersytet Przyrodniczy w Poznaniu Architektura a organizacja komputera 3.1 Architektura komputera: atrybuty widzialne dla programisty, atrybuty
Bardziej szczegółowoWyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji
AUTOMATYKA 2011 Tom 15 Zeszyt 3 Maciej Nowak*, Grzegorz Nowak* Wyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji 1. Wprowadzenie 1.1. Kolory Zmys³ wzroku stanowi
Bardziej szczegółowoWysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych
Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych Ł. Kuczyński, M. Woźniak, R. Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej
Bardziej szczegółowoOpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)
OpenGL - Open Graphics Library Programowanie grafiki komputerowej Rados$aw Mantiuk Wydzia$ Informatyki Zachodniopomorski Uniwersytet Technologiczny! OpenGL: architektura systemu do programowania grafiki
Bardziej szczegółowoLibra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.
Konrad Szałkowski Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo Skisr-kolo@libra.cs.put.poznan.pl Po co? Krótka prezentacja Skąd? Dlaczego? Gdzie? Gdzie nie? Jak? CPU Pamięć DDR3-19200 19,2 GB/s Wydajność
Bardziej szczegółowoProjektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
Bardziej szczegółowoSPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Bardziej szczegółowozna wybrane modele kolorów i metody transformacji między nimi zna podstawowe techniki filtracji liniowej, nieliniowej dla obrazów cyfrowych
Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Wydział Matematyki i Informatyki Instytut Informatyki Przetwarzanie i analiza obrazów cyfrowych w
Bardziej szczegółowoZapoznanie 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.
Wstęp 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. Przedstawienie architektur sprzętu wykorzystywanych do
Bardziej szczegółowoProjektowanie logistycznych gniazd przedmiotowych
Zygmunt Mazur Projektowanie logistycznych gniazd przedmiotowych Uwagi wstępne Logistyka obejmuje projektowanie struktury przep³ywu w procesie wytwarzania. Projektowanie dotyczy ustalania liczby, kszta³tu
Bardziej szczegółowo3.Przeglądarchitektur
Materiały do wykładu 3.Przeglądarchitektur Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 17 marca 2014 Architektura a organizacja komputera 3.1 Architektura komputera: atrybuty widzialne
Bardziej szczegółowoKlasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc
Rok akademicki 2010/2011, Wykład nr 6 2/56 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2010/2011
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Bardziej szczegółowoProgramowanie kart graficznych
Programowanie kart graficznych Sławomir Wernikowski swernikowski@wi.zut.edu.pl Wykład #1: Łagodne wprowadzenie do programowania w technologii NVIDIA CUDA Terminologia: Co to jest GPGPU? General-Purpose
Bardziej szczegółowoNOWE TRENDY ROZWOJU MIKROPROCESORÓW
NOWE TRENDY ROZWOJU MIKROPROCESORÓW Marcin LORENC, Krzysztof CEGIELSKI Streszczenie: Celem artykułu jest zaprezentowanie kierunków rozwoju mikrokontrolerów. Przedstawiono krótką historię procesorów, pojęcie
Bardziej szczegółowo3.Przeglądarchitektur
Materiały do wykładu 3.Przeglądarchitektur Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 24 stycznia 2009 Architektura a organizacja komputera 3.1 Architektura komputera: atrybuty widzialne
Bardziej szczegółowoMetody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Jednostki obliczeniowe w zastosowaniach mechatronicznych Kierunek: Mechatronika Rodzaj przedmiotu: dla specjalności Systemy Sterowania Rodzaj zajęć: Wykład, laboratorium Computational
Bardziej szczegółowoProgramowanie aplikacji równoległych i rozproszonych
Programowanie aplikacji równoległych i rozproszonych Dr inż. Krzysztof Rojek krojek@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Strumienie operacji na GPU Domyślne
Bardziej szczegółowoBudowa i zasada działania komputera. dr Artur Bartoszewski
Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu
Bardziej szczegółowoNowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
Bardziej szczegółowoKonwerter RS 232 / Centronics typ KSR
W i t o l d J u r e c z k o 44-151 Gliwice, ul. Daszyñskiego 560 Regon: 271215331 NIP: 631-010-66-35 Internet: www.yuko.com.pl e-mail: yuko@yuko.com.pl tel./ fax : (+48) (32) 230-89-49 telefony wewnêtrzne,
Bardziej szczegółowoProgramowanie 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ółowoINFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx
INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx 1. WPROWADZENIE Program AutoCAD ma wielu użytkowników i zajmuje znaczące miejsce w graficznym
Bardziej szczegółowoRaport Hurtownie Danych
Raport Hurtownie Danych Algorytm Apriori na indeksie bitmapowym oraz OpenCL Mikołaj Dobski, Mateusz Jarus, Piotr Jessa, Jarosław Szymczak Cel projektu: Implementacja algorytmu Apriori oraz jego optymalizacja.
Bardziej szczegółowoNowinkach technologicznych procesorów
Elbląg 22.04.2010 Nowinkach technologicznych procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
Bardziej szczegółowoPraca dyplomowa magisterska
Praca dyplomowa magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA Dyplomant: Jakub Kołakowski Opiekun pracy: dr inż. Michał Meller Plan prezentacji
Bardziej szczegółowoTechnika mikroprocesorowa
Technika mikroprocesorowa zajmuje się przetwarzaniem danych w oparciu o cyfrowe programowalne układy scalone. Systemy przetwarzające dane w oparciu o takie układy nazywane są systemami mikroprocesorowymi
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 6 (28.03.2011) Rok akademicki 2010/2011, Wykład
Bardziej szczegółowoPodręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI
Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI Spis treści 1. Specyfikacja... 3 1.1 Cechy:... 3 1.2 Rozdzielczość wideo na wejściu :... 3 1.3 Zawartość opakowania... 3 1.4 Wymagania systemowe...
Bardziej szczegółowoOpis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535
Opis funkcjonalny i architektura Modu³ sterownika mikroprocesorowego KM535 Modu³ KM535 jest uniwersalnym systemem mikroprocesorowym do pracy we wszelkiego rodzaju systemach steruj¹cych. Zastosowanie modu³u
Bardziej szczegółowoProgramowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Bardziej szczegółowoObliczenia Wysokiej Wydajności
Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk
Bardziej szczegółowoNowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
Bardziej szczegółowoKabel USB 2.0 do poù¹czenia komputerów PCLinq2 (PL-2501) podrêcznik u ytkownika
Kabel USB 2.0 do poù¹czenia komputerów PCLinq2 (PL-2501) podrêcznik u ytkownika Wprowadzenie Kabel USB 2.0 do poù¹czenia komputerów PCLinq2 to znakomite rozwi¹zanie do szybkiego utworzenia sieci peer-to-peer
Bardziej szczegółowoIntroduction to Computer Science
Introduction to Computer Science Grzegorz J. Nalepa Katedra Automatyki AGH spring 2011 c by G.J.Nalepa, 2004-11 (AGH) Introduction to Computer Science spring 2011 1 / 55 c by G.J.Nalepa,
Bardziej szczegółowoAlgorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
Bardziej szczegółowoBogdan Nogalski*, Anna Wójcik-Karpacz** Sposoby motywowania pracowników ma³ych i œrednich przedsiêbiorstw
Bogdan Nogalski*, Anna Wójcik-Karpacz** Sposoby motywowania pracowników ma³ych i œrednich przedsiêbiorstw Artyku³ zawiera rozwa ania zwi¹zane ze sposobami motywowania pracowników w sektorze MŒP. Autorzy
Bardziej szczegółowoProgramowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Bardziej szczegółowoMIÊDZYNARODOWY STANDARD REWIZJI FINANSOWEJ 520 PROCEDURY ANALITYCZNE SPIS TREŒCI
MIÊDZYNARODOWY STANDARD REWIZJI FINANSOWEJ 520 PROCEDURY ANALITYCZNE (Stosuje siê przy badaniu sprawozdañ finansowych sporz¹dzonych za okresy rozpoczynaj¹ce siê 15 grudnia 2009 r. i póÿniej) Wprowadzenie
Bardziej szczegółowoWykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów
Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład I Podstawowe pojęcia 1, Cyfrowe dane 2 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia,
Bardziej szczegółowoJęzyk opisu sprzętu VHDL
Język opisu sprzętu VHDL dr inż. Adam Klimowicz Seminarium dydaktyczne Katedra Mediów Cyfrowych i Grafiki Komputerowej Informacje ogólne Język opisu sprzętu VHDL Przedmiot obieralny dla studentów studiów
Bardziej szczegółowoPlan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń
Bardziej szczegółowoProcesory sygnałowe Digital Signal Processors. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013
Bardziej szczegółowoWykład 2. Mikrokontrolery z rdzeniami ARM
Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów ARM są szeroko
Bardziej szczegółowo