INDIVIDUÁLNÍ PROJEKT 1 - ZPRACOVÁNÍ GNSS SIGNÁLU V GPU
|
|
- Radovan Kolář
- před 8 lety
- Počet zobrazení:
Transkript
1 V O J T Ě C H T E R Š INDIVIDUÁLNÍ PROJEKT 1 - ZPRACOVÁNÍ GNSS SIGNÁLU V GPU Ú K O L P R O J E K T U: Přeprogramování rychlé diskrétní Furierovy Transformace (FFT) do jazyka Open CL. V Y B R A N Á M E T O D A: Algoritmus Cooley-Tukey : Decimace v časové oblasti se základem 2. O ALGO R I T M U : Algoritmus vychází z definice Diskrétní Furierovy Transformace, která převádí ovzorkovaný vstupní signál o délce N vzorků z časové domény na frekvenční pomocí definičního vztahu: ( ) ( ). Kde j je imaginární jednotka, N počet prvků, k je index a n je násobek frekvence (0...N-1). Za předpokladu, že vstupem je reálný signál se sudým počtem vzorků, je jeho spektrum symetrické a komplexně sdružené kolem středu. Tzn. že reálná složka je sudá okolo středu a imaginární je lichá. Stačí tedy vypočíst první polovinu spektra, neboť ta druhá bude identická s opačným znaménkem u imaginární složky. Dostáváme : ( ) ( ) ( ) Přesněji: ( ) ( ) ( ). A po úpravě pak: ( ) ( ) Tedy : ( ) ( ) ( ) A: ( ) ( ) ( ) Pokud bychom takto postupovali dále a zkracovali neustále délku transformace (uvažujeme vstupní počet prvků 2 n ), dostaneme nakonec N/2 Transfomací 1. Řádu, tedy Diskrétních Furierových transformací o velikosti 2.Tomuto uspořádání odpovídá následující obrázek, kterému se kvůli jeho grafické podobě říká motýlek (Matematické operace nad těmito transformacemi ho skutečně připomínají) 1
2 1 ZDROJ:WIKIPEDIA.ORG Kde X (0) a X (1) jsou vstupní prvky a Y (0) a Y (1) jsou výstupní prvky. Přitom platí: Poslední výše zmíněný vztah se nazývá Twiddle Factor a reprezentuje rotaci v komplexní rovině. Přitom T je délka periody Twiddle factoru a k je jeho úhel. Z řešení vyplývá, že algoritmus bude celkem potřebovat provést N/2 * log2(n) motýlků (v každém kroku N/2 motýlků). Každý motýlek se přitom skládá ze 2 komplexních násobení a 2 komplexníxh sčítání. Pro DFT o velikosti 8 prvků vypadá pak postup následovně: 2ZDROJ: OPENCL PROGRAMMING BOOK Zde je třeba podotknout, že vstupní hodnoty jsou v bitově převráceném pořadí (Tzv. Bit Reversed Order). Vysvětlení celkem stručně vystihuje následující tabulka: Dekadický zápis pořadí Binární Zápis Bitová Inverze Nové Pořadí
3 K pochopení každého algoritmu však podle mne nejlépe přispěje nějaký příklad, takže se nyní pokusím spočítat pomocí výše uvedených vztahů FFT o 8 prvcích posloupnosti: (Zcela správně by bylo prohodit vstupní hodnoty dle pravidel bitové inverze ): Vstupní hodnoty Motýlek 1 Motýlek 2 Motýlek 3 0+0*i 1+0*i 6+0*i 28+0*i 1+0*i -1+0*i -1+i -1+2,41*i 2+0*i 5+0*i -4+0*i -4+4*i 3+0*i -1+0*i -1-i -1+0,4142*I 4+0*i 9+0*i 22+0*i -16+0*i 5+0*i -1+0*i -1+i -1-0,4142*i 6+0*i 13+0*i -4+0i -4-4*i 7+0*i -1+0*i -1-i -1-2,4142*i Jednotlivé kroky jsou naznačeny na následujících obrázcích: Motýlek 1: Motýlek 2: 3
4 Motýlek 3: Ú V O D D O P R O S T Ř E D Í G R A F I C K É H O J Á D R A Většina dnešních početně náročných algoritmů se snaží využívat výpočetního výkonu grafický karet. Oproti klasickému používání algoritmů na procesoru (CPU Central Processing Unit) mají totiž grafická jádra (GPU Graphics Processign Unit ) mnohonásobně více pracovních vláken, která mohou pracovat nezávisle na sobě. Např. při sčítání dvou vektorů musí procesor s jedním vláknem postupovat od souřadnice k souřadnici a pokaždé tyto sečíst tedy jedná sekvenčně,tzn. vyhodnocuje operace po sobě. Naproti tomu GPU si může dovolit téměř vždy spustit tolik pracovních vláken, kolik má daný vektor souřadnic. Každé vlákno sečte odpovídající prvky a tím jsou vektory sečtěny. Vlákna tedy pracují paralelně nezávisle na sobě. Většina dnešních GPU má přitom k dispozici pracovních vláken na jeden blok, který můžeme chápat jako skupinu vláken se společnými hardwarovými prostředky (například společnou lokální pamětí). Každé jádro zároveň může spouštět zhruba stejný počet pracovních bloků a to dokonce ve 3 dimenzích, což dohromady může dát i miliony pracovních vláken. Každé vlákno má přitom svůj vlastní index (unikátní v rámci celé pracovní mříže vláken a bloků). Proto není problém,,přemapovat daná vstupní data na určitou pracovní jednotku, která s nimi dále bude pracovat. Spouštění těchto algoritmů má však i některé nevýhody, které nejsou běžně vidět: vstupní data se obvykle nachází na straně CPU a je třeba je nejprve překopírovat do paměti GPU, tam je zpracovat a překopírovat zpět na CPU. Dnešní rychlosti sběrnic jsou sice vysoké, ale i tak jsou ve srovnání s výkonem grafických karet několikanásobně menší. Krom toho musíme brát v úvahu i fakt, že globální paměť na GPU (ač je opět velmi rychlá) má omezenou rychlost a většina čtecích a zapisovacích operací bude omnoho pomalejší, než například při použití lokální paměti v rámci jednotlivých bloků. Při navrhování algoritmu tedy musíme dávat především pozor na zbytečné kopírování a zbytečné zatěžování globální paměti. Ani tak ale situce není zcela optimalizovaná. Ideální programátor by si také měl uvědomit, že globální a lokální paměť využívá tzv. banky, do kterých jednotlivá vlákna přistupují při čtení/zapisování hodnot a že i tyto přístupy lze optimalizovat. K samotnému obecnému popisu algoritmů, běžících na straně GPU, pak slouží kernely. To jsou části kódu, které obsahují všechny potřebné informace pro výpočet; je v nich definováno, kolik se má spustit bloků a pracovních jednotek v rámci jednoho bloku, dále v jakých dimenzích, jak se mají přemapovat vstupní data a co které vlákno má v danou chvíli dělat. Z hlediska programování si musíme uvědomit, že paralelní implementace není tak jednoduchá, jak by se mohlo zdát i přes všechny výhody, které jsme popsali. Žádný jazyk totiž nemá definováno, jestli se například při použití obecných hodnot vlákna, která je měla zpracovávat, už dobrala 4
5 k výsledku. Tedy klidně se může stát, že některá vlákna mohou používat při špatné synchronizaci i nepravdivé a dokonce nesmyslné výsledky. Tomu se dá zabránit například synchronizací vláken, kdy všechna vlákna, která už zpracovala svou část kódu, čekají na zbývající. Pak opět pokračují všechna stejně, dokud se nedostanou k další synchronizační bariéře. Nicméně je dobré podoknout, že takto popsaná synchronizace funguje jen v rámci jednoho bloku a nikoliv v rámci celé výpočetní mřížky. Jinými slovy, neexistuje dostatečně vhodný způsob, jak zajistit, aby se synchronizovala všechna vlákna v rámci celého GPU. Metody, které by to zvládly, by byly z hlediska GPU časově náročné. Zde je skromné porovnání toho, jaký může mít vliv jeden klíčový synchronizační úsek kódu: Bez synchronizace vláken: 5
6 Se synchronizací vláken: I M P L E M E N T A C E ALGORI T M U Samotná Implementace spočívá v tom nejprve zinverzovat vstupní hodnoty a v průběhu algoritmu pak pokaždé správně načíst 2 odpovídající hodnoty počítaného motýlka (dle cyklu, ve kterém se nachází), správně spočítat Twiddle Factor a poté dle dalších pravidel zapsat výsledek pro další výpočet. Z výše zmíněných synchronizačních důvodů jsem řešil problém,jak správě navrhnout algoritmus? Buď bude rychlý a bude mít malý rozsah vstupních hodnot, a nebo bude pomalejší, ale bude moci zpracovávat velká množstí vstupních prvků. Nakonec jsem raději navrhl oba algoritmy jak v jazyce CUDA, tak v OpenCL. První zmíněný přitom využívá pracovních jednotek (vláken) jen v rámci jednoho bloku, kde je možná synchronizace a tedy celou for smyčku (jejíž velikost odpovídá log2(n)) je možné provádět přímo na GPU. Druhý algoritmus přitom neustále spouští nové kernely pro každou fázi výpočtu konkrétně 2 na jednu fázi. Toto spouštění samozřejmě neproběhne hned a má za následek nižší rychlost výpočtu. Krom toho je v každé fázi nutné spustit kernel s jinými parametry (vlastě konkrétně s jedním), nicméně se opět jedná o kopírování, které není moc efektivní. Při porovnávání rychlosti vykazovala tato druhá verze algoritmu při stejném vstupním počtu prvků (N=512) zhruba pětinásobnou časovou náročnost v jazyce CUDA. Samotné počítání s komplexními čísly jsem řešil následovně: ( ) ( ) { } { } Pro indexování jsem nejprve musel ověřit (pro případ, že by bylo spuštěno více vláken, než je vstupních prvků), že dané vlákno skutečně může počítat část FFT. Poté přišla na řadu otázka indexování aktivních vlláken (která jsou v dané fázi výpočtu aktivní). S tím jsem si poradil pomocí funkce modulo. Dá se ověřit, že pokud mám na začátku proměnnou a = 2 a v každém cyklu ji 6
7 vynásobím opět dvojkou, pak je dané vlákno aktivní jestliže platí: (tid % a) >=(a/2). Kde tid je index vlákna. Fáze Aktivní Tid % 2 = 1 Tid % 4 = 2,3 Tid % 8 = vlákna 4,5,6,7 Pro periodu Twiddle faktoru platí, že v každém dalším kroku je dvojnásobná a není tedy třeba ji nějak zvláště přepočítávat. Pokud bychom si navíc nakreslili diagram počítání FFT pro 8 hodnot, je zřejmé, že vstupní hodnoty každého motýlka jsou vzdáleny o a/2. (1,2,4,8...). Nejsložitější bylo pravděpodobně vhodně přeindexovat úhel Twiddle Factoru. Nicméně uvedu na příkladě: Mod Tid = Potřebný index k Z tabulky je patrné, že v první fázi je index vždy 0 (řešeno explicitně pro všechna vlákna). V dalších fázích je však možno k spočítat následovně: k = (tid % (a/2)). Vzhledem k tomu, že zadáním projektu však bylo navrhnout algoritmus v jazyce OpenCL, a nikoliv v jazyce CUDA, nezbývá než uvést na závěr stručný přepis daného algoritmu z CUDA do OpenCl. Jelikož oba jazyky fungují na stejné paralelní platformě, zachová se naprostá většina (asi 90%) kódu, běžícího na GPU - kernelů. V daném případě je rozdíl zřejmě jen v tom, že ve zdrojových souborech kernelů jazyka OpenCl nemohou být komentáře (k velké nelibosti programátora). Naprostá většina změn tedy proběhne v kódu na CPU, kde OpenCl vyžaduje následující postup: 1. Výběr platformy 2. Výběr zařízení 3. Vytvoření kontextu 4. Vytvoření fronty příkazů 5. Vytvoření paměťových zásobníků 6. Načtení všech kernelů 7. Vytvoření programu 8. Kompilace programu 9. Vytvoření objektů všech kernelů 10. Nastavení parametrů kernelů 11. Překopírování dat do zařízení 12. Spuštění kernelu 13. Překopírování výsledků 14. Uvolnění používaných prostředků 7
8 Tato zdlouhavá procedura má za následek špatnou orientaci v kódu (ve kterém naštěstí komentáře být mohou), větší výskyt chyb a samozřejmě několikanásobně delší kód.pro srovnání s jazykem CUDA: 1. Alokování paměti na GPU 2. Kopírování vstupních dat 3. Spuštění kernelu 4. Překopírování výsledků 5. Uvolnění prostředků Což je důvod prvotní implementace algoritmu v jazyce CUDA, kde se rovněž i snáze měří čas potřebný ke spočtení FFT. Má implementovaná verze v OpenCL vybere první dostupnou platformu a první dostupný grafický procesor (ač obecně se dá OpenCl spouštět i na vícejaderném procesoru). Následně si vytvoří paměťové objekty, načte zdrojový kód kernelů (který zároveň i zobrazí), vytvoří a překompiluje program (v případě chyby je uvedena v příkazovém řádku), vytvoří požadované kernely, překopíruje vstupní data a následně spustí kernely, po jejichž ukončení následuje nezbytné překopírování výsledků a uvolnění použitých prostředků. Závěrem práce bych doporučil používat CUDA místo OpenCL. P O U Ž I T Á LI T E R A T U R A: OpenCLProgramming Guide (Aaftab Munshi, Bnedict Gaster,Timothy Mattson, James Fung, Dan Ginsburg) The OpenCl Programming Book (Ryoji Tsuchiyama, Takashi Nakamura, Takuro Iizuka, Akihiro Asahara, Jeongdo Son, Satoshi Miki) Cuda Application Design And Developement (Rob Farber) Cuda By Example An Introduction to General-Purpose GPU Programming (Jason Sanders, Edward Kandrot) nvidia CUDA C Programming Guide 8
Paralelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
VíceKTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni
KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace
VíceC2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
VíceVEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A
VEKTORY Vektorem se rozumí množina všech orientovaných úseček, které mají stejnou velikost, směr a orientaci, což vidíme na obr. 1. Jedna konkrétní orientovaná úsečka se nazývá umístění vektoru na obr.
VíceTransformace obrazu Josef Pelikán KSVI MFF UK Praha
Transformace obrazu 99725 Josef Pelikán KSVI MFF UK Praha email: Josef.Pelikan@mff.cuni.cz WWW: http://cgg.ms.mff.cuni.cz/~pepca/ Transformace 2D obrazu dekorelace dat potlačení závislosti jednotlivých
VíceHardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače
V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se
VíceOPS Paralelní systémy, seznam pojmů, klasifikace
Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus
VíceObecné výpočty na GPU v jazyce CUDA. Jiří Filipovič
Obecné výpočty na GPU v jazyce CUDA Jiří Filipovič Obsah přednášky motivace architektura GPU CUDA programovací model jaké algoritmy urychlovat na GPU? optimalizace Motivace Moorův zákon stále platí pro
VíceNvidia CUDA Paralelní programování na GPU
Mendelova univerzita v Brně Provozně ekonomická fakulta Nvidia CUDA Paralelní programování na GPU 2014 O čem to bude... Trocha historie Shadery Unifikace GPGPU CUDA Využití GPGPU GPU a jeho Hardware Nvidia
VíceMatematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
VíceX37SGS Signály a systémy
X7SGS Signály a systémy Matlab minihelp (poslední změna: 0. září 2008) 1 Základní maticové operace Vytvoření matice (vektoru) a výběr konkrétního prvku matice vytvoření matice (vektoru) oddělovač sloupců
VíceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceManagement procesu I Mgr. Josef Horálek
Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více
VíceSEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7
SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7 Daniel Tureček St-lichý týden, 9:15 Zadání Určete periodu signálu s(k), určete stejnosměrnou složku, výkon, autokorelační funkci. Záznam signálu je v souboru persig2.
VíceOperační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Více0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
VícePřidělování CPU Mgr. Josef Horálek
Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování
Více1 Základní funkce pro zpracování obrazových dat
1 Základní funkce pro zpracování obrazových dat 1.1 Teoretický rozbor 1.1.1 Úvod do zpracování obrazu v MATLABu MATLAB je primárně určen pro zpracování a analýzu numerických dat. Pro analýzu obrazových
VícePřednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
Více[1] samoopravné kódy: terminologie, princip
[1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla
VíceReal Time programování v LabView. Ing. Martin Bušek, Ph.D.
Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití
VícePokročilé architektury počítačů
Pokročilé architektury počítačů Tutoriál 3 CUDA - GPU Martin Milata Výpočetní model CUDA Organizace kódu Sériově organizovaný kód určený pro CPU Paralelní kód prováděný na GPU Označuje se jako kernel GPU
VíceSIGNÁLY A LINEÁRNÍ SYSTÉMY
SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cziba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické
VíceProcesy a vlákna (Processes and Threads)
ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating
Více2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
VíceTeorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
VíceJasové transformace. Karel Horák. Rozvrh přednášky:
1 / 23 Jasové transformace Karel Horák Rozvrh přednášky: 1. Úvod. 2. Histogram obrazu. 3. Globální jasová transformace. 4. Lokální jasová transformace. 5. Bodová jasová transformace. 2 / 23 Jasové transformace
VíceData v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
VíceJako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.
Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:
VíceCo je grafický akcelerátor
Co je grafický akcelerátor jednotka v osobním počítači či herní konzoli přebírá funkce hlavního procesoru pro grafické operace graphics renderer odlehčuje hlavnímu procesoru paralelní zpracování vybaven
VíceZákladní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
VíceSemestrální práce z předmětu Speciální číslicové systémy X31SCS
Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší
VíceÚvod do zpracování signálů
1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování
VíceArchitektura počítačů
Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem
VíceOsobní počítač. Zpracoval: ict Aktualizace: 10. 11. 2011
Osobní počítač Zpracoval: ict Aktualizace: 10. 11. 2011 Charakteristika PC Osobní počítač (personal computer - PC) je nástroj člověka pro zpracovávání informací Vyznačuje se schopností samostatně pracovat
VícePřehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur
Přehled paralelních architektur Přehled paralelních architektur Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled I. paralelní počítače se konstruují
VíceUnity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.
Unity a Objekty Programování 2 (NMIN102) RNDr. Michal Žemlička, Ph.D. Větší programy Časté problémy: Ve více programech by se nám hodilo využít stejné řešení nějakého podproblému dalo by se vyřešit překopírováním
Více" Furierova transformace"
UNIVERZITA JANA EVANGELISTY PURKYNĚ V ÚSTÍ NAD LABEM FAKULTA ŽIVOTNÍHO PROSTŘEDÍ " Furierova transformace" Seminární práce z předmětu Dálkový průzkum Země Marcela Bartošová, Veronika Bláhová OŽP, 3.ročník
VíceOperační systémy 2: Zápočtové úkoly
Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít
Více0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
VíceINFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_13_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077
VíceProfilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceGymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr
VícePointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
VíceSIGNÁLY A LINEÁRNÍ SYSTÉMY
SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické či jiné
VíceII. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
VíceSTRUKTURA RASTROVÝCH DAT
STRUKTURA RASTROVÝCH DAT dva typy rastrové vrstvy v GIS 1) Digitální obraz TV, počítač, mobil - obrazovka obraz z bodů mapa - mřížka s barevnými plochami 2) Rastrová data data pro analýzu a) binární -
VíceArchitektura počítače
Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích
VíceSUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ
SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ TITAN / HOPPER / NOTEBOOK TITAN HOPPER NOTEBOOK Počet CPU jader 299 008 153 216 2 Operační paměť [GB] 598 016 217 000 8 Počet GPU (CUDA) jader 50 233 344 0 8
VíceParalelní výpočty ve finančnictví
Paralelní výpočty ve finančnictví Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz Výpočetně náročné úlohy distribuované úlohy mnoho relativně nezávislých úloh snížení zatížení klientské pracovní stanice
VíceZpůsoby realizace této funkce:
KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační
VíceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
VíceObsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21
Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní
VíceLimita funkce. FIT ČVUT v Praze. (FIT) Limita funkce 3.týden 1 / 39
Limita funkce FIT ČVUT v Praze 3.týden (FIT) Limita funkce 3.týden 1 / 39 Definice funkce. Zobrazení (f, D f ), jehož definiční obor D f i obor hodnot H f je podmnožinou množiny reálných čísel, se nazývá
VíceZákladní komunikační operace
Základní komunikační operace Úvod Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv One-to-all broadcast/all-to-one reduction All-to-all
VícePrincip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
VíceArchitektura Intel Atom
Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí
Více11. Logické analyzátory. 12. Metodika měření s logickým analyzátorem
+P12 11. Logické analyzátory Základní srovnání logického analyzátoru a číslicového osciloskopu Logický analyzátor blokové schéma, princip funkce Časová analýza, glitch mód a transitional timing, chyba
VíceMatice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.
Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu
VíceVektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
VíceProjektč.3dopředmětuIZP. Maticové operace
Projektč.3dopředmětuIZP Maticové operace 17. prosince 2006 Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta informačních technologií Vysoké Učení Technické v Brně Obsah 1 Úvod 1 2 Analýza problému 1 2.1
VíceVlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.
Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces
VíceParalelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Více1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
VíceMATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
VíceMaticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
VíceÚvod do lineární algebry
Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky
VícePROCESOR. Typy procesorů
PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně
Vícezákladní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů
A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky
Více1 Projekce a projektory
Cvičení 3 - zadání a řešení úloh Základy numerické matematiky - NMNM20 Verze z 5. října 208 Projekce a projektory Opakování ortogonální projekce Definice (Ortogonální projekce). Uvažujme V vektorový prostor
VíceKurz LSL skriptování. Shiny Iceberg 2009
Kurz LSL skriptování Shiny Iceberg 2009 2 2 Kurz LSL skriptování Shiny Iceberg v Second Life od roku 2006 shiny.iceberg@virtualmagazine.cz Aktuální projekty virtualmagazine.cz Urbanica, Shinyland Bwindi
Více31SCS Speciální číslicové systémy Antialiasing
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE 2006/2007 31SCS Speciální číslicové systémy Antialiasing Vypracoval: Ivo Vágner Email: Vagnei1@seznam.cz 1/7 Převod analogového signálu na digitální Složité operace,
VícePřidělování zdrojů (prostředků)
Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné
VíceSystém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
VíceMatice. a m1 a m2... a mn
Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích
VíceFOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth
FOURIEROVA ANALÝZA 2D TERÉNNÍCH DAT Karel Segeth Motto: The faster the computer, the more important the speed of algorithms. přírodní jev fyzikální model matematický model numerický model řešení numerického
VíceČísla, reprezentace, zjednodušené výpočty
Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001
VíceFunkce a lineární funkce pro studijní obory
Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce
VíceBootkity v teorii a praxi. Martin Dráb martin.drab@email.cz Http://www.jadro-windows.cz
Bootkity v teorii a praxi Martin Dráb martin.drab@email.cz Http://www.jadro-windows.cz Definice Pod pojmem bootkit budeme rozumět software, který začíná být aktivní během procesu startu počítače ještě
Víceoznačme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,
Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání
VíceMatematika I (KMI/PMATE)
Přednáška první aneb Úvod do matematické analýzy Funkce a její vlastnosti Úvod do matematické analýzy Osnova přednášky pojem funkce definice funkce graf funkce definiční obor funkce obor hodnot funkce
VíceZpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.
Zpracování obrazu v FPGA Leoš Maršálek ATEsystem s.r.o. Základní pojmy PROCESOROVÉ ČIPY Křemíkový čip zpracovávající obecné instrukce Různé architektury, pracují s různými paměti Výkon instrukcí je závislý
VíceProfilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VícePoznámka. V některých literaturách se pro označení vektoru také používá symbolu u.
Vektory, operace s vektory Ž3 Orientovaná úsečka Mějme dvojici bodů, (na přímce, v rovině nebo prostoru), které spojíme a vznikne tak úsečka. Pokud budeme rozlišovat, zda je spojíme od k nebo od k, říkáme,
VíceVISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
VíceLekce 01 Úvod do algoritmizace
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním
VíceDisková pole (RAID) 1
Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.
VíceČeská letecká servisní a. s.
Česká letecká servisní a. s. 1/20 Česká letecká servisní a. s. Your integrator of the avionics Česká letecká servisní a. s. Česká letecká servisní a. s. 2/20 Úvod do problematiky synchronizace tasků O
Více09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
VícePB002 Základy informačních technologií
Operační systémy 25. září 2012 Struktura přednašky 1 Číselné soustavy 2 Reprezentace čísel 3 Operační systémy historie 4 OS - základní složky 5 Procesy Číselné soustavy 1 Dle základu: dvojková, osmičková,
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
VíceMatematika (KMI/PMATE)
Úvod do matematické analýzy Funkce a její vlastnosti Funkce a její vlastnosti Veličina Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Funkce a její
VíceIterační výpočty Projekt č. 2
Dokumentace k projektu pro předměty IUS & IZP Iterační výpočty Projekt č. 2 Autor: Jan Kaláb (xkalab00@stud.fit.vutbr.cz) Úvod Úkolem bylo napsat v jazyce C program sloužící k výpočtům matematických funkcí
VíceFunkce komplexní proměnné a integrální transformace
Funkce komplexní proměnné a integrální transformace Fourierovy řady I. Marek Lampart Text byl vytvořen v rámci realizace projektu Matematika pro inženýry 21. století (reg. č. CZ.1.07/2.2.00/07.0332), na
Více2 Postup při programování, úvod do programovacího jazyka Java
2 Postup při programování, úvod do programovacího jazyka Java Studijní cíl V tomto bloku bude věnována pozornost správnému postupu při programování, budou detailně vysvětleny jednotlivé etapy programování
VíceJak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické
Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean
VíceAlgoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
VícePROGRAMY PRO GIS. Formovat/formulovat problém pro aplikaci v počítači. Fungování GIS programů na základní úrovni - "uvažovat" jako počítač
PROGRAMY PRO GIS Formovat/formulovat problém pro aplikaci v počítači Fungování GIS programů na základní úrovni - "uvažovat" jako počítač Jak počítače řeší problémy procesor central processing unit - CPU
Více1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
VíceVÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE
VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE Přednáška na semináři CAHP v Praze 4.9.2013 Prof. Ing. Petr Noskievič, CSc. Ing. Miroslav Mahdal, Ph.D. Katedra automatizační
Více